AI Coding · 5 mondes · 15 étapes
Agents & outils
Messages, outils, boucle d'agent, RAG et garde-fous, écrits de ses mains.
Progression
0 %
0/15 étapes terminées
Fondamental · 8 min de lecture
Parler à un modèle
Ce qu'une application envoie vraiment
1Définition
Une API de modèle de langage reçoit une liste de messages (avec les rôles system, user, assistant) et renvoie le suivant. Le modèle est sans mémoire : l'application renvoie tout l'historique utile à chaque appel, et vérifie ce qui revient avant de s'en servir.
2Principes fondamentaux
01
La mémoire est dans ton code
Le tableau de messages est la seule mémoire de la conversation. Ce que tu n'envoies pas n'existe pas pour le modèle.
02
Le message system est le règlement
Il vient en premier, ne change pas, et fixe le rôle et les limites de l'assistant.
03
Une réponse est une entrée
Un JSON produit par un modèle peut être mal formé ou hors sujet : try / catch, puis validation.
04
Chaque appel se paie
On est facturé aux jetons lus et écrits : un long historique coûte à chaque tour.
3Exemples pratiques
Un appel réel avec le SDK d'Anthropic
1import Anthropic from "@anthropic-ai/sdk";2 3const client = new Anthropic(); // lit ANTHROPIC_API_KEY dans l'environnement4const reponse = await client.messages.create({5 model: "claude-sonnet-5",6 max_tokens: 500,7 system: "Tu es l'assistant de Sys-Code. Réponds en une phrase.",8 messages: [{ role: "user", content: "Qu'est-ce qu'une variable ?" }],9});10console.log(reponse.content[0].text);Même forme que dans le cours : un règlement, une liste de messages, une réponse à lire. La clé d'API reste côté serveur, jamais dans le navigateur.
Valider une réponse structurée
1let donnees;2try {3 donnees = JSON.parse(texte);4} catch {5 return "inconnu";6}7return THEMES.includes(donnees.theme) ? donnees.theme : "inconnu";Deux contrôles : la forme (du JSON valide), puis le fond (une valeur attendue).
4Erreurs courantes
Oublier l'historique
À éviter
await modele([{ role: "user", content: texte }])À faire
conversation.push(…); await modele(conversation)Pourquoi : Le modèle répond à la dernière phrase comme si elle tombait du ciel.
Croire le JSON sur parole
À éviter
const { theme } = JSON.parse(texte);À faire
try / catch, puis THEMES.includes(theme)Pourquoi : Un texte mal formé fait planter ; un thème inventé se propage dans l'application.
Une clé d'API dans le navigateur
À éviter
fetch(api, { headers: { "x-api-key": "sk-…" } }) // côté clientÀ faire
Une route serveur qui appelle le modèlePourquoi : Tout ce qui est envoyé au navigateur est lisible par l'utilisateur.
5Subtilités à connaître
- ◆La plupart des API proposent des sorties structurées qui garantissent un JSON conforme à un schéma ; la validation du fond reste nécessaire.
- ◆La température règle la part de hasard : basse pour extraire ou classer, plus haute pour écrire.
- ◆Un même message peut recevoir des réponses différentes d'un appel à l'autre : on teste un assistant sur plusieurs essais, pas un seul.
6Vérifie ta compréhension
Question 1/3
Score 0
Où vit la mémoire d'une conversation ?
Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.