{"id":23388261,"url":"https://github.com/jaolmos/documentmentor-rag","last_synced_at":"2026-04-11T19:04:09.006Z","repository":{"id":269199982,"uuid":"906704522","full_name":"Jaolmos/documentmentor-rag","owner":"Jaolmos","description":"Sistema RAG (Retrieval Augmented Generation) para asistencia de documentación técnica en español utilizando LangChain, OpenAI Y Streamlit para la interfaz visual","archived":false,"fork":false,"pushed_at":"2024-12-21T18:23:51.000Z","size":152,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-10T16:46:34.505Z","etag":null,"topics":["chatbot","document-qa","faiss","langchain","openai","pdf-proccessing","python","rag","streamlit","vector-database"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jaolmos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-21T16:57:13.000Z","updated_at":"2025-02-22T18:25:55.000Z","dependencies_parsed_at":"2024-12-28T20:50:48.226Z","dependency_job_id":null,"html_url":"https://github.com/Jaolmos/documentmentor-rag","commit_stats":null,"previous_names":["jaolmos/documentmentor-rag"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jaolmos/documentmentor-rag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jaolmos%2Fdocumentmentor-rag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jaolmos%2Fdocumentmentor-rag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jaolmos%2Fdocumentmentor-rag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jaolmos%2Fdocumentmentor-rag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jaolmos","download_url":"https://codeload.github.com/Jaolmos/documentmentor-rag/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jaolmos%2Fdocumentmentor-rag/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270323579,"owners_count":24564684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatbot","document-qa","faiss","langchain","openai","pdf-proccessing","python","rag","streamlit","vector-database"],"created_at":"2024-12-22T02:18:22.386Z","updated_at":"2025-12-30T21:46:00.019Z","avatar_url":"https://github.com/Jaolmos.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DocumentMentor 📚\n\n![DocumentMentor Interface](./images/screenshot.png)\n\nDocumentMentor es un sistema RAG (Retrieval Augmented Generation) que actúa como asistente de documentación técnica. Utilizando la arquitectura RAG, el sistema combina la potencia de GPT-3.5 de OpenAI con una base de conocimiento local para proporcionar respuestas precisas y contextualizadas sobre documentos técnicos en español.\n\n## Tecnologías Principales 🛠️\n\n- **Python 3.10+**: Lenguaje base del proyecto\n  - Soporte para características modernas\n  - Gestión eficiente de dependencias\n  - Compatibilidad con frameworks de IA\n    - LangChain\n    - Sentence Transformers\n    - FAISS\n\n- **LangChain**: Framework principal para la construcción del sistema RAG\n  - Integración con OpenAI GPT-3.5\n  - Cadenas de procesamiento personalizadas\n  - Gestión de memoria conversacional\n  - Prompts optimizados\n\n- **OpenAI API**: \n  - Modelo GPT-3.5-turbo para generación de respuestas\n  - Fine-tuning de prompts para contexto técnico\n  - Respuestas en español natural\n\n- **RAG (Retrieval Augmented Generation)**:\n  - Embeddings locales con Sentence Transformers\n  - Búsqueda semántica mediante FAISS\n  - Recuperación contextual inteligente\n  - Enriquecimiento del conocimiento del LLM\n\n## Interface de Usuario con Streamlit 🖥️\n\nDocumentMentor utiliza Streamlit como framework para la interface de usuario, proporcionando:\n\n### Características de la UI\n- **Chat Interactivo**: \n  - Interfaz conversacional fluida\n  - Historial de mensajes persistente\n  - Entrada de texto intuitiva\n\n- **Gestión de Documentos**:\n  - Carga de PDFs mediante drag \u0026 drop\n  - Visualización de documentos procesados\n  - Estado de procesamiento en tiempo real\n\n- **Panel de Control**:\n  - Sidebar para configuración\n  - Indicadores de estado del sistema\n  - Opciones de personalización\n\n### Ventajas de Streamlit\n- Desarrollo rápido y eficiente\n- Actualización en tiempo real\n- Integración perfecta con Python\n- Despliegue sencillo\n\n## Estructura del Proyecto 📁\n\n```\ndocumentmentor/\n├── data/                          # Datos y almacenamiento\n│   ├── processed/                 # Documentos procesados\n│   ├── vector_store/             # Almacenamiento vectorial\n│   │   ├── document_map.json     # Mapeo de documentos\n│   │   └── faiss.index          # Índice FAISS\n│   └── documentmentor.db         # Base de datos SQLite\n│\n├── src/                          # Código fuente\n│   ├── core/                     # Lógica principal\n│   │   ├── __init__.py\n│   │   ├── document_processor.py # Procesamiento de PDFs\n│   │   ├── memory_manager.py     # Gestión de memoria\n│   │   └── qa_engine.py         # Motor de Q\u0026A\n│   │\n│   ├── data/                     # Capa de datos\n│   │   ├── __init__.py\n│   │   ├── database.py          # Operaciones SQLite\n│   │   └── vector_store.py      # Gestión vectorial\n│   │\n│   └── ui/                       # Interfaz de usuario\n│       └── app.py               # Aplicación Streamlit\n│\n├── .env                         # Variables de entorno\n├── .env.example                 # Ejemplo de configuración\n├── .gitignore\n├── main.py                      # Punto de entrada\n├── README.md\n└── requirements.txt             # Dependencias\n```\n\n## Funcionamiento 🔄\n\n### Procesamiento de Documentos 📄\n1. **Carga de PDFs**:\n   - Sube tus documentos técnicos en formato PDF\n   - El sistema procesa automáticamente cada documento\n   - Se extraen y segmentan los textos en chunks optimizados\n\n2. **Indexación**:\n   - Cada segmento se convierte en embeddings\n   - Se almacenan en la base de datos vectorial FAISS\n   - Se preservan los metadatos y referencias\n\n### Flujo de Consultas 💭\n1. **Preguntas del Usuario**:\n   - Escribe tu pregunta en el chat\n   - El sistema analiza la consulta\n   - Se genera un embedding de la pregunta\n\n2. **Búsqueda Semántica**:\n   - Se buscan los segmentos más relevantes\n   - Se utiliza FAISS para búsqueda eficiente\n   - Se recupera el contexto más apropiado\n\n3. **Generación de Respuestas**:\n   - GPT-3.5 recibe el contexto relevante\n   - Se genera una respuesta precisa\n   - Se mantiene el contexto de la conversación\n\n### Ejemplo de Uso 📝\n1. **Preparación**:\n   - Sube un manual técnico en PDF\n   - Espera la confirmación de procesamiento\n   - El documento está listo para consultas\n\n2. **Consultas**:\n   - Pregunta: \"¿Qué requisitos tiene la instalación?\"\n   - El sistema busca secciones relevantes\n   - Responde con información específica del documento\n\n3. **Seguimiento**:\n   - Puedes hacer preguntas de seguimiento\n   - El sistema mantiene el contexto\n   - Las respuestas son coherentes y relacionadas\n\n### Ventajas 🌟\n- Procesamiento local de documentos\n- Respuestas basadas en tu documentación\n- Contexto conversacional mantenido\n- Búsqueda semántica precisa\n- Interfaz intuitiva\n\n## Requisitos 📋\n\n```python\n# Core LangChain dependencies\nlangchain==0.3.12\nlangchain-core==0.3.25\nlangchain-community==0.3.12\nlangchain-openai==0.2.12\nopenai==1.57.4\n\n# Document Processing\npypdf==5.1.0\npython-dotenv==1.0.1\n\n# Vector Store \u0026 Embeddings\nsentence-transformers==3.3.1\nfaiss-cpu==1.9.0.post1\ntorch==2.5.1\ntorchvision==0.20.1\ntorchaudio==2.5.1\n\n# Database\nSQLAlchemy==2.0.36\n\n# UI Framework\nstreamlit==1.41.1\n\n# Utils\nnumpy==2.2.0\npandas==2.2.3\npydantic==2.10.3\n```\n\n## Instalación 🔧\n\n1. Clonar el repositorio\n```bash\ngit clone https://github.com/Jaolmos/documentmentor-rag.git\n```\n\n2. Crear entorno virtual\n```bash\npython -m venv venv\n```\n\n3. Activar entorno virtual\n```bash\n# Windows\nvenv\\Scripts\\activate\n# Linux/Mac\nsource venv/bin/activate\n```\n\n4. Instalar dependencias\n```bash\npip install -r requirements.txt\n```\n\n5. Configurar variables de entorno\n```bash\n# Copiar el archivo de ejemplo\ncp .env.example .env\n\n# Editar el archivo .env usando .env.example como referencia\n# y añadir tu API key de OpenAI\nOPENAI_API_KEY=tu_api_key\n```\n\n## Uso 💡\n\n1. Iniciar la aplicación\n```bash\npython main.py\n```\n\nEl script `main.py` realiza las siguientes tareas:\n- Carga variables de entorno desde `.env`\n- Verifica la presencia de `OPENAI_API_KEY`\n- Inicializa las carpetas necesarias:\n  - `data/processed/` para documentos procesados\n  - `data/vector_store/` para índices vectoriales\n- Lanza la interfaz Streamlit\n\n## Estado Actual 📊\n- ✅ Procesamiento de documentos\n- ✅ Sistema de embeddings local\n- ✅ Búsqueda semántica\n- ✅ Interfaz de usuario\n- ✅ Gestión de memoria\n- ✅ Persistencia de datos\n\n## Notas Importantes ⚠️\n- Requiere conexión a Internet para GPT-3.5\n- Los documentos se procesan localmente\n- Mantener actualizado el entorno virtual\n- Revisar logs para diagnóstico\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaolmos%2Fdocumentmentor-rag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaolmos%2Fdocumentmentor-rag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaolmos%2Fdocumentmentor-rag/lists"}