검색

blogia

Python POC 스크립트를 통한 Anthropic AI의 Claude API 탐색

Python POC 스크립트를 통한 Anthropic AI의 Claude API 탐색

이 글에서는 Python Proof of Concept(POC) 스크립트를 작성하면서 Anthropic AI의 Claude API를 탐구합니다. 이 스크립트는 Claude API의 기능을 조명하고, 여러분의 애플리케이션 및 워크플로우에 AI를 통합하는 방법을 보여줍니다.

Claude API 소개

Claude는 Anthropic AI가 개발한 일련의 AI 모델로, 추론, 시각 분석, 코드 생성, 다국어 처리 등 고급 기능을 제공합니다.

Claude 3 계열에는 세 가지 버전이 있습니다: Haiku(빠르고 가벼움), Sonnet(성능/속도의 균형) 및 Opus(가장 정교하며 복잡한 분석과 더 긴 작업을 처리할 수 있음).

POC 스크립트의 목표

이 스크립트의 주요 목표는 Claude API를 Python으로 실험하여 우리의 역량을 개발하고 API의 기능을 보여주는 것입니다.

  • Claude API 테스트 : Claude API의 기능을 탐색하고 효과적으로 사용하는 방법을 이해합니다.
  • Python을 이용한 자동화 : Python이 AI API와의 상호작용을 자동화하는 데 어떻게 사용될 수 있는지 보여줍니다.
  • 프롬프트 강화 : Selenium을 통해 수집한 웹 콘텐츠를 통합하여 프롬프트를 강화하는 실험을 합니다.

스크립트 동작 방식

스크립트 anthropic_ai_poc.py는 Claude Opus 모델을 사용하여 응답을 생성합니다. 작동 방식은 다음과 같습니다 :

  1. 웹 콘텐츠 수집 : Selenium을 사용하여 프롬프트에 지정된 URL의 콘텐츠를 추출합니다.
  2. 응답 생성 : 강화된 프롬프트를 Claude API로 보내 응답을 얻습니다.

2024년 9월 28일 업데이트: Anthropic의 Claude API용 스크립트 수정

2024년 3월에 처음 공개된 이후, 스크립트에서 사용한 라이브러리들(특히 Selenium 및 Claude API 관련 라이브러리)에 변경이 있었습니다. 원래 스크립트는 최신 버전들과 호환되지 않게 되었고, 최신 업데이트와 정상 동작을 보장하기 위해 조정이 필요했습니다.

새로운 스크립트 코드 anthropic_ai_poc.py

#!/usr/bin/env python3
import re
import sys
import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
import anthropic


def get_web_content(url):
    if not url:
        return ""

    try:
        chrome_options = Options()
        driver = webdriver.Chrome(
            service=Service(ChromeDriverManager().install()), options=chrome_options
        )
        driver.get(url)
        web_content = driver.execute_script("return document.documentElement.innerText")
        driver.quit()
        return web_content if web_content else None
    except Exception as e:
        return None


def get_response(question, client):
    urls = re.findall(r"(https?://\S+)", question)
    if urls:
        for url in urls:
            web_content = get_web_content(url)
            if web_content:
                question = question.replace(url, web_content)
            else:
                print(f"Erreur: Le contenu web pour {url} ne peut être récupéré.")
                sys.exit(1)

    # Appel à l'API
    response = client.messages.create(
        model="claude-3-5-sonnet-20240620",
        max_tokens=2048,
        messages=[{"role": "user", "content": question}],
    )

    # Affiche uniquement le texte de la réponse
    try:
        print(response.content[0].text)
    except (AttributeError, IndexError, TypeError) as e:
        print(f"Impossible d'accéder au texte de la réponse : {e}")
        print("Contenu brut de la réponse :", response.content)


# Récupère la question depuis l'argument de la ligne de commande
question = sys.argv[1] if len(sys.argv) > 1 else "Quelle est ta question ?"

api_key = os.getenv("ANTHROPIC_API_KEY", "<ta_clé_api_anthropic>")

try:
    client = anthropic.Anthropic(api_key=api_key)
    get_response(question, client)
except Exception as e:
    print(f"Une erreur est survenue : {e}")

try:
    del client
except TypeError:
    pass

사용 예

# Installation des dépendances si nécessaire :
pip install selenium
pip install anthropic
pip install webdriver_manager

# Définir la clé API Anthropic AI
export ANTHROPIC_API_KEY="<votre_clé_api>"

# On rend le script exécutable
chmod 700 anthropic_ai_poc.py

# Exécution avec une URL à résumer
./anthropic_poc.py "Fais moi un résumé de ce site stp : https://docs.mistral.ai/"
Voici un résumé du site Mistral AI :

Mistral AI est un laboratoire de recherche qui développe des modèles de langage open source et commerciaux de pointe. Leur plateforme permet aux développeurs et entreprises de créer de nouvelles applications basées sur ces modèles.

Leurs principaux modèles incluent :

- Des modèles généralistes comme Mistral Large et Mistral NeMo
- Des modèles spécialisés comme Codestral pour le code et Mistral Embed pour les représentations sémantiques
- Des modèles de recherche comme Mistral 7b, Mixtral 8x7b, etc.

Mistral AI propose des API pour :

- La génération de texte
- La génération de code
- Les embeddings
- L'appel de fonctions
- Le fine-tuning
- Le mode JSON
- Le contrôle des gardes-fous

Le site fournit de la documentation technique, des guides de démarrage rapide et des informations sur la contribution au projet. Il propose également des liens vers la communauté Mistral AI sur Discord, Twitter et GitHub.

anthropic_ai_poc.py 스크립트 코드 (라이브러리 최신 버전에서 더 이상 유효하지 않음)

#!/usr/bin/env python3
import re
import sys
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import anthropic

def get_web_content(url):
    if not url:  # Vérifie si une URL est fournie
        return ""

    # Configure les options de Chrome
    chrome_options = Options()

    # Crée une nouvelle instance de navigateur avec les options configurées
    driver = webdriver.Chrome(options=chrome_options)

    # Fait une requête à la page web
    driver.get(url)

    # Récupère le contenu JavaScript de la page
    web_content = driver.execute_script("return document.documentElement.innerText")

    # N'oublie pas de fermer le navigateur une fois terminé
    driver.quit()

    return web_content

def get_response(question, client):
    urls = re.findall(r'(https?://\S+)', question)
    if urls:  # Vérifie si une URL est fournie
        for url in urls:
            web_content = get_web_content(url)
            if web_content:
                # Remplace l'URL par le contenu du web dans le prompt
                question = question.replace(url, web_content)

    messages = [{"role": "user", "content": question}]
    response = client.messages.create(model="claude-3-opus-20240229", max_tokens=1024, messages=messages)

    # Affiche uniquement le texte du résumé
    print(f"{response.content[0].text}")

# Récupère la question depuis l'argument de la ligne de commande
question = sys.argv[1] if len(sys.argv) > 1 else "Quelle est ta question ?"

api_key = os.getenv("ANTHROPIC_API_KEY", "<ta_clé_api_anthropic>")

try:
    # Crée un client Anthropic
    client = anthropic.Anthropic(api_key=api_key)
    # Obtient la réponse à la question en utilisant le client
    get_response(question, client)
except Exception as e:
    print(f"Une erreur est survenue : {e}")

try:
    # Supprime le client
    del client
except TypeError:
    pass

사용 예들

사전 요구사항

# Optionnel - Vous aurez peut-être besoin d'installer les dépendances :
pip install selenium
pip install anthropic

# Définir la clé API Anthropic AI
export ANTHROPIC_API_KEY="<votre_clé_api>"

# Rendre le script exécutable
chmod 700 anthropic_ai_poc.py
jls42@Boo:~/git/ai$ ./anthropic_poc.py "Résume en français ce contenu : https://platform.openai.com/docs/guides/prompt-engineering"
Voici un résumé en français du contenu sur l'ingénierie des prompts :

Ce guide partage des stratégies et des tactiques pour obtenir de meilleurs résultats des grands modèles de langage comme GPT-4. Il présente six stratégies principales :

1. Écrire des instructions claires en incluant des détails, en demandant au modèle d'adopter un persona, en utilisant des délimiteurs, en spécifiant les étapes requises et en fournissant des exemples.

2. Fournir un texte de référence au modèle pour l'aider à répondre avec moins d'inventions.

3. Diviser les tâches complexes en sous-tâches plus simples, par exemple en utilisant une classification d'intentions.

4. Donner au modèle du temps pour "réfléchir" en lui demandant d'élaborer sa propre solution avant de conclure.

5. Utiliser des outils externes comme la recherche par embeddings pour une récupération efficace des connaissances ou l'exécution de code pour des calculs précis.

6. Tester les changements de manière systématique en évaluant les sorties du modèle par rapport à des réponses de référence.

Le guide fournit également des tactiques spécifiques pour chaque stratégie ainsi que des exemples de prompts. Il encourage l'expérimentation pour trouver les méthodes qui fonctionnent le mieux selon les cas d'utilisation.
jls42@Boo:~/git/ai$ ./anthropic_poc.py  "que sais tu faire ?"
En tant qu'assistant conversationnel créé par Anthropic, je suis capable d'aider dans de nombreux domaines grâce à mes vastes connaissances et capacités de traitement du langage. Voici quelques exemples de ce que je peux faire :

- Répondre à des questions sur une grande variété de sujets (histoire, sciences, actualités, culture, etc)
- Aider à la rédaction et à la correction de textes
- Fournir des explications et vulgariser des concepts complexes
- Donner des conseils et des recommandations (produits, voyage, santé, développement personnel, etc)
- Faire de la résolution de problèmes et proposer des idées créatives
- Programmer dans différents langages informatiques
- Analyser des données et générer des insights
- Converser de façon naturelle sur des sujets divers

Mes capacités sont assez vastes mais je reste un assistant IA avec certaines limites. Je ne peux pas apprendre, mémoriser de nouvelles informations d'une conversation à l'autre, ressentir des émotions, ni réaliser des actions physiques dans le monde réel. Mon but est d'être un assistant utile et bienveillant pour aider au mieux les humains dans leurs tâches et questionnements, tout en respectant des principes éthiques.

N'hésite pas si tu as d'autres questions sur ce que je suis capable de faire !
jls42@Boo:~/git/ai$ ./anthropic_poc.py "Résume en français ce contenu : https://www.anthropic.com/claude"
Voici un résumé en français du contenu :

Claude est une famille de modèles d'IA fondamentale qui peuvent être utilisés dans diverses applications. Vous pouvez parler directement avec Claude sur claude.ai pour générer des idées, analyser des images et traiter de longs documents. Les développeurs et les entreprises peuvent désormais accéder à l'API et construire directement sur notre infrastructure d'IA.

Les capacités de Claude incluent le raisonnement avancé, l'analyse visuelle, la génération de code et le traitement multilingue. La famille de modèles Claude 3 offre la meilleure combinaison de vitesse et de performance pour les cas d'utilisation en entreprise, à un coût inférieur à celui des autres modèles sur le marché.

Claude se décline en trois versions : Haiku (rapide et léger), Sonnet (bon équilibre performance/vitesse) et Opus (le plus intelligent, capable de gérer des analyses complexes et des tâches plus longues).

Les avantages de Claude sont sa sécurité de niveau entreprise, sa résistance aux abus, ses capacités étendues (fenêtre contextuelle de 200K, utilisation d'outils, multimodalité) et sa fiabilité (faible taux d'hallucination, précision sur de très longs documents).

Vous pouvez discuter avec Claude pour vous aider dans votre travail ou utiliser l'API pour intégrer Claude dans vos workflows et ceux de vos clients, permettant à l'IA de transformer votre entreprise.

이 스크립트는 Claude API를 사용하여 AI와의 상호작용을 자동화하고 풍부하게 만드는 방법에 대한 아이디어를 제공합니다. 자유롭게 실험하고 스크립트를 필요에 맞게 조정하세요.

이 문서는 gpt-5-mini 모델을 사용하여 fr 버전에서 ko 언어로 번역되었습니다. 번역 과정에 대한 자세한 정보는 https://gitlab.com/jls42/ai-powered-markdown-translator를 참조하십시오.