Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 InsightRAG: Intelligent Document Intelligence System

Python FastAPI React License: MIT

InsightRAG es un sistema de Generación Aumentada por Recuperación (RAG) diseñado para transformar documentos PDF estáticos en una base de conocimiento interactiva. Combina embeddings locales (privacidad/coste) con LLMs (Google Gemini) para sintetizar respuestas con trazabilidad, y ahora incluye una interfaz tipo macOS con modo claro/oscuro persistente.

🚀 Key Features

  • Hybrid RAG Pipeline: ingesta PDF → chunking → embeddings locales → ChromaDB → recuperación → respuesta con Gemini.
  • Dynamic Model Selection: lista modelos disponibles desde el proveedor y permite elegir en UI.
  • Vector Persistence: persistencia local en ChromaDB para iterar rápido.
  • Sources / Traceability: devuelve evidencias con metadatos (página) + snippet.
  • Professional UI: chat moderno con selector de modelo, carga de documentos y tema claro/oscuro.
  • Architecture Cleanup: backend separado por capas de API, aplicación, dominio e infraestructura.

🏗️ Architecture

La documentación técnica está en la carpeta docs/:

🛠️ Tech Stack

Component Technology
Frontend React + Vite + Axios + Tailwind
Backend FastAPI + LangChain
Vector DB ChromaDB
Embeddings HuggingFace (local: sentence-transformers/all-MiniLM-L6-v2)
LLM Google Gemini (via langchain-google-genai)

⚙️ Installation & Setup

1) Backend

cd backend
pip install -r requirements.txt

Crea tu .env (puedes copiar el ejemplo):

copy .env.example .env

Añade tu GOOGLE_API_KEY en backend/.env.

Arranque:

uvicorn src.main:app --reload

API (dev): http://127.0.0.1:8000 Swagger: http://127.0.0.1:8000/docs

2) Frontend

cd frontend
npm install

Configura la URL del backend con variables de entorno (Vite):

  • frontend/.env (ya incluido en este repo para dev local)
  • ejemplo: frontend/.env.example
npm run dev

UI (dev): http://localhost:5173

📸 Screenshots

1) Vista principal en tema oscuro

Interfaz principal del chat con estética tipo macOS, selector de modelo, carga de PDF y fondo visual más limpio.

Vista principal en tema oscuro

2) Vista principal en tema claro

La misma experiencia en modo claro, con la nueva paleta semántica y contraste equilibrado.

Vista principal en tema claro

3) Respuesta con trazabilidad

Ejemplo de pregunta y respuesta generada, incluyendo fuentes/evidencias con metadatos (página) y un snippet del contenido recuperado.

Respuesta con fuentes

🧪 API Contract (Quick Reference)

  • GET /models → lista modelos
  • POST /upload → ingiere un PDF
  • POST /ask{ query, model_name }{ answer, sources: [{ page, snippet }] }
  • POST /reset → resetea vector DB

🧱 Current Architecture

  • Frontend React con tema global en contexto, componentes pequeños y UI reutilizable.
  • Backend FastAPI con rutas separadas, dependencias de API, servicios de aplicación y excepciones de dominio.
  • Persistencia local en ChromaDB para la base vectorial.
  • Embeddings locales con HuggingFace para privacidad y coste.
  • Gemini para generación de respuestas con contexto recuperado.

🗺️ Roadmap (Engineering-grade)

  • Rate limiting server-side y backoff con jitter para 429.
  • Streaming de tokens (SSE/WebSocket) para UX.
  • Multi-document / multi-user (índices por sesión/usuario).
  • Evaluación: dataset + métricas (hit-rate, faithfulness).

About

Advanced RAG System for Intelligent Document Querying. Built with Python, FastAPI, and React, leveraging Gemini Pro and ChromaDB for high-precision context retrieval from PDFs and codebases.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages