En este artículo, exploraremos la API Claude de Anthropic AI creando un script Python Proof of Concept (POC). Este script destaca las capacidades de la API Claude y muestra cómo integrar la IA en sus aplicaciones y flujos de trabajo.

Introducción a la API Claude

Claude es una familia de modelos de IA desarrollada por Anthropic AI, que ofrece capacidades avanzadas como el razonamiento, el análisis visual, la generación de código y el procesamiento multilingüe.

En la familia de modelos Claude 3, tenemos tres versiones: Haiku (rápido y ligero), Sonnet (buen equilibrio rendimiento/velocidad) y Opus (el más inteligente, capaz de manejar análisis complejos y tareas más largas).

Objetivos del Script POC

El objetivo principal de este script es experimentar con la API Claude en Python para desarrollar nuestras competencias y mostrar las capacidades de la API.

  • Probar la API Claude: Explorar las funcionalidades de la API Claude y entender cómo utilizarla eficazmente.
  • Automatización con Python: Mostrar cómo Python puede ser utilizado para automatizar las interacciones con las APIs de IA.
  • Enriquecimiento de los Prompts: Experimentar con el enriquecimiento de los prompts integrando contenido web recuperado a través de Selenium.

Funcionamiento del Script

El script anthropic_ai_poc.py utiliza el modelo Claude Opus para generar respuestas. He aquí su funcionamiento:

  1. Recuperación del Contenido Web: Utiliza Selenium para extraer el contenido de las URLs especificadas en el prompt.
  2. Generación de las Respuestas: Envía el prompt enriquecido a la API Claude para obtener una respuesta.

Código del Script 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

Ejemplos de Uso

Prerrequisitos

# 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.

Este script le da una idea de cómo puede utilizar la API Claude para automatizar y enriquecer las interacciones con la IA. No dude en experimentar y adaptar el script a sus necesidades específicas.

Este documento ha sido traducido de la versión fr al idioma es usando el modelo claude-3-opus-20240229. Para obtener más información sobre el proceso de traducción, visite https://gitlab.com/jls42/ai-powered-markdown-translator