rag‑chunk: Herramienta CLI para evaluar y optimizar la fragmentación RAG
rag‑chunk: Herramienta CLI para evaluar y optimizar la fragmentación RAG
La Generación Augmentada por Recuperación (RAG) se está convirtiendo en la piedra angular de los pipelines modernos de PLN, pero la calidad de un sistema RAG depende en gran medida de qué tan bien se divide el texto fuente en fragmentos manejables. Demasiados fragmentos muy pequeños explotan el índice; demasiados grandes hacen que pierdas la fidelidad contextual.
rag‑chunk resuelve este problema con una interfaz de línea de comandos sencilla que te permite probar, evaluar y comparar varias estrategias de fragmentación lado a lado. Está escrito en Python, bajo licencia MIT, y está disponible en PyPI, por lo que puedes integrarlo en cualquier contenedor o flujo de CI con mínima fricción.
Funcionalidades principales
| Característica | Descripción |
|---|---|
| Múltiples Estrategias | Tamaño fijo (basado en palabras o tokens), Ventana deslizante (preserva contexto), Párrafo (límites semánticos), Carácter recursivo (integración LangChain). |
| Fragmentación exacta en tokens | Soporte opcional de tiktoken para los límites de tokens de GPT 3.5 y 4; elige el modelo con --tiktoken-model. |
| Evaluación de recuperación | Proporciona un archivo de prueba JSON (examples/questions.json) para calcular cuántas frases relevantes aparecen en los fragmentos recuperados top‑k. |
| Salida CLI enriquecida | Tablas hermosas impulsadas por Rich: claras, legibles y exportables. |
| Exportar | Guarda los resultados en formato JSON, CSV o tabla; los fragmentos pueden almacenarse en una carpeta .chunks/ para inspección. |
| Extensible | Añade lógica de fragmentación personalizada en src.chunker.py y regístrala en el diccionario STRATEGIES. |
Inicio rápido
Instalación
# Desde PyPI
pip install rag-chunk # básica
pip install rag-chunk[tiktoken] # con soporte opcional de tiktoken
Tip – Si trabajas dentro de un entorno virtual, asegúrate de que
tiktokensolo esté instalado cuando necesites fragmentación exacta en tokens.
Generación simple de fragmentos
rag‑chunk analyze examples/ --strategy paragraph
Evaluar todas las estrategias
rag‑chunk analyze examples/ \
--strategy all \
--chunk-size 100 \
--overlap 20 \
--output table
Validar con un archivo de prueba
rag‑chunk analyze examples/ \
--strategy all \
--chunk-size 150 \
--overlap 30 \
--test-file examples/questions.json \
--top-k 3 \
--output json > results.json
Elegir la estrategia adecuada
| Estrategia | Cuándo usarla | Recomendación de tamaño de fragmento |
|---|---|---|
| Tamaño fijo | Retraso uniforme, comparación de referencia | 150–250 palabras (o tokens con --use‑tiktoken) |
| Ventana deslizante | Párrafos largos donde la fuga de contexto importa | 120–200 palabras, 20–30 % de superposición |
| Párrafo | Markdown o prosa con secciones claras | Variable – límites de párrafo naturales |
| Carácter recursivo | Textos de gran riqueza semántica, integración de LangChain | Según los valores por defecto de LangChain, pero puedes sobreescribir con --chunk‑size |
Si el avg_recall de una estrategia es inferior a 0,70, considera ajustar el tamaño del fragmento, cambiar la estrategia o agregar más tokens superpuestos.
Extender rag‑chunk
Si tienes un algoritmo de fragmentación propietario, puedes integrarlo:
# src/chunker.py
from typing import List, Dict
def my_custom_chunks(text: str, chunk_size: int, overlap: int) -> List[Dict]:
chunks = []
# Tu lógica aquí – por ejemplo, dividir por encabezados markdown específicos
return chunks
# Registrar en las estrategias globales
STRATEGIES = {
"custom": my_custom_chunks,
...
}
rag‑chunk analyze docs/ --strategy custom --chunk-size 180
Casos de uso reales
- Prototipado de modelos RAG – Mide rápidamente qué tan bien tus embeddings capturan contenido significativo.
- Ajuste de índice en producción – Reduce el número de fragmentos para ahorrar almacenamiento sin sacrificar recuperación.
- Frontera de tokens específica del modelo – Para GPT‑4 con contexto de 32 k tokens, genera fragmentos de exactamente 512 tokens que encajen.
- Verificaciones CI automatizadas – Añade
rag‑chunkcomo paso en tu pipeline CI para detectar regresiones en la calidad de los fragmentos.
Obtener ayuda y contribuir
- Código Fuente – https://github.com/messkan/rag‑chunk
- Documentación – Lee el README completo en el repositorio o usa
rag‑chunk --help. - Issues/PRs – El repositorio está abierto a pull requests; siéntete libre de proponer nuevas estrategias o mejorar la documentación.
- Comunidad – Comunícate en la página de issues si encuentras un error o tienes una solicitud de función.
TL;DR
- rag‑chunk es una CLI en Python de licencia MIT que te permite evaluar estrategias de fragmentación RAG.
- Instálalo con
pip install rag‑chunk[tiktoken]. - Ejecuta pruebas rápidas con
rag‑chunk analyze <folder> --strategy all --chunk-size 150. - Exporta resultados como tablas, JSON o CSV; ajusta la precisión de tokens con
--use‑tiktoken.
¡Elimina la conjetura en la selección de fragmentos, obtén métricas accionables y acelera el desarrollo de tu pipeline RAG hoy mismo!