# 🚨 Embedding Troubleshooting Quick Start ## Common Error Messages & Instant Fixes ### ⚠️ "shapes (768,) and (384,) not aligned" **What it means:** Your query embeddings (768D) don't match stored embeddings (384D) **Instant fix:** ```bash # Open .env file and change: EMBEDDING_PROVIDER=huggingface HUGGINGFACE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 # Restart your application ``` ### ⚠️ "shapes (384,) and (768,) not aligned" **What it means:** Your query embeddings (384D) don't match stored embeddings (768D) **Instant fix:** ```bash # Open .env file and change: EMBEDDING_PROVIDER=ollama OLLAMA_EMBEDDING_MODEL=nomic-embed-text:v1.5 # Make sure Ollama is running: ollama serve # Pull the model: ollama pull nomic-embed-text:v1.5 # Restart your application ``` ### ⚠️ "shapes (1536,) and (384,) not aligned" **What it means:** Your query embeddings (1536D) don't match stored embeddings (384D) **Instant fix:** ```bash # Open .env file and change: EMBEDDING_PROVIDER=huggingface HUGGINGFACE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 # Restart your application ``` ## 🔧 5-Minute Fix Guide ### Step 1: Identify Your Error (30 seconds) Look at your error message and find the dimension numbers: - `shapes (X,) and (Y,)` → X = query dimensions, Y = stored dimensions ### Step 2: Choose Matching Model (1 minute) | Stored Dimensions (Y) | Set in .env | |---------------------|-------------| | 384 | `EMBEDDING_PROVIDER=huggingface`
`HUGGINGFACE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2` | | 768 | `EMBEDDING_PROVIDER=ollama`
`OLLAMA_EMBEDDING_MODEL=nomic-embed-text:v1.5` | | 1024 | `EMBEDDING_PROVIDER=ollama`
`OLLAMA_EMBEDDING_MODEL=mxbai-embed-large` | | 1536 | `EMBEDDING_PROVIDER=openai`
`OPENAI_EMBEDDING_MODEL=text-embedding-3-small` | ### Step 3: Update Configuration (2 minutes) ```bash # Edit your .env file nano .env # or use your preferred editor # Find the EMBEDDING_PROVIDER lines and update them # Save the file ``` ### Step 4: Restart Application (1 minute) ```bash # Kill current process (Ctrl+C) # Restart uvicorn app:app --reload ``` ### Step 5: Test (30 seconds) ```bash # Test with a simple query curl -X POST "http://localhost:8080/chat" \ -H "Content-Type: application/json" \ -d '{"message": "chicken recipe"}' ``` ## 🔍 Alternative: Start Fresh If you prefer to use a different embedding model permanently: ### Option A: Regenerate Database (5 minutes) ```bash # 1. Choose your preferred model in .env EMBEDDING_PROVIDER=ollama OLLAMA_EMBEDDING_MODEL=nomic-embed-text:v1.5 # 2. Enable database refresh DB_REFRESH_ON_START=true # 3. Restart application (this will rebuild everything) uvicorn app:app --reload # 4. IMPORTANT: Disable refresh after startup DB_REFRESH_ON_START=false ``` ### Option B: Switch Vector Store (2 minutes) ```bash # Switch to ChromaDB (will create fresh database) VECTOR_STORE_PROVIDER=chromadb # Restart application uvicorn app:app --reload ``` ## ⚡ Prevention Tips ### Document Your Choice Add a comment to your .env file: ```bash # Created 2025-08-27 with all-MiniLM-L6-v2 (384 dimensions) EMBEDDING_PROVIDER=huggingface HUGGINGFACE_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 ``` ### Consistent Development If working in a team, ensure everyone uses the same configuration: ```bash # Share this in your team chat: # "Use EMBEDDING_PROVIDER=huggingface with all-MiniLM-L6-v2" ``` --- **Still stuck?** Check the full [Embedding Compatibility Guide](./embedding-compatibility-guide.md) for detailed explanations.