Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Document RAG — Buscador inteligente de documentos con IA

License: MIT Python 3.12 Docker

Buscador inteligente de documentos para PYMES: sube tus PDF, TXT, MD o CSV y pregunta en lenguaje natural. Basado en RAG (Retrieval-Augmented Generation): embeddings + vector database (ChromaDB) + LLM, con fuentes citadas en cada respuesta.

Construido por EterWebs — agencia de IA y automatización para PYMES en Madrid (chatbots IA, automatización RAG, agentes de IA).

PDF / TXT / MD / CSV  →  chunks  →  embeddings  →  ChromaDB  →  pregunta  →  respuesta + fuentes

✨ Características

  • RAG completo y funcional: ingesta, chunking, embeddings, vector store y generación con fuentes citadas.
  • LLM y embeddings intercambiables: funciona con OpenAI, Ollama, LM Studio o cualquier API OpenAI-compatible (OPENAI_BASE_URL).
  • API REST lista (FastAPI): POST /ingest y POST /query.
  • Docker listo: docker compose up y a funcionar.
  • Persistencia local: ChromaDB en un volumen, sin servicios externos.
  • Detección de duplicados: re-indexar el mismo documento no crea copias.
  • Idioma automático: responde en el idioma de la pregunta (ES/EN/...).

🚀 Inicio rápido (Docker)

git clone https://github.com/eterwebs/document-rag.git
cd document-rag

cp .env.example .env
# edita .env y pon tu OPENAI_API_KEY

docker compose up --build

La API queda en http://localhost:8000 (docs interactivos en /docs).

1. Indexa un documento

curl -X POST http://localhost:8000/ingest \
  -F "file=@tu-documento.pdf"

2. Pregunta sobre él

curl -X POST http://localhost:8000/query \
  -H "Content-Type: application/json" \
  -d '{"question": "¿Cuánto cuesta el plan premium?"}'

Respuesta de ejemplo:

{
  "answer": "El plan premium cuesta 49 €/mes (documento-precios.pdf).",
  "sources": [
    {
      "source": "documento-precios.pdf",
      "doc_id": "a1b2c3d4e5f6",
      "fragment": "Plan Premium: 49 €/mes, soporte prioritario..."
    }
  ],
  "model": "gpt-4o-mini"
}

🧪 Inicio rápido (Python, sin Docker)

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export OPENAI_API_KEY=sk-...
uvicorn app.main:app --reload

🛠️ Usar con Ollama (100% local, sin OpenAI)

# docker-compose.yml → descomenta las líneas OPENAI_BASE_URL / LLM_MODEL / EMBEDDING_MODEL
ollama pull llama3.1
ollama pull nomic-embed-text
docker compose up --build

⚙️ Configuración

Variable Defecto Descripción
OPENAI_API_KEY Clave del proveedor LLM (obligatoria salvo Ollama local)
LLM_MODEL gpt-4o-mini Modelo de generación
EMBEDDING_MODEL text-embedding-3-small Modelo de embeddings
OPENAI_BASE_URL (oficial OpenAI) URL base de una API OpenAI-compatible
CHUNK_SIZE 800 Tamaño de chunk (caracteres)
CHUNK_OVERLAP 120 Solapamiento entre chunks
CHROMA_DIR ./chroma_db Carpeta del vector store
CHROMA_COLLECTION eterwebs_docs Nombre de la colección

📁 Estructura

document-rag/
├── app/
│   ├── main.py        # API FastAPI (ingest + query)
│   ├── ingest.py      # Carga, chunking e indexado en ChromaDB
│   ├── embeddings.py  # Embeddings configurables (OpenAI-compatible)
│   └── rag.py         # Recuperación + generación con fuentes
├── Dockerfile
├── docker-compose.yml
├── .env.example
└── requirements.txt

📚 Casos de uso típicos (PYMES)

  • Gestorías: responder clientes con su documentación interna (fiscal, laboral).
  • Despachos de abogados: buscar jurisprudencia y contratos en segundos.
  • Ecommerce: consultas de producto sobre catálogos y fichas técnicas.
  • RRHH: filtrar CVs y consultar la política interna de la empresa.

🤝 Contribuciones

PRs, issues y estrellas son bienvenidas. Antes de contribuir: código limpio, sin secretos en el repo y pruebas de los endpoints.

📄 Licencia

MIT — ver LICENSE.


Document RAG es un proyecto de EterWebs · IA y Automatización para PYMES en Madrid · chatbots IA, automatización RPA, agentes de IA y consultoría.

About

Buscador inteligente de documentos con IA (RAG) para PYMES — FastAPI + ChromaDB + LLM configurable

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages