Découpeur de texte pour RAG
Découpez un document en chunks qui se chevauchent exactement comme le ferait RecursiveCharacterTextSplitter de LangChain, ponctuation chinoise comprise.
Entrée
Résultat
Le résultat apparaîtra ici.La façon dont un document est découpé décide de ce qu’un système RAG peut retrouver : des chunks qui s’arrêtent au milieu d’une phrase ou mélangent deux sujets donnent de mauvais résultats de recherche, aussi bon que soit le modèle d’embedding. Cet outil vous montre les chunks avant que vous n’indexiez quoi que ce soit. C’est un portage ligne à ligne de RecursiveCharacterTextSplitter de LangChain (langchain-ai/langchain, MIT), le découpeur dont partent la plupart des tutoriels et pipelines RAG, et nos tests vérifient qu’il produit exactement les mêmes chunks que la bibliothèque Python sur de l’anglais, du chinois et du texte mixte, la longueur étant mesurée en caractères ou en tokens.
Comment ça marche
- Le texte est coupé au premier séparateur qu’il contient — ligne vide, saut de ligne, puis fins de phrase, signes de ponctuation intermédiaires et espaces — et tout morceau encore trop long est recoupé avec le séparateur suivant de la liste.
- La ponctuation chinoise de fin de phrase et de proposition (。!?;,) figure dans la liste des séparateurs, et chaque séparateur reste à la fin du morceau qu’il clôt, si bien qu’un chunk se termine par son point au lieu que le chunk suivant commence par lui.
- Les morceaux sont ensuite regroupés jusqu’à la taille de chunk, et chaque nouveau chunk commence par autant de la fin du précédent que le chevauchement le permet, comme dans LangChain.
- La longueur est comptée en points de code Unicode, comme len() en Python, ou en tokens cl100k_base ; la sortie est un JSON donnant pour chaque chunk son index, son décalage de début, sa longueur et son texte.
Où vont vos données
Nulle part. Cet outil s’exécute entièrement dans votre navigateur : le texte collé est traité par la page, jamais transmis à un serveur ni consigné dans un journal.
Cet outil est gratuit et ne demande aucun compte. Ses résultats n’existent que dans la page ouverte et ne sont enregistrés nulle part.
Ce que ça coûte
Cet outil est gratuit, sans connexion ni points.
Questions fréquentes
- Obtiendrai-je les mêmes chunks dans mon pipeline Python ?
- Oui, avec les mêmes réglages : RecursiveCharacterTextSplitter(chunk_size=…, chunk_overlap=…, separators=["\n\n", "\n", "。", "!", "?", ". ", "! ", "? ", ";", "; ", ",", ", ", " ", ""], keep_separator="end"). En mode tokens, ajoutez une length_function qui compte avec cl100k_base de tiktoken. Les séparateurs par défaut de LangChain ignorent la ponctuation chinoise, d’où le mauvais découpage du texte chinois avec eux.
- Quelle taille de chunk et quel chevauchement choisir ?
- Un point de départ courant est de 500 à 1 000 caractères, ou de 200 à 400 tokens, avec un chevauchement de 10 à 20 %. Des chunks plus petits donnent des correspondances plus précises mais moins de contexte par résultat ; des chunks plus grands, l’inverse. Essayez ici vos vrais documents et lisez les chunks : chacun doit avoir un sens à lui seul.
- Pourquoi un chunk est-il parfois plus court que ne le laisserait penser le chevauchement ?
- Le chevauchement est un maximum, pas une garantie. Le découpeur ne reporte que des morceaux entiers, et il retire des morceaux par l’avant jusqu’à ce que le suivant tienne dans la taille de chunk ; une longue phrase peut donc ne laisser aucune place au chevauchement. LangChain se comporte de la même façon.
- Gère-t-il les titres Markdown ou le découpage sémantique ?
- Non. Il effectue le découpage récursif par caractères, celui que la plupart des pipelines utilisent par défaut. Les découpeurs qui tiennent compte des titres ou qui s’appuient sur des embeddings demandent une autre logique, et dans le cas sémantique un modèle d’embedding ; ici, les lignes vides et les titres jouent déjà le rôle des frontières les plus fortes.
L’open source derrière
Cet outil est une implémentation autonome, sans bibliothèque tierce. langchain-ai/langchain (MIT) fait le même travail sous forme de bibliothèque : pour l’intégrer à votre programme, commencez par là plutôt que d’appeler une page web.
langchain-ai/langchainAussi appelé
- découpage de texte RAG
- chunking RAG
- RecursiveCharacterTextSplitter
- text splitter LangChain en ligne
- taille de chunk et chevauchement
- découper un document en chunks