rag-notas
Asistente que responde preguntas sobre documentación técnica en español a partir de los fragmentos que recupera, con citas. Cada etapa está hecha primero sin frameworks y se mide antes de pasar a la siguiente.
- Estado
- En desarrollo
- Áreas
- IA, Backend
- Tecnologías
- Python
- ChromaDB
- sentence-transformers
- multilingual-e5-large
- bge-reranker-v2-m3
- Ollama (qwen2.5:14b)
Demo interactiva
Qué hace
- Corpus de 20 documentos públicos (Kubernetes, Pro Git y MDN), unas 50.000 palabras
- Troceado por secciones Markdown y fragmentos de 800 caracteres con 100 de solape
- Búsqueda vectorial con embeddings locales y reranker cross-encoder sobre 25 candidatos
- Respuestas con citas [n] y una frase fija cuando la respuesta no está en los documentos
- Evaluación propia con 28 preguntas escritas a mano, incluidas 5 sin respuesta en el corpus
Qué aprendí
- Medir antes de optimizar: el reranker sube el recall@1 de 0,57 a 0,65 pero no cambia el recall@5 (0,91)
- Los fallos suelen estar en la recuperación: la traducción de Pro Git dice «reorganizar», no «rebase»
- Un LLM local servido desde otro equipo de la red, con el firewall cerrado porque Ollama no tiene autenticación
- Probar el sistema contra prompt injection con un documento trampa
En desarrollo: falta evaluar la calidad de las respuestas y añadir búsqueda híbrida. La demo busca en un extracto real del corpus con BM25 dentro del navegador; el proyecto usa búsqueda vectorial y un LLM que no se pueden ejecutar aquí.
Cómo está montado
- 20 documentosMarkdown limpio
- ingest.pytroceado + embeddings
- ChromaDBbúsqueda vectorial
- Reranker25 candidatos
- generate.pyLLM local + citas