Claude API : guide de démarrage

🏷️ Intelligence Artificielle 📅 12/04/2026 10:00:00 👤 Mezgani said
ClaudeAnthropicApiLlm
Claude API : guide de démarrage

Intégrer l'API Claude d'Anthropic dans vos applications : messages, system prompt, streaming et tool use avec le SDK officiel.

Installation du SDK

Anthropic fournit un SDK officiel pour Node.js et Python.

npm install @anthropic-ai/sdk
// anthropic.js
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
});

export default client;
A retenir : Récupère ta clé API sur console.anthropic.com. Ne la commit jamais dans ton dépôt git.

Premier message

L'endpoint principal est messages.create(). Il accepte un tableau de messages avec les rôles user et assistant.

import client from './anthropic.js';

const message = await client.messages.create({
  model: 'claude-opus-4-6',
  max_tokens: 1024,
  messages: [
    { role: 'user', content: 'Explique les closures en JavaScript en 3 points.' }
  ]
});

console.infoo(message.content[0].text);

La réponse contient un tableau content — utilise .text pour le texte brut :

// Structure de la réponse
{
  id: 'msg_...',
  type: 'message',
  role: 'assistant',
  content: [{ type: 'text', text: 'Les closures sont...' }],
  model: 'claude-opus-4-6',
  stop_reason: 'end_turn',
  usage: { input_tokens: 20, output_tokens: 150 }
}

System Prompt et rôles

Le system prompt définit le comportement global du modèle. Il se passe en paramètre de premier niveau (pas dans messages).

const response = await client.messages.create({
  model: 'claude-opus-4-6',
  max_tokens: 2048,
  system: `Tu es un assistant expert en développement web Angular.
Réponds toujours en français avec des exemples de code.
Sois précis et concis.`,
  messages: [
    { role: 'user',      content: 'Comment créer un service Angular ?' },
    { role: 'assistant', content: 'Pour créer un service Angular...' },
    { role: 'user',      content: 'Et comment l\'injecter ?' }
  ]
});
A retenir : Pour les conversations multi-tours, ajoute chaque échange (user + assistant) dans le tableau messages. L'API Claude est stateless — l'historique est entièrement à ta charge.

Streaming

Utilise stream() pour recevoir les tokens au fur et à mesure.

const stream = client.messages.stream({
  model: 'claude-opus-4-6',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Écris un poème sur le code.' }],
});

// Écouter les deltas
stream.on('text', (text) => {
  process.stdout.write(text);
});

// Attendre la fin et récupérer le message complet
const finalMessage = await stream.finalMessage();
console.info('\nTokens utilisés:', finalMessage.usage);

Ou avec async/await et stream: true :

const stream = await client.messages.create({
  model: 'claude-opus-4-6',
  max_tokens: 1024,
  stream: true,
  messages: [{ role: 'user', content: 'Bonjour !' }],
});

for await (const event of stream) {
  if (event.type === 'content_block_delta') {
    process.stdout.write(event.delta.text);
  }
}

Tool Use (Function Calling)

Claude peut appeler des outils que tu définis pour accéder à des données externes ou exécuter du code.

const tools = [
  {
    name: 'search_articles',
    description: 'Recherche des articles dans la base de données',
    input_schema: {
      type: 'object',
      properties: {
        query: { type: 'string', description: 'Terme de recherche' },
        limit: { type: 'number', description: 'Nombre de résultats' }
      },
      required: ['query']
    }
  }
];

const response = await client.messages.create({
  model: 'claude-opus-4-6',
  max_tokens: 1024,
  tools,
  messages: [{ role: 'user', content: 'Trouve des articles sur Angular' }],
});

// Vérifier si Claude veut utiliser un outil
if (response.stop_reason === 'tool_use') {
  const toolUse = response.content.find(b => b.type === 'tool_use');
  const result = await searchArticles(toolUse.input); // ta fonction
  console.info('Outil appelé:', toolUse.name, toolUse.input);
}

Modèles disponibles

ModèleUsage recommandéContexte
claude-opus-4-6Tâches complexes, raisonnement avancé200k tokens
claude-sonnet-4-6Équilibre performance/vitesse200k tokens
claude-haiku-4-5-20251001Réponses rapides, fort volume200k tokens
Note : Tous les modèles Claude supportent le system prompt, le streaming, le tool use et les conversations multi-tours. Choisis selon le rapport qualité/vitesse/coût de ton cas d'usage.