Consultez la référence de l’API pour une documentation complète sur les paramètres disponibles.

Requête et réponse de base

#!/bin/sh
curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-opus-20240229",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Bonjour, Claude"}
    ]
}'
JSON
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Bonjour !"
    }
  ],
  "model": "claude-3-opus-20240229",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 12,
    "output_tokens": 6
  }
}

Plusieurs tours de conversation

L’API Messages est sans état, ce qui signifie que vous envoyez toujours l’historique complet de la conversation à l’API. Vous pouvez utiliser ce modèle pour construire une conversation au fil du temps. Les tours de conversation précédents ne doivent pas nécessairement provenir de Claude - vous pouvez utiliser des messages assistant synthétiques.

Shell
#!/bin/sh
curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-opus-20240229",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Bonjour, Claude"},
        {"role": "assistant", "content": "Bonjour !"},
        {"role": "user", "content": "Peux-tu me décrire les LLM ?"}
        
    ]
}'
Python
import anthropic

message = anthropic.Anthropic().messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Bonjour, Claude"},
        {"role": "assistant", "content": "Bonjour !"},
        {"role": "user", "content": "Peux-tu me décrire les LLM ?"}
    ],
)
print(message)

TypeScript
import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic();

await anthropic.messages.create({
  model: 'claude-3-opus-20240229',
  max_tokens: 1024,
  messages: [
    {"role": "user", "content": "Bonjour, Claude"},
    {"role": "assistant", "content": "Bonjour !"},
    {"role": "user", "content": "Peux-tu me décrire les LLM ?"}
  ]
});
JSON
{
    "id": "msg_018gCsTGsXkYJVqYPxTgDHBU",
    "type": "message",
    "role": "assistant",
    "content": [
        {
            "type": "text",
            "text": "Bien sûr, je serais ravi de fournir..."
        }
    ],
    "stop_reason": "end_turn",
    "stop_sequence": null,
    "usage": {
      "input_tokens": 30,
      "output_tokens": 309
    }
}

Mettre des mots dans la bouche de Claude

Vous pouvez pré-remplir une partie de la réponse de Claude dans la dernière position de la liste des messages d’entrée. Cela peut être utilisé pour façonner la réponse de Claude. L’exemple ci-dessous utilise "max_tokens": 1 pour obtenir une seule réponse à choix multiples de Claude.

#!/bin/sh
curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-opus-20240229",
    "max_tokens": 1,
    "messages": [
        {"role": "user", "content": "Quel est le nom latin pour Fourmi ? (A) Apoidea, (B) Rhopalocera, (C) Formicidae"},
        {"role": "assistant", "content": "La réponse est ("}
    ]
}'
JSON
{
  "id": "msg_01Q8Faay6S7QPTvEUUQARt7h",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "C"
    }
  ],
  "model": "claude-3-opus-20240229",
  "stop_reason": "max_tokens",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 42,
    "output_tokens": 1
  }
}

Vision

Claude peut lire à la fois du texte et des images dans les requêtes. Actuellement, nous prenons en charge le type de source base64 pour les images, et les types de médias image/jpeg, image/png, image/gif et image/webp. Consultez notre guide sur la vision pour plus de détails.

#!/bin/sh

IMAGE_URL="https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
IMAGE_MEDIA_TYPE="image/jpeg"
IMAGE_BASE64=$(curl "$IMAGE_URL" | base64)

curl https://api.anthropic.com/v1/messages \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-3-opus-20240229",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": [
            {"type": "image", "source": {
                "type": "base64",
                "media_type": "'$IMAGE_MEDIA_TYPE'",
                "data": "'$IMAGE_BASE64'"
            }},
            {"type": "text", "text": "Qu'y a-t-il dans l'image ci-dessus ?"}
        ]}
    ]
}'
JSON
{
  "id": "msg_01EcyWo6m4hyW8KHs2y2pei5",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Cette image montre une fourmi, plus précisément une vue rapprochée d'une fourmi. La fourmi est montrée en détail, avec sa tête, ses antennes et ses pattes clairement visibles. L'image est centrée sur la capture des détails et des caractéristiques complexes de la fourmi, probablement prise avec un objectif macro pour obtenir une perspective en gros plan extrême."
    }
  ],
  "model": "claude-3-opus-20240229",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 1551,
    "output_tokens": 71
  }
}

[bêta] Utilisation d’outils et mode JSON

Consultez notre guide bêta pour des exemples sur la façon d’utiliser des outils avec l’API Messages.