Aller au contenu principal

Testez vos connaissances : acceder a l'API

Verifiez votre comprehension de la section “Acceder a l’API Claude” avec ces 8 questions.


Question 1 : Securite de la cle API

Pourquoi faut-il appeler l’API Claude depuis un serveur backend et jamais directement depuis le navigateur ?

Voir la reponse

La cle API (ANTHROPIC_API_KEY) serait exposee dans le code source cote client. N’importe qui pourrait l’extraire via les outils de developpement du navigateur et l’utiliser a vos frais. Un serveur backend garde la cle secrete cote serveur, inaccessible aux utilisateurs.


Question 2 : Parametres obligatoires

Quels sont les trois parametres obligatoires pour un appel a client.messages.create() ?

Voir la reponse
  1. model : le modele a utiliser (ex: "claude-sonnet-4-20250514")
  2. max_tokens : le nombre maximum de tokens en sortie
  3. messages : la liste des messages de la conversation

Sans ces trois parametres, l’appel echouera.


Question 3 : Conversations multi-tour

L’API Claude conserve-t-elle l’historique des conversations entre les appels ?

Voir la reponse

Non. L’API est stateless (sans etat). Chaque appel est independant. Pour simuler une conversation multi-tour, vous devez renvoyer l’integralite de l’historique (tous les messages precedents) a chaque appel. C’est a votre application de stocker et gerer cet historique.


Question 4 : System prompts

Quelle est la difference entre un system prompt et un message utilisateur ? Ou se place le system prompt dans l’appel API ?

Voir la reponse

Le system prompt definit le comportement, le ton et le role de Claude pour toute la conversation. Il se passe via le parametre system de messages.create(), pas dans la liste messages :

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system="Tu es un expert en cybersecurite. Reponds de facon technique et precise.",
    messages=[{"role": "user", "content": "Qu'est-ce qu'une injection SQL ?"}]
)

Le system prompt n’est pas un message de la conversation — c’est une instruction globale.


Question 5 : Temperature

Quelle est la plage de valeurs pour le parametre temperature et quel est l’effet de ses extremes ?

Voir la reponse

La temperature va de 0.0 a 1.0 :

  • 0.0 : reponses les plus deterministes et focalisees. Ideal pour du code, des faits, de l’analyse.
  • 1.0 : reponses les plus creatives et variees. Ideal pour de la fiction, du brainstorming, de la creativite.

La valeur par defaut est 1.0. Pour la plupart des cas d’usage en production, une valeur entre 0.0 et 0.5 est recommandee.


Question 6 : Streaming

Quel est l’avantage principal du streaming et comment l’activer avec le SDK Python ?

Voir la reponse

Le streaming permet d’afficher la reponse progressivement au lieu d’attendre 10-30 secondes pour la reponse complete. L’utilisateur voit le texte apparaitre en temps reel.

Activation avec le SDK Python :

with client.messages.stream(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Bonjour"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Question 7 : Pre-remplissage (prefill)

Comment fonctionne le pre-remplissage du message assistant et a quoi sert-il ?

Voir la reponse

On ajoute un message avec role: "assistant" dans la liste messages, contenant le debut de la reponse souhaitee. Claude continue a partir de ce point au lieu de repartir de zero.

messages=[
    {"role": "user", "content": "Genere un objet JSON pour un livre."},
    {"role": "assistant", "content": "```json\n"}
]

Utilisations : forcer un format de sortie, orienter le ton, eviter les preambules, choisir une langue de reponse.

Attention : le texte retourne par l’API est la suite du prefill, pas la reponse complete.


Question 8 : Stop sequences

Que se passe-t-il quand Claude genere une stop sequence ? Le texte de la stop sequence apparait-il dans la reponse ?

Voir la reponse

Quand Claude genere une stop sequence, il s’arrete immediatement. Le texte de la stop sequence n’apparait pas dans la reponse retournee. Le champ stop_reason du message sera "end_turn" ou "stop_sequence" selon le cas.

Exemple : avec stop_sequences=["```"], si Claude genere {"key": "value"}\n\, la reponse contiendra uniquement {“key”: “value”}\n`.

C’est ce qui rend la combinaison prefill + stop sequence si efficace pour extraire du contenu structure.


Score

  • 8/8 : Excellent, vous maitrisez les fondamentaux de l’API Claude
  • 6-7/8 : Bon niveau, relisez les points manques
  • < 6/8 : Reprenez les lecons de la section avant de continuer