Spaces:
Sleeping
Sleeping
# 🤖 PDF AI Assistant | |
A multilingual PDF processing application that leverages various AI models to analyze, summarize, and interact with PDF documents. Built with Python, Gradio, and LangChain. | |
## 🌟 Features | |
- **Multiple AI Models Support**: | |
- OpenAI GPT-4 | |
- IBM Granite 3.1 | |
- Mistral Small 24B | |
- SmolLM2 1.7B | |
- Local Ollama models | |
- **Multilingual Interface**: | |
- English | |
- Español | |
- Deutsch | |
- Français | |
- Português | |
- **Core Functionalities**: | |
- 📝 Text extraction from PDFs | |
- 💬 Interactive Q&A with document content | |
- 📋 Document summarization | |
- 👨💼 Customizable specialist advisor | |
- 🔄 Dynamic chunk size and overlap settings | |
## 🛠️ Installation | |
1. Clone the repository: | |
```bash | |
git clone <repository-url> | |
cd pdf-ai-assistant | |
``` | |
2. Install required dependencies: | |
```bash | |
pip install -r requirements.txt | |
``` | |
3. Set up environment variables: | |
```bash | |
# Create .env file | |
touch .env | |
# Add your API keys (if using) | |
WATSONX_APIKEY=your_watsonx_api_key | |
WATSONX_PROJECT_ID=your_watsonx_project_id | |
``` | |
## 📦 Dependencies | |
- gradio | |
- langchain | |
- chromadb | |
- PyPDF2 | |
- ollama (for local models) | |
- python-dotenv | |
- requests | |
- ibm-watsonx-ai | |
## 🚀 Usage | |
1. Start the application: | |
```bash | |
python app.py | |
``` | |
2. Open your web browser and navigate to the provided URL (usually http://localhost:7860) | |
3. Select your preferred: | |
- Language | |
- AI Model | |
- Model Type (Local/API) | |
4. Upload a PDF file and process it | |
5. Use any of the three main features: | |
- Ask questions about the document | |
- Generate a comprehensive summary | |
- Get specialized analysis using the custom advisor | |
## 💡 Features in Detail | |
### Q&A System | |
- Interactive chat interface | |
- Context-aware responses | |
- Source page references | |
### Summarization | |
- Chunk-based processing | |
- Configurable chunk sizes | |
- Comprehensive document overview | |
### Specialist Advisor | |
- Customizable expert roles | |
- Detailed analysis based on expertise | |
- Structured insights and recommendations | |
## 🔧 Configuration | |
The application supports various AI models: | |
- Local models via Ollama | |
- API-based models (OpenAI, IBM WatsonX) | |
- Hugging Face models | |
For Ollama local models, ensure: | |
```bash | |
ollama pull granite3.1-dense | |
ollama pull granite-embedding:278m | |
``` | |
## 🌐 Language Support | |
The interface and AI responses are available in: | |
- English | |
- Spanish | |
- German | |
- French | |
- Portuguese | |
## 📝 License | |
[MIT License] | |
## 🤝 Contributing | |
Contributions, issues, and feature requests are welcome! | |