rag‑chunk: Outil CLI pour mesurer et optimiser le découpage RAG
rag‑chunk : Outil CLI pour mesurer et optimiser le découpage RAG
La génération augmentée par requête (RAG) devient une pièce maîtresse des pipelines NLP modernes, mais la qualité d’un système RAG dépend fortement de la façon dont le texte source est découpé en morceaux gérables. Trop de fragments trop petits, et votre index explosera ; trop de gros fragments et vous perdrez la fidélité contextuelle.
rag‑chunk résout ce problème grâce à une interface en ligne de commande simple qui vous permet de tester, mesurer et comparer plusieurs stratégies de découpage côte à côte. Il est écrit en Python, publié sous licence MIT et est disponible sur PyPI, vous pouvez donc l’intégrer dans n’importe quel conteneur ou flux de travail CI avec un minimum de friction.
Fonctionnalités principales
| Fonctionnalité | Description |
|---|---|
| Stratégies multiples | Taille fixe (basée sur les mots ou tokens), fenêtre glissante (préserve le contexte), paragraphe (frontières sémantiques), découpage récursif par caractère (intégration LangChain). |
| Découpage précis en tokens | Support optionnel de tiktoken pour les limites de tokens GPT 3.5 et 4 ; choisissez le modèle avec --tiktoken-model. |
| Évaluation du rappel | Fournissez un fichier de test JSON (examples/questions.json) pour calculer le nombre d’expressions pertinentes apparaissant parmi les k premiers chunks récupérés. |
| Sortie CLI riche | Tableaux élégants alimentés par Rich – clairs, lisibles et exportables. |
| Export | Enregistrez les résultats en JSON, CSV ou dans un format tableau ; les chunks peuvent être exportés dans un dossier .chunks/ pour inspection. |
| Extensible | Ajoutez votre logique de découpage personnalisée dans src.chunker.py et enregistrez‑la dans le dictionnaire STRATEGIES. |
Démarrage rapide
Installation
# From PyPI
pip install rag-chunk # basic
pip install rag-chunk[tiktoken] # with optional tiktoken support
Astuce – Si vous travaillez dans un environnement virtuel, assurez-vous que
tiktokenest installé uniquement lorsqu’il vous faut un découpage exact en tokens.
Génération simple de chunks
rag‑chunk analyze examples/ --strategy paragraph
Mesurer toutes les stratégies
rag‑chunk analyze examples/ \
--strategy all \
--chunk-size 100 \
--overlap 20 \
--output table
Valider avec un fichier de test
rag‑chunk analyze examples/ \
--strategy all \
--chunk-size 150 \
--overlap 30 \
--test-file examples/questions.json \
--top-k 3 \
--output json > results.json
Choisir la bonne stratégie
| Stratégie | Quand l'utiliser | Recommandation de taille de chunk |
|---|---|---|
| Taille fixe | Latence uniforme, comparaison de référence | 150–250 mots (ou tokens avec --use‑tiktoken) |
| Fenêtre glissante | Paragraphes longs où la fuite de contexte est importante | 120–200 mots, 20–30 % de chevauchement |
| Paragraphe | Markdown ou prose avec des sections claires | Variable – limites naturelles de paragraphes |
| Découpage récursif par caractère | Textes très riches en sémantique, intégration LangChain | Selon les paramètres par défaut de LangChain, mais vous pouvez surcharger avec --chunk‑size |
Si le rappel_moyen d’une stratégie est inférieur à 0,70, envisagez d’ajuster la taille des chunks, de changer de stratégie ou d’ajouter davantage de tokens de chevauchement.
Étendre rag‑chunk
Si vous avez un algorithme de découpage propriétaire, vous pouvez l’intégrer :
# src/chunker.py
from typing import List, Dict
\def my_custom_chunks(text: str, chunk_size: int, overlap: int) -> List[Dict]:
chunks = []
# Votre logique ici – par ex., découper par titres markdown spécifiques
return chunks
# Register in the global strategies
STRATEGIES = {
"custom": my_custom_chunks,
...
}
Exécutez via l'interface CLI :
rag‑chunk analyze docs/ --strategy custom --chunk-size 180
Cas d'utilisation concrets
- Prototype de modèle RAG – Mesurez rapidement à quel point vos embeddings capturent un contenu significatif.
- Ajustement d’index de production – Réduisez le nombre de chunks pour diminuer le stockage tout en conservant le rappel.
- Frontières de tokens spécifiques au modèle – Pour GPT‑4 avec un contexte de 32 k tokens, générez exactement des chunks de 512 tokens qui correspondent.
- Vérifications CI automatisées – Intégrez
rag‑chunkcomme étape dans votre pipeline CI pour identifier les régressions dans la qualité des chunks.
Obtenir de l’aide et contribuer
- Code source – https://github.com/messkan/rag‑chunk
- Documentation – Lisez le README complet sur le dépôt ou utilisez
rag‑chunk --help. - Tickets/PRs – Le dépôt est ouvert aux pull requests ; sentez‑vous libres de proposer de nouvelles stratégies ou d’améliorer la doc.
- Communauté – Contactez la page des issues si vous rencontrez un bug ou avez une demande de fonctionnalité.
TL;DR
- rag‑chunk est un CLI Python sous licence MIT qui vous permet de mesurer les stratégies de découpage RAG.
- Installez via
pip install rag‑chunk[tiktoken]. - Exécutez des benchmarks rapides avec
rag‑chunk analyze <folder> --strategy all --chunk-size 150. - Exportez les résultats sous forme de tableaux, JSON ou CSV ; ajustez la précision en token avec
--use‑tiktoken.
Précisez votre choix de découpage, obtenez des métriques exploitables et accélérer le développement de votre pipeline RAG dès aujourd’hui !