Convierte cualquier PDF en un asistente conversacional inteligente
Utiliza RAG (Retrieval-Augmented Generation) con Mistral AI para responder preguntas basándose únicamente en el contenido de tus documentos
PaperWhisper es una aplicación open-source que transforma PDFs en asistentes conversacionales. Sube cualquier documento (papers académicos, libros, reportes) y hazle preguntas en lenguaje natural.
- 🚀 Deploy en 1 click: Listo para usar en Streamlit Cloud
- 🔒 100% Local: Índices FAISS almacenados localmente
- 🤖 Mistral AI: Respuestas precisas con modelos de última generación
- 🎨 UI Moderna: Interfaz intuitiva con Streamlit
- 📊 Sin Límites: Sin cuotas de documentos o preguntas
- 🔍 Búsqueda Semántica: Encuentra información relevante automáticamente
Pruébalo aquí: paperwhisper.streamlit.app
💡 Nota: La primera carga puede tomar unos segundos (descarga del modelo de embeddings)
graph LR
A[📄 PDF] --> B[✂️ Chunking]
B --> C[🧬 Embeddings]
C --> D[📚 FAISS Index]
D --> E[🔍 Búsqueda]
E --> F[🤖 Mistral AI]
F --> G[✅ Respuesta]
- Sube un PDF → El documento se procesa automáticamente
- Chunking inteligente → División en fragmentos semánticamente coherentes
- Embeddings → Generación de vectores con HuggingFace (sentence-transformers)
- Indexado FAISS → Almacenamiento local para búsquedas rápidas
- Pregunta en lenguaje natural → El sistema encuentra los fragmentos relevantes
- Respuesta con IA → Mistral AI genera respuestas basadas en el contexto
| Componente | Tecnología |
|---|---|
| LLM | Mistral AI (mistral-small/medium/large) |
| Embeddings | HuggingFace Sentence Transformers |
| Vector Store | FAISS (local, persistente) |
| Framework | LangChain |
| Backend | Python 3.8+ |
| Frontend | Streamlit |
| PDF Processing | PyPDF |
git clone https://github.com/antuansabe/PaperWhisper.git
cd PaperWhisper
./setup.sh
source .venv/bin/activate
streamlit run app.py# Clonar repositorio
git clone https://github.com/antuansabe/PaperWhisper.git
cd PaperWhisper
# Crear entorno virtual
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txt
# Configurar variables de entorno
cp .env.example .env
# Edita .env y agrega tu MISTRAL_API_KEY
# Ejecutar aplicación
streamlit run app.pyCrea un archivo .env con:
# API Key de Mistral AI (obtén una gratis en https://console.mistral.ai/)
MISTRAL_API_KEY=your_key_here
# Modelo de embeddings (default recomendado)
EMBEDDINGS_MODEL=sentence-transformers/all-MiniLM-L6-v2
# Directorio para datos
DATA_DIR=./data- Ve a console.mistral.ai
- Crea una cuenta (gratis)
- Genera una API key
- Cópiala en tu
.env
- Sube un PDF → Arrastra o selecciona desde tu computadora
- Espera el procesamiento → Toma 5-10 segundos
- Haz preguntas → Escribe en lenguaje natural
- Revisa resultados → Ve los fragmentos relevantes y la respuesta generada
- Modelo de Mistral: Selecciona entre small/medium/large
- Top-K Chunks: Ajusta cuántos fragmentos recuperar (3-5 recomendado)
- Limpiar Índice: Reconstruye el índice FAISS
PaperWhisper/
├── app.py # Aplicación Streamlit principal
├── src/
│ └── rag_engine.py # Motor RAG (8 funciones modulares)
├── requirements.txt # Dependencias Python
├── .env.example # Template de variables de entorno
├── setup.sh # Script de instalación
├── test_rag_engine.py # Suite de pruebas
├── QUICKSTART.md # Guía de inicio rápido
├── IMPLEMENTATION.md # Detalles técnicos
└── CLAUDE.md # Documentación de arquitectura
Ejecuta la suite de pruebas:
python test_rag_engine.pyDeberías ver:
✅ PASS - Imports
✅ PASS - Embeddings
✅ PASS - Text Splitting
✅ PASS - FAISS Index
✅ PASS - Mistral Connection
🎯 Resultado: 5/5 pruebas exitosas
Ya tienes el código en GitHub ✅
- Ve a share.streamlit.io
- Login con GitHub
- Click "New app"
- Configuración:
- Repository:
antuansabe/PaperWhisper - Branch:
main - Main file:
app.py
- Repository:
En "Advanced settings" > "Secrets", agrega:
MISTRAL_API_KEY = "tu_api_key_aqui"
EMBEDDINGS_MODEL = "sentence-transformers/all-MiniLM-L6-v2"
DATA_DIR = "./data"Tu app estará live en: https://paperwhisper.streamlit.app
- 📚 Investigación académica: Analiza papers y obtén resúmenes
- 📄 Documentos legales: Consulta contratos y políticas
- 📖 Libros técnicos: Encuentra información específica rápidamente
- 📊 Reportes corporativos: Extrae insights de documentos extensos
- 🎓 Estudio: Haz preguntas sobre tus materiales de clase
- Implementación RAG básica
- Integración Mistral AI
- Deploy en Streamlit Cloud
- Soporte para múltiples PDFs
- Historial de conversaciones
- Exportar respuestas (PDF/Markdown)
- Búsqueda híbrida (keyword + semántica)
- Soporte para otros formatos (DOCX, TXT)
- API REST
¡Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una branch (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la branch (
git push origin feature/AmazingFeature) - Abre un Pull Request
Distribuido bajo la Licencia MIT. Ver LICENSE para más información.
Antonio Dromundo
- GitHub: @antuansabe
- LinkedIn: Antonio Dromundo
- Streamlit - Framework de UI
- LangChain - Orquestación RAG
- Mistral AI - Modelos de lenguaje
- FAISS - Búsqueda vectorial
- HuggingFace - Modelos de embeddings
⭐ Si este proyecto te fue útil, considera darle una estrella!
Made with ❤️ and ☕ by Antonio Sabe