Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
Decouper un texte avec LangChain
Un des problèmes fondamentaux du RAG, c'est que les textes sont souvent trop longs pour etre traites d'un seul bloc. Il faut les decouper en morceaux (chunks) de taille geree.
LangChain fournit RécursiveCharacterTextSplitter, un outil qui decoupe un texte en essayant de respecter les separateurs naturels (paragraphes, phrases, mots) pour ne pas couper au milieu d'une idee.
Pour l'utiliser : from langchain_text_splitters import RécursiveCharacterTextSplitter splitter = RécursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=20) chunks = splitter.split_text('un long texte...')
- chunk_size : taille maximale de chaque morceau (en caracteres) - chunk_overlap : nombre de caracteres qui se chevauchent entre deux morceaux consecutifs
Le chevauchement evite de perdre du contexte quand une idee est a cheval entre deux chunks.
Écris une fonction split_text(text, chunk_size, chunk_overlap) qui utilise RécursiveCharacterTextSplitter pour decouper le texte et renvoyer la liste des chunks.
Exemple : chunks = split_text('Bonjour. ' * 50, 100, 20) Chaque chunk fait au plus 100 caracteres
Tests (1/1)
Tests
chunks = split_text('Bonjour le monde. ' * 50, 100, 20)
assert isinstance(chunks, list), 'Le résultat doit etre une liste'
assert len(chunks) > 1, 'Le texte devrait etre decoupe en plusieurs chunks'
assert all(len(c) <= 100 for c in chunks), 'Aucun chunk ne doit dépasser chunk_size'
assert all(isinstance(c, str) for c in chunks), 'Chaque chunk doit etre une chaine'
short = split_text('Court', 100, 0)
assert len(short) == 1, 'Un texte court ne devrait pas etre decoupe'