This project allows you to chat with your local documents using generative AI models. It uses a graph-based approach to represent documents and retrieve relevant information efficiently.
- 📊 Persistent Graphs: Processed documents are saved as reusable graphs
- 🔄 Automatic Detection: Automatically detects existing graphs when starting the application
- 📁 Smart Selector: Dropdown to choose from already processed documents
- 🏷️ Tabbed Interface: Clear organization between loading existing graphs and uploading new documents
- 💬 Intelligent Chat: Fluid conversation with your documents using optimized prompts
- 🤖 Multiple LLMs: Support for Ollama (local) and OpenAI (API)
# Create virtual environment
python -m venv venv
# Activate on Windows
.\venv\Scripts\Activate.ps1
# Activate on Linux/Mac
source venv/bin/activatepip install -r requirements.txtFollow the instructions on the Ollama website to install and run Ollama on your local machine. Make sure to download the model you want to use, for example:
ollama pull tinyllama
# or
ollama pull mistralstreamlit run app.pyThe application will open automatically at http://localhost:8501
In the sidebar:
- Choose LLM: Ollama (local) or OpenAI (API)
- Configure model: Model name (e.g.: tinyllama, mistral, gpt-4)
- API Key (OpenAI only): Enter your OpenAI API key
- Upload Document: Use the file uploader to upload your document
- Automatic Processing: The application will create and save a document graph
- Chat Activated: You can start asking questions immediately
-
Tab Selection:
- 📁 Load Existing Graph: To use already processed documents
- 📄 Upload New Document: To process additional documents
-
Load Existing Graph:
- Select a document from the dropdown
- Click "🚀 Load Graph"
- Start chatting immediately!
-
Upload New Document:
- Use the file uploader
- The system will process and save the new graph
- Chat will activate automatically
Once you have a graph loaded:
- Write your question in the text field
- Click "Get Answer"
- Receive intelligent responses based on document content
- Continue the conversation with additional questions
- 📄 TXT - Plain text files
- 📕 PDF - PDF documents
- 📊 CSV - Comma-separated data files
- 📘 DOCX - Microsoft Word documents
- 📈 XLSX - Excel spreadsheets
- 🌐 HTML - Web pages and HTML documents
- ✅ Privacy: Everything runs on your local machine
- ✅ No Costs: Doesn't require API keys or subscriptions
- ✅ Popular Models: tinyllama, mistral, llama2, codellama
- ⚡ Installation: Requires Ollama installation
- 🚀 Advanced Models: GPT-4, GPT-3.5-turbo, GPT-4o
- ⚡ Fast Responses: Cloud processing
- 💳 Requires API Key: Needs OpenAI account
- 💰 Pay per Use: Charged by tokens used
- Graphs are saved as
.graphfiles in the project directory - Format:
document_name.extension.graph - Example:
my_document.pdf.graph
- ⚡ Instant Loading: No need to reprocess documents
- 💾 Resource Saving: Avoids unnecessary computation
- 📚 Document Library: Maintain a collection of processed documents
- 🔄 Reusability: Access any previously processed document
- Frontend: Streamlit with interactive interface
- Processing: LangChain for document handling
- Graphs: NetworkX for knowledge representation
- Embeddings: Ollama Embeddings for semantic search
- Persistence: Pickle for graph storage
- LLMs: Integration with Ollama and OpenAI
# Complete setup from scratch
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
streamlit run app.py
# Just run (if already configured)
.\venv\Scripts\Activate.ps1
streamlit run app.py- 📚 Academic Research: Analyze papers and scientific documents
- 💼 Business Documentation: Consult manuals and procedures
- 📖 Book Analysis: Explore extensive book content
- 📊 Data Analysis: Interpret reports and datasets
- 🗞️ News Summarization: Extract information from articles
- 📋 Legal Documents: Consult contracts and regulations
- 🎯 Specific Questions: Ask concrete questions for better answers
- 🔄 Reuse Graphs: Large documents are processed only once
- 🏷️ Descriptive Names: Use clear names for your files
- 💾 Space Management: .graph files take up disk space
- 🤖 Experiment with Models: Try different models according to your needs
Este proyecto te permite chatear con tus documentos locales usando modelos de inteligencia artificial generativa. Utiliza un enfoque basado en grafos para representar documentos y recuperar información relevante de manera eficiente.
- 📊 Grafos Persistentes: Los documentos procesados se guardan como grafos reutilizables
- 🔄 Detección Automática: Detecta automáticamente grafos existentes al iniciar la aplicación
- 📁 Selector Inteligente: Desplegable para elegir entre documentos ya procesados
- 🏷️ Interfaz por Pestañas: Organización clara entre cargar grafos existentes y subir nuevos documentos
- 💬 Chat Inteligente: Conversación fluida con tus documentos usando prompts optimizados
- 🤖 Múltiples LLMs: Soporte para Ollama (local) y OpenAI (API)
# Crear entorno virtual
python -m venv venv
# Activar en Windows
.\venv\Scripts\Activate.ps1
# Activar en Linux/Mac
source venv/bin/activatepip install -r requirements.txtSigue las instrucciones en el sitio web de Ollama para instalar y ejecutar Ollama en tu máquina local. Asegúrate de descargar el modelo que quieras usar, por ejemplo:
ollama pull tinyllama
# o
ollama pull mistralstreamlit run app.pyLa aplicación se abrirá automáticamente en http://localhost:8501
En la barra lateral:
- Elige el LLM: Ollama (local) o OpenAI (API)
- Configura el modelo: Nombre del modelo (ej: tinyllama, mistral, gpt-4)
- API Key (solo para OpenAI): Ingresa tu clave API de OpenAI
- Subir Documento: Usa el cargador de archivos para subir tu documento
- Procesamiento Automático: La aplicación creará y guardará un grafo del documento
- Chat Activado: Podrás comenzar a hacer preguntas inmediatamente
-
Selección por Pestañas:
- 📁 Cargar Grafo Existente: Para usar documentos ya procesados
- 📄 Subir Nuevo Documento: Para procesar documentos adicionales
-
Cargar Grafo Existente:
- Selecciona un documento del desplegable
- Haz clic en "🚀 Cargar Grafo"
- ¡Comienza a chatear inmediatamente!
-
Subir Nuevo Documento:
- Usa el cargador de archivos
- El sistema procesará y guardará el nuevo grafo
- Se activará automáticamente el chat
Una vez que tengas un grafo cargado:
- Escribe tu pregunta en el campo de texto
- Haz clic en "Obtener Respuesta"
- Recibe respuestas inteligentes basadas en el contenido del documento
- Continúa la conversación con preguntas adicionales
- 📄 TXT - Archivos de texto plano
- 📕 PDF - Documentos PDF
- 📊 CSV - Archivos de datos separados por comas
- 📘 DOCX - Documentos de Microsoft Word
- 📈 XLSX - Hojas de cálculo de Excel
- 🌐 HTML - Páginas web y documentos HTML
- ✅ Privacidad: Todo funciona en tu máquina local
- ✅ Sin Costos: No requiere API keys ni suscripciones
- ✅ Modelos Populares: tinyllama, mistral, llama2, codellama
- ⚡ Instalación: Requiere instalación de Ollama
- 🚀 Modelos Avanzados: GPT-4, GPT-3.5-turbo, GPT-4o
- ⚡ Respuestas Rápidas: Procesamiento en la nube
- 💳 Requiere API Key: Necesita cuenta de OpenAI
- 💰 Costo por Uso: Se cobra por tokens utilizados
- Los grafos se guardan como archivos
.graphen el directorio del proyecto - Formato:
nombre_documento.extension.graph - Ejemplo:
mi_documento.pdf.graph
- ⚡ Carga Instantánea: No necesitas reprocesar documentos
- 💾 Ahorro de Recursos: Evita computación innecesaria
- 📚 Biblioteca de Documentos: Mantén una colección de documentos procesados
- 🔄 Reutilización: Accede a cualquier documento procesado anteriormente
- Frontend: Streamlit con interfaz interactiva
- Procesamiento: LangChain para manejo de documentos
- Grafos: NetworkX para representación de conocimiento
- Embeddings: Ollama Embeddings para búsqueda semántica
- Persistencia: Pickle para almacenamiento de grafos
- LLMs: Integración con Ollama y OpenAI
# Configuración completa desde cero
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
streamlit run app.py
# Solo ejecutar (si ya está configurado)
.\venv\Scripts\Activate.ps1
streamlit run app.py- 📚 Investigación Académica: Analizar papers y documentos científicos
- 💼 Documentación Empresarial: Consultar manuales y procedimientos
- 📖 Análisis de Libros: Explorar contenido de libros extensos
- 📊 Análisis de Datos: Interpretar reportes y datasets
- 🗞️ Resumen de Noticias: Extraer información de artículos
- 📋 Documentos Legales: Consultar contratos y regulaciones
- 🎯 Preguntas Específicas: Haz preguntas concretas para mejores respuestas
- 🔄 Reutiliza Grafos: Los documentos grandes se procesan una sola vez
- 🏷️ Nombres Descriptivos: Usa nombres claros para tus archivos
- 💾 Gestión de Espacio: Los archivos .graph ocupan espacio en disco
- 🤖 Experimenta con Modelos: Prueba diferentes modelos según tus necesidades
¡Disfruta chateando con tus documentos de manera inteligente! 🎉 | Enjoy chatting with your documents intelligently! 🎉