AI Engineering

Comment fonctionne le RAG : guide développeur avec exemples C#

Chargement, découpage, embeddings, recherche et génération ancrée : comprendre les décisions avant de choisir un framework.

Christian Rikong 2 min de lecture Intermediate 9 min
RAGC#Architecture

Un modèle a besoin de contexte

Le RAG associe un système de recherche à un système de génération. Il récupère des passages pertinents dans un corpus autorisé et les fournit avec la question. Il ne garantit pas la justesse et n'entraîne pas le modèle sur ces passages.

Charger les documents avec un contrat

Validez types, taille, encodage et propriété des sources. Extrayez le texte lisible et conservez un identifiant stable. Enregistrez la version pour supprimer les fragments périmés après modification.

Découper avec intention

De petits fragments perdent le contexte. De grands fragments consomment le budget et diluent la recherche. Commencez par les paragraphes avec un chevauchement mesuré. Évaluez sur des questions représentatives plutôt que de copier une taille trouvée dans un tutoriel.

Vectoriser de façon cohérente

Utilisez la même version du modèle pour les documents et les questions. Stockez son identifiant avec les vecteurs. La similarité cosinus compare des directions, pas la probabilité d'un accord factuel.

public record Passage(string SourceId, string Text, double[] Vector);
public record Match(Passage Passage, double Score);

// Cosine est la fonction testée de la leçon sur les embeddings.
var matches = authorizedPassages
    .Select(p => new Match(p, Cosine(queryVector, p.Vector)))
    .OrderByDescending(m => m.Score)
    .Take(4)
    .ToArray();

Cette recherche exacte en mémoire convient à un petit corpus pédagogique. À plus grande échelle, choisissez un index adapté et mesurez le compromis entre rappel et latence.

Générer à partir de preuves limitées

Construisez un bloc de contexte avec des identifiants de source. Limitez sa taille. Exigez des citations et autorisez l'absence de réponse lorsque les preuves manquent. Traitez les documents comme des données non fiables face aux injections de consigne.

Autoriser avant de rechercher

Ne récupérez pas de texte privé dans un contexte partagé en demandant au modèle de le garder secret. Appliquez les permissions dans la requête de recherche. Vérifiez chaque citation dans les passages réellement retrouvés.

Évaluer les échecs

Testez les questions connues, ambiguës, sans réponse, les sources contradictoires et les documents interdits. Séparez la qualité de recherche de la fidélité de réponse. Une démonstration fluide prouve peu.

Poursuivez avec le laboratoire RAG pour implémenter le découpage et la comparaison vectorielle avant de connecter un modèle externe.

// le carnet, par e-mail

Apprenez avec moi.

Des idées d'ingénierie qui méritent d'être comprises.