在这篇文章中,我们将通过创建一个 Python 概念验证 (POC) 脚本来探索 Anthropic AI 的 Claude API。该脚本突显了 Claude API 的能力,并展示了如何将 AI 集成到您的应用程序和工作流程中。
介绍 Claude API
Claude 是由 Anthropic AI 开发的一个 AI 模型家族,提供了高级功能,如推理、视觉分析、代码生成和多语言处理。
在 Claude 3 模型家族中,我们有三个版本:Haiku(快速且轻量)、Sonnet(性能/速度的良好平衡)和 Opus(最智能,能够处理复杂的分析和较长的任务)。
POC 脚本的目标
此脚本的主要目标是通过 Python 与 Claude API 进行实验,以发展我们的技能并展示 API 的能力。
- 测试 Claude API:探索 Claude API 的功能并了解如何有效地使用它。
- 使用 Python 进行自动化:展示如何使用 Python 来自动化与 AI APIs 的互动。
- 提示的丰富化:通过整合通过 Selenium 检索到的网络内容来实验提示的丰富化。
脚本的工作原理
脚本 anthropic_ai_poc.py
使用 Claude Opus 模型来生成回应。以下是其工作原理:
- 获取网页内容:使用 Selenium 从提示中指定的 URLs 提取内容。
- 生成回应:将丰富化提示发送到 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-4-1106-preview 模型从 fr 版本翻译成 zh 语言的。有关翻译过程的更多信息,请访问 https://gitlab.com/jls42/ai-powered-markdown-translator。