Este proyecto es un sistema RAG (Retrieval-Augmented Generation) que permite cargar archivos (PDF, DOCX, HTML) y realizar consultas usando Gemini 2.5 Flash y Gemma 3.
- Multiformato: Soporta
.pdf,.docxy.html. - Arquitectura: Backend con FastAPI y Frontend con Streamlit.
- Base de Datos: Usa ChromaDB para recuperación de información.
- Memoria: Historial de chat almacenado en SQLite.
- RAG-Fusion: Crea 4 "queries" relacionados con la pregunta del usuario y hace retrieve de cada uno, devolviendo los dos chunks más relacionados para cada. Luego, rankea los 8 chunks retrieved (4 queries * 2 chunks). Estos chunks pueden ser repetidos. Finalmente, devuelve como contexto los cuatro chunks mejor rankeados.
| Componente | Tecnología |
|---|---|
| IA Framework | LangChain & LangGraph |
| Modelos | Gemini & Gemma |
| API | FastAPI |
| UI | Streamlit |
-
Instalar dependencias:
pip install -r requirements.txt -
Backend (API):
uvicorn api.main:app --host 0.0.0.0 --port 10000 -
Frontend (App):
streamlit run app/streamlit_app.py
/api: Servidor FastAPI y lógica de LangChain./app: Interfaz de usuario en Streamlit.chroma_db/: Base de datos vectorial persistente.