Generador Visual de Proyectos RAG
Crea sistemas de Retrieval-Augmented Generation personalizados en minutos
Caracteristicas • Demo • Instalacion • Uso • Teoria RAG • Tecnologias
RAG Builder es una aplicacion web que te permite configurar visualmente un sistema RAG (Retrieval-Augmented Generation) y descargar un proyecto Python completo y listo para usar.
Desarrollado como parte del Programa de Formacion en IA de Upgrade Hub en colaboracion con el CSIC.
Los sistemas RAG combinan la potencia de los modelos de lenguaje (LLMs) con la recuperacion de informacion de tus propios documentos. Esto permite:
- Respuestas basadas en tu informacion especifica
- Reduccion de alucinaciones al anclar respuestas en documentos reales
- Actualizacion facil sin reentrenar modelos
- Privacidad al mantener datos sensibles locales
Interfaz paso a paso con 7 etapas para configurar todos los componentes:
| Paso | Descripcion |
|---|---|
| 1. Complejidad | Basico, Avanzado o Enterprise |
| 2. Caso de Uso | Cientifico, Legal, Codigo, Documentacion, Soporte |
| 3. LLM | Ollama, OpenAI, Anthropic, HuggingFace |
| 4. Embeddings | Sentence-Transformers, OpenAI, Ollama |
| 5. Vector DB | ChromaDB, FAISS, Qdrant, Milvus, Pinecone, pgvector |
| 6. Avanzado | Chunking, Retrieval, Docker, API, Tests |
| 7. Descarga | Preview y descarga del proyecto |
|
LLM Providers
|
Embeddings
|
Vector Databases
|
- Busqueda Hibrida: Combina busqueda semantica (vectores) con lexica (BM25)
- Reranking: Cross-Encoder para reordenar y mejorar precision
- Chunking Configurable: Recursivo, fijo, semantico o markdown
- API REST: FastAPI con documentacion automatica
El ZIP descargado incluye:
mi-proyecto-rag/
├── src/
│ ├── config.py # Configuracion centralizada
│ ├── embeddings.py # Modelo de embeddings
│ ├── vectorstore.py # Base de datos vectorial
│ ├── llm.py # Modelo de lenguaje
│ ├── retriever.py # Sistema de recuperacion
│ ├── rag_pipeline.py # Pipeline principal
│ ├── indexer.py # Indexacion de documentos
│ ├── query.py # Interfaz de consultas
│ └── api/ # API REST (opcional)
├── tests/ # Tests unitarios (opcional)
├── data/ # Tus documentos
├── requirements.txt
├── .env.example
├── Dockerfile # Docker (opcional)
├── docker-compose.yml
├── INSTRUCCIONES.md # Guia completa
├── GUIA_RAPIDA.md # Quick start
└── README.md
La aplicacion presenta un wizard interactivo para configurar tu proyecto RAG:
- Selecciona el nivel de complejidad segun tu experiencia
- Elige el caso de uso para optimizar configuraciones
- Configura cada componente con opciones visuales
- Descarga tu proyecto listo para ejecutar
Incluye una guia completa interactiva con teoria y ejemplos practicos:
- Fundamentos teoricos de RAG
- Embeddings y busqueda semantica
- Estrategias de chunking
- Vector stores en profundidad
- Pipeline RAG completo
- Tecnicas avanzadas de retrieval
- Evaluacion y metricas
- Prompt engineering para RAG
- Despliegue en produccion
- Node.js 18 o superior
- npm o yarn
# Clonar el repositorio
git clone https://github.com/tu-usuario/rag-builder.git
cd rag-builder
# Instalar dependencias
npm install
# Ejecutar en desarrollo
npm run dev
# Abrir en el navegador
open http://localhost:3000npm run build
npm start- Accede a la aplicacion en
http://localhost:3000 - Sigue el wizard paso a paso
- Configura cada componente segun tus necesidades
- Descarga el ZIP con tu proyecto
# Descomprimir y acceder
unzip mi-proyecto-rag.zip
cd mi-proyecto-rag
# Crear entorno virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Instalar dependencias
pip install -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus configuraciones
# Si usas Ollama, descargar modelo
ollama pull llama3.1:8b
# Indexar documentos
cp tus_documentos/*.pdf data/
python -m src.indexer
# Hacer consultas
python -m src.query "Tu pregunta aqui"
# (Opcional) Iniciar API
uvicorn src.api.main:app --reloadLa aplicacion incluye una guia teorica completa en formato Jupyter Notebook que cubre:
- Fundamentos Teoricos - Que es RAG y por que usarlo
- Embeddings - El corazon semantico, modelos y practica
- Chunking - Division inteligente de documentos
- Vector Stores - ChromaDB, FAISS, y otros
- Pipeline RAG - Integracion completa
- Tecnicas Avanzadas - Hibrido, reranking, multi-query
- Evaluacion - Metricas y benchmarks
- Prompt Engineering - Optimizacion de prompts
- Open Source - Herramientas disponibles
- Produccion - Despliegue y escalado
- Web: Navega a
/teoriaen la aplicacion - Notebook: Descarga
guia_completa_rag.ipynbdesde la app
| Tecnologia | Version | Uso |
|---|---|---|
| Next.js | 14 | Framework React con App Router |
| React | 18 | UI Components |
| TypeScript | 5 | Type safety |
| Tailwind CSS | 3 | Estilos utility-first |
| Lucide React | - | Iconos |
| JSZip | - | Generacion de ZIP |
| Tecnologia | Uso |
|---|---|
| Python 3.9+ | Lenguaje base |
| LangChain | Framework RAG |
| FastAPI | API REST |
| Pydantic | Configuracion |
| Pytest | Testing |
| Docker | Contenedores |
rag-builder/
├── src/
│ ├── app/
│ │ ├── layout.tsx # Layout con header/footer
│ │ ├── page.tsx # Pagina principal
│ │ ├── teoria/
│ │ │ └── page.tsx # Pagina de teoria RAG
│ │ └── globals.css # Estilos globales
│ ├── components/
│ │ ├── ConfigWizard.tsx # Wizard principal
│ │ ├── NotebookViewer.tsx # Visor de notebook
│ │ ├── StepIndicator.tsx # Indicador de pasos
│ │ ├── ThemeToggle.tsx # Toggle dark mode
│ │ └── wizard/ # Componentes del wizard
│ │ ├── steps/ # Componentes de cada paso
│ │ ├── hooks/ # Custom hooks
│ │ ├── types.ts # Tipos
│ │ └── constants.ts # Constantes
│ └── lib/
│ ├── types.ts # Tipos globales
│ ├── generator.ts # Generador de ZIP
│ └── templates/ # Templates de codigo
│ ├── base.ts # Requirements, Docker, etc
│ ├── python-code.ts # Codigo Python
│ ├── api-code.ts # API FastAPI
│ └── instructions.ts # Instrucciones
├── public/
│ ├── logoupgradehub.svg # Logo Upgrade Hub
│ ├── 1-CSIC-Logotipo-*.png # Logo CSIC
│ └── guia_completa_rag.ipynb # Notebook de teoria
├── package.json
├── tailwind.config.ts
└── tsconfig.json
Las contribuciones son bienvenidas! Por favor:
- Fork el repositorio
- Crea una rama (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Este proyecto esta bajo la licencia MIT. Ver el archivo LICENSE para mas detalles.
Desarrollado como parte del Programa de Formacion en Inteligencia Artificial:
Upgrade Hub & CSIC - Consejo Superior de Investigaciones Cientificas
Hecho con ❤️ para la comunidad de IA en espanol
