Skip to content

Commit d1e81ba

Browse files
committed
docs: update README with complete project documentation
1 parent b48f343 commit d1e81ba

File tree

1 file changed

+203
-0
lines changed

1 file changed

+203
-0
lines changed

README.md

+203
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
2+
# DocumentMentor 📚
3+
4+
DocumentMentor 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.
5+
6+
## Tecnologías Principales 🛠️
7+
8+
- **LangChain**: Framework principal para la construcción del sistema RAG
9+
- Integración con OpenAI GPT-3.5
10+
- Cadenas de procesamiento personalizadas
11+
- Gestión de memoria conversacional
12+
- Prompts optimizados
13+
14+
- **OpenAI API**:
15+
- Modelo GPT-3.5-turbo para generación de respuestas
16+
- Fine-tuning de prompts para contexto técnico
17+
- Respuestas en español natural
18+
19+
- **RAG (Retrieval Augmented Generation)**:
20+
- Embeddings locales con Sentence Transformers
21+
- Búsqueda semántica mediante FAISS
22+
- Recuperación contextual inteligente
23+
- Aumentación de conocimiento del LLM
24+
25+
## Estructura del Proyecto 📁
26+
27+
```
28+
documentmentor/
29+
├── data/ # Datos y almacenamiento
30+
│ ├── processed/ # Documentos procesados
31+
│ ├── vector_store/ # Almacenamiento vectorial
32+
│ │ ├── document_map.json # Mapeo de documentos
33+
│ │ └── faiss.index # Índice FAISS
34+
│ └── documentmentor.db # Base de datos SQLite
35+
36+
├── src/ # Código fuente
37+
│ ├── core/ # Lógica principal
38+
│ │ ├── __init__.py
39+
│ │ ├── document_processor.py # Procesamiento de PDFs
40+
│ │ ├── memory_manager.py # Gestión de memoria
41+
│ │ └── qa_engine.py # Motor de Q&A
42+
│ │
43+
│ ├── data/ # Capa de datos
44+
│ │ ├── __init__.py
45+
│ │ ├── database.py # Operaciones SQLite
46+
│ │ └── vector_store.py # Gestión vectorial
47+
│ │
48+
│ └── ui/ # Interfaz de usuario
49+
│ └── app.py # Aplicación Streamlit
50+
51+
├── .env # Variables de entorno
52+
├── .env.example # Ejemplo de configuración
53+
├── .gitignore
54+
├── main.py # Punto de entrada
55+
├── README.md
56+
└── requirements.txt # Dependencias
57+
```
58+
59+
## Funcionamiento 🔄
60+
61+
### Procesamiento de Documentos 📄
62+
1. **Carga de PDFs**:
63+
- Sube tus documentos técnicos en formato PDF
64+
- El sistema procesa automáticamente cada documento
65+
- Se extraen y segmentan los textos en chunks optimizados
66+
67+
2. **Indexación**:
68+
- Cada segmento se convierte en embeddings
69+
- Se almacenan en la base de datos vectorial FAISS
70+
- Se preservan los metadatos y referencias
71+
72+
### Flujo de Consultas 💭
73+
1. **Preguntas del Usuario**:
74+
- Escribe tu pregunta en el chat
75+
- El sistema analiza la consulta
76+
- Se genera un embedding de la pregunta
77+
78+
2. **Búsqueda Semántica**:
79+
- Se buscan los segmentos más relevantes
80+
- Se utiliza FAISS para búsqueda eficiente
81+
- Se recupera el contexto más apropiado
82+
83+
3. **Generación de Respuestas**:
84+
- GPT-3.5 recibe el contexto relevante
85+
- Se genera una respuesta precisa
86+
- Se mantiene el contexto de la conversación
87+
88+
### Ejemplo de Uso 📝
89+
1. **Preparación**:
90+
- Sube un manual técnico en PDF
91+
- Espera la confirmación de procesamiento
92+
- El documento está listo para consultas
93+
94+
2. **Consultas**:
95+
- Pregunta: "¿Qué requisitos tiene la instalación?"
96+
- El sistema busca secciones relevantes
97+
- Responde con información específica del documento
98+
99+
3. **Seguimiento**:
100+
- Puedes hacer preguntas de seguimiento
101+
- El sistema mantiene el contexto
102+
- Las respuestas son coherentes y relacionadas
103+
104+
### Ventajas 🌟
105+
- Procesamiento local de documentos
106+
- Respuestas basadas en tu documentación
107+
- Contexto conversacional mantenido
108+
- Búsqueda semántica precisa
109+
- Interfaz intuitiva
110+
111+
## Requisitos 📋
112+
113+
```python
114+
# Core LangChain dependencies
115+
langchain==0.3.12
116+
langchain-core==0.3.25
117+
langchain-community==0.3.12
118+
langchain-openai==0.2.12
119+
openai==1.57.4
120+
121+
# Document Processing
122+
pypdf==5.1.0
123+
python-dotenv==1.0.1
124+
125+
# Vector Store & Embeddings
126+
sentence-transformers==3.3.1
127+
faiss-cpu==1.9.0.post1
128+
129+
# Database
130+
SQLAlchemy==2.0.36
131+
132+
# UI Framework
133+
streamlit==1.41.1
134+
135+
# Utils
136+
numpy==2.2.0
137+
pandas==2.2.3
138+
pydantic==2.10.3
139+
```
140+
141+
## Instalación 🔧
142+
143+
1. Clonar el repositorio
144+
```bash
145+
git clone https://github.com/tuusuario/documentmentor.git
146+
```
147+
148+
2. Crear entorno virtual
149+
```bash
150+
python -m venv venv
151+
```
152+
153+
3. Activar entorno virtual
154+
```bash
155+
# Windows
156+
venv\Scriptsctivate
157+
# Linux/Mac
158+
source venv/bin/activate
159+
```
160+
161+
4. Instalar dependencias
162+
```bash
163+
pip install -r requirements.txt
164+
```
165+
166+
5. Configurar variables de entorno
167+
```bash
168+
# Copiar el archivo de ejemplo
169+
cp .env.example .env
170+
171+
# Editar el archivo .env usando .env.example como referencia
172+
# y añadir tu API key de OpenAI
173+
OPENAI_API_KEY=tu_api_key
174+
```
175+
176+
## Uso 💡
177+
178+
1. Iniciar la aplicación
179+
```bash
180+
python main.py
181+
```
182+
183+
El script `main.py` realiza las siguientes tareas:
184+
- Carga variables de entorno desde `.env`
185+
- Verifica la presencia de `OPENAI_API_KEY`
186+
- Inicializa las carpetas necesarias:
187+
- `data/processed/` para documentos procesados
188+
- `data/vector_store/` para índices vectoriales
189+
- Lanza la interfaz Streamlit
190+
191+
## Estado Actual 📊
192+
- ✅ Procesamiento de documentos
193+
- ✅ Sistema de embeddings local
194+
- ✅ Búsqueda semántica
195+
- ✅ Interfaz de usuario
196+
- ✅ Gestión de memoria
197+
- ✅ Persistencia de datos
198+
199+
## Notas Importantes ⚠️
200+
- Requiere conexión a Internet para GPT-3.5
201+
- Los documentos se procesan localmente
202+
- Mantener actualizado el entorno virtual
203+
- Revisar logs para diagnóstico

0 commit comments

Comments
 (0)