feat: migrate embeddings from Gunicorn to the-shit/vector EmbeddingClient#147
Conversation
Replace the custom Python/Gunicorn embedding service with the-shit/vector v0.2.0's EmbeddingClient contract. Embeddings are now provider-agnostic (Ollama, OpenAI, or none) via config. - Bump the-shit/vector to ^0.2 (adds EmbeddingClient contract) - Replace EmbeddingServiceInterface with EmbeddingClient throughout - Rename generate() → embed() in all services and tests - Delete app/Services/EmbeddingService.php, StubEmbeddingService.php, app/Contracts/EmbeddingServiceInterface.php - Delete docker/embedding-server/ (Dockerfile + server.py) - Remove embedding-server from both docker-compose files - Extend loadUserConfig() to map embeddings.provider/model/url/api_key to vector.embeddings.* config Closes #146
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (19)
📝 WalkthroughWalkthroughThe pull request migrates the embedding service abstraction from a custom Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 PHPStan (2.1.46)PHPStan was skipped because the config uses disallowed Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📊 Coverage Report
Files Below Threshold
🏆 Synapse Sentinel Gate |
🏆 Sentinel Certified✅ Tests & Coverage: 0 tests passed Add this badge to your README: [](https://github.com/conduit-ui/knowledge/actions/workflows/gate.yml) |
Summary
the-shit/vectorto^0.2which providesEmbeddingClientcontract with Ollama and OpenAI providersEmbeddingServiceInterface→EmbeddingClientandgenerate()→embed()across all servicesapp/Services/EmbeddingService.php,StubEmbeddingService.php,app/Contracts/EmbeddingServiceInterface.phpdocker/embedding-server/(Python Gunicorn service) and remove from both docker-compose filesloadUserConfig()to mapembeddings.provider/model/url/api_keytovector.embeddings.*Test plan
know searchworks with Ollama embeddings against live Qdrantknowledge-embeddingsDocker container on OdinCloses #146
Summary by CodeRabbit