Expediente del caso

RAG sobre documentación Odoo

Simbolo de la marca de la edicion del caso
Simbolo de la marca de la edicion del caso
Periodo
2026-01 al 2026-01
Estado
completed
Visibilidad
private
Stack
Python, LangChain, Ollama, ChromaDB
  • technology:python
  • technology:langchain
  • technology:ollama
  • technology:chromadb
  • architecture:rag

Evidencias · ODOO-RAG


Métricas

  • +18000 URLs procesadas
  • 23 commits

Repositorio

  • stack 100% local sin APIs externas
Sistema RAG que permite consultar en lenguaje natural la documentacion oficial de Odoo (versiones 17/18/19) y obtener respuestas basadas en el contenido real, con un stack 100% local: LangChain + Ollama (llama3.1:8b para embeddings y generacion) + ChromaDB persistente. Scraper multi-version resiliente con rate limiting y sistema de reanudacion con checkpoints cada 50 URLs / 5 min, capaz de procesar +18.000 URLs y recuperarse tras caidas (3 modos: continuar, reiniciar, incremental). Chunking con `RecursiveCharacterTextSplitter`, chat RAG interactivo con respuestas en streaming y ejecucion desacoplable en background con monitoreo en tiempo real.

Expediente del caso

Motivación

Documentarse sobre Odoo obliga a saltar entre versiones y paginas sin tener una respuesta directa a preguntas concretas. La motivacion fue montar un sistema que respondiera en lenguaje natural usando la documentacion real, con todo el proceso local: sin depender de APIs externas ni enviar datos fuera de la maquina.

El reto

El reto era doble: conseguir un corpus fiable (el scraper tenia que recorrer decenas de miles de URLs de tres versiones sin morirse por rate limiting o caidas) y que las respuestas estuvieran fundadas en el contenido, no alucinadas.

Enfoque

Se construyo un scraper multi-version con rate limiting y checkpoints cada 50 URLs / 5 min, con tres modos de reanudacion (continuar, reiniciar, incremental) para recuperarse de caidas y procesar +18.000 URLs. El chunking usa `RecursiveCharacterTextSplitter`. El chat RAG responde en streaming con Ollama (llama3.1:8b) para embeddings y generacion, y ChromaDB persistente como almacen, con ejecucion desacoplable en background y monitoreo en tiempo real.

Aprendizaje

La resiliencia del scraper importa tanto como el modelo: los checkpoints convierten una caida en un contratiempo de minutos en lugar de perder todo el trabajo. Un stack 100% local evita problemas de privacidad y costes recurrentes, y hace el experimento reproducible sin credenciales.

Estado actual

Completado. El sistema proceso +18.000 URLs y quedo funcional como chat RAG local con streaming y monitoreo. El repositorio registra 23 commits y el stack completo es local, sin APIs externas.