Chunking (découpage en fragments)
IA / LLM 🟡 MidDéfinition
Découpe des documents en morceaux de taille bornée avant embedding, car un embedding résume mal un texte trop long et le contexte du LLM est limité. LangChain propose RecursiveCharacterTextSplitter (préserve paragraphes puis phrases), TokenTextSplitter et CharacterTextSplitter, réglés par chunkSize et chunkOverlap (recouvrement entre fragments, 0 par défaut).
Analogie
Découper un livre en fiches de lecture d'une page, chaque fiche répétant les dernières lignes de la précédenté pour ne pas couper une idée.
Exemple de code
import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
const splitter = new RecursiveCharacterTextSplitter({
chunkSize: 800, // caractères par fragment
chunkOverlap: 100, // recouvrement pour ne pas couper une idée
separators: ['\n## ', '\n\n', '\n', '. ', ' '], // du plus fort au plus faible
});
const chunks = await splitter.createDocuments([markdown], [{ url }]);
// Chaque chunk garde ses metadata (url, titre) pour citer la source
for (const c of chunks) await indexChunk(c.pageContent, c.metadata);
Cas d'usage
Préparer une base RAG à partir de docs Markdown, PDF ou pages web.
Anti-pattern
Couper à taille fixe au milieu des tableaux ou des blocs de code : le fragment perd son sens.
Termes liés
Fiche mise à jour le 2026-09-27