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

Avancé · 10 min de lecture

Mémoire et RAG

Choisir ce que le modèle lit

1Définition

La fenêtre de contexte limite ce qu'un modèle lit par appel. On y garde le règlement et les messages récents, et l'on apporte le savoir utile par RAG : transformer la question en vecteur, trouver les documents les plus proches, et les placer dans le message avant d'appeler le modèle.

2Principes fondamentaux

01

Un historique sans trou

On garde les messages les plus récents qui tiennent, et l'on s'arrête au premier qui déborde.

02

Chercher par le sens

Des embeddings et la similarité cosinus trouvent des textes proches sans mot commun.

03

Répondre à partir de sources

Le modèle s'appuie sur les extraits fournis, et l'on renvoie leurs titres à l'utilisateur.

04

Tout est à refaire à chaque appel

Le modèle n'apprend rien : les extraits ne vivent que dans le message.

3Exemples pratiques

La similarité cosinus

Exemple
1const produit = (a, b) => a.reduce((s, x, i) => s + x * b[i], 0);2const cosinus = (a, b) => produit(a, b) / Math.sqrt(produit(a, a) * produit(b, b));

1 pour deux directions identiques, 0 pour deux directions sans rapport.

Un message RAG

Exemple
1const contexte = fiches.map((f) => "[" + f.titre + "] " + f.texte).join("\n");2await modele([3  { role: "system", content: "Réponds uniquement à partir de ces fiches :\n" + contexte },4  { role: "user", content: question },5]);

Des extraits étiquetés permettent au modèle de citer ses sources, et à l'interface de les afficher.

4Erreurs courantes

Un historique à trous

À éviter

if (trop long) continue;

À faire

if (trop long) break;

Pourquoi : Le modèle lirait une réponse sans sa question.

Trier le tableau d'origine

À éviter

fiches.sort(…)

À faire

[...fiches].sort(…)

Pourquoi : sort modifie le tableau sur place : la base de fiches change d'ordre pour tout le monde.

Tout envoyer au modèle

À éviter

content: toutesLesFiches.join("\n")

À faire

Les k fiches les plus proches

Pourquoi : Coûteux, lent, et le modèle se perd dans le bruit.

5Subtilités à connaître

  • ◆On découpe les longs documents en morceaux de quelques paragraphes avant de calculer leurs vecteurs.
  • ◆Les bases vectorielles (pgvector, par exemple) utilisent des index approximatifs pour chercher parmi des millions de vecteurs.
  • ◆Combiner recherche par mots-clés et recherche par vecteurs donne souvent de meilleurs résultats que chacune seule.

6Vérifie ta compréhension

Question 1/3

Score 0

Dans une fenêtre trop pleine, on garde toujours…

Envie d'essayer ? Ouvre le Labo et recopie les exemples pour les modifier.