Spaces:
Running
Running
| # 🚀 Fast Embeddings Setup Guide | |
| ## Problem | |
| Local Ollama embeddings are VERY slow (30+ minutes for 2,861 chunks). | |
| ## Solution | |
| Use Google's Gemini API for embeddings - **FREE and 100x faster!** | |
| --- | |
| ## Quick Setup (5 minutes) | |
| ### 1. Get Free Google API Key | |
| 1. Visit: https://aistudio.google.com/app/apikey | |
| 2. Click "Create API Key" | |
| 3. Copy the key | |
| ### 2. Add to `.env` file | |
| ```bash | |
| GOOGLE_API_KEY="your_actual_key_here" | |
| ``` | |
| ### 3. Run PDF Processor | |
| ```powershell | |
| python src/pdf_processor.py | |
| ``` | |
| Choose option `1` (Google Gemini) when prompted. | |
| --- | |
| ## Speed Comparison | |
| | Method | Time | Cost | | |
| |--------|------|------| | |
| | **Google Gemini** | ~2-3 minutes | FREE | | |
| | Local Ollama | 30+ minutes | FREE | | |
| --- | |
| ## Fallback Options | |
| ### Option 1: No API Key | |
| If `GOOGLE_API_KEY` is not set, system automatically falls back to local Ollama. | |
| ### Option 2: Manual Selection | |
| When running `python src/pdf_processor.py`, choose: | |
| - Option `1`: Google Gemini (fast) | |
| - Option `2`: Local Ollama (slow) | |
| --- | |
| ## Technical Details | |
| **Google Embeddings:** | |
| - Model: `models/embedding-001` | |
| - Dimensions: 768 | |
| - Rate Limit: 1500 requests/minute (more than enough) | |
| - Cost: FREE for standard usage | |
| **Local Ollama:** | |
| - Model: `nomic-embed-text` | |
| - Dimensions: 768 | |
| - Speed: ~1 chunk/second | |
| - Cost: FREE, runs offline | |
| --- | |
| ## Usage in Code | |
| ```python | |
| from src.pdf_processor import get_embedding_model | |
| # Use Google (recommended) | |
| embeddings = get_embedding_model(provider="google") | |
| # Use Ollama (backup) | |
| embeddings = get_embedding_model(provider="ollama") | |
| # Auto-detect with fallback | |
| embeddings = get_embedding_model() # defaults to Google | |
| ``` | |
| --- | |
| ## Already Built Vector Store? | |
| If you already created the vector store with Ollama, you don't need to rebuild it! | |
| To rebuild with faster embeddings: | |
| ```python | |
| from src.pdf_processor import setup_knowledge_base, get_embedding_model | |
| embeddings = get_embedding_model(provider="google") | |
| retrievers = setup_knowledge_base(embeddings, force_rebuild=True) | |
| ``` | |
| --- | |
| ## Troubleshooting | |
| ### "GOOGLE_API_KEY not found" | |
| - Check `.env` file exists in project root | |
| - Verify key is set: `GOOGLE_API_KEY="AIza..."` | |
| - Restart terminal/IDE after adding key | |
| ### "Google embeddings failed" | |
| - Check internet connection | |
| - Verify API key is valid | |
| - System will auto-fallback to Ollama | |
| ### Ollama still slow? | |
| - Embeddings are one-time setup | |
| - Once built, retrieval is instant | |
| - Consider using Google for initial build | |
| --- | |
| ## Security Note | |
| ⚠️ **Never commit `.env` file to Git!** | |
| Your `.gitignore` should include: | |
| ``` | |
| .env | |
| *.faiss | |
| *.pkl | |
| ``` | |
| --- | |
| *Need help? The system has automatic fallback - it will always work!* | |