Repository navigation
Conversation
|
I was about to do the same PR as this is clearly needed for local development with tools like LM Studio or Ollama. This can potentially boost adoption as |
|
Hope this gets merged soon! Please review @generall @kacperlukawski |
This commit consolidates changes from PRs qdrant#92, qdrant#75, qdrant#77, qdrant#90, qdrant#20, qdrant#89, qdrant#78, qdrant#76, and qdrant#68: Infrastructure & Configuration (PR qdrant#75, qdrant#77): - Upgrade Dockerfile to Python 3.13-slim - Use UV 0.8.3 from official image - Add FASTMCP_HOST="0.0.0.0" for container networking - Add SettingsConfigDict for proper None value parsing New Embedding Providers (PR qdrant#76, qdrant#92): - Add Model2Vec support for fast, lightweight embeddings - Add OpenAI-compatible API support (oai_compat) - New settings: OAI_COMPAT_ENDPOINT, OAI_COMPAT_API_KEY, OAI_COMPAT_VEC_SIZE Unnamed Vectors & Multiple Collections (PR qdrant#78): - Add support for Qdrant unnamed vectors - Create UnnamedVectorProvider wrapper - Add USE_UNNAMED_VECTORS and COLLECTION_NAMES settings - Update qdrant.py to handle both named and unnamed vectors - Add __main__.py for python -m execution Hybrid Search (PR qdrant#90): - Implement hybrid search combining dense and sparse vectors - Add find_hybrid() method with RRF and DBSF fusion methods - New tool: qdrant-hybrid-find - Add SPARSE_EMBEDDING_MODEL setting - Support configurable limits for dense, sparse, and final results Optional Collection Names (PR qdrant#89): - Make collection_name parameter optional in store() and find() - Use default collection when not specified - Simplify tool usage with fallback to COLLECTION_NAME env var Additional Tools (PR qdrant#68): - Add qdrant-get-point: Retrieve point by ID - Add qdrant-delete-point: Delete point by ID - Add qdrant-update-point-payload: Update point metadata - Add qdrant-get-collections: List all collections - Add qdrant-get-collection-details: Get collection info - Implement corresponding methods in QdrantConnector Documentation: - Update README with all new features - Document new embedding providers - Add examples for unnamed vectors and multiple collections - Update environment variables table - Document hybrid search functionality - Expand tools documentation Dependencies: - Add model2vec==0.6.0 - Add openai>=1.109.1
This commit consolidates changes from PRs qdrant#92, qdrant#75, qdrant#77, qdrant#90, qdrant#20, qdrant#89, qdrant#78, qdrant#76, and qdrant#68: Infrastructure & Configuration (PR qdrant#75, qdrant#77): - Upgrade Dockerfile to Python 3.13-slim - Use UV 0.8.3 from official image - Add FASTMCP_HOST="0.0.0.0" for container networking - Add SettingsConfigDict for proper None value parsing New Embedding Providers (PR qdrant#76, qdrant#92): - Add Model2Vec support for fast, lightweight embeddings - Add OpenAI-compatible API support (oai_compat) - New settings: OAI_COMPAT_ENDPOINT, OAI_COMPAT_API_KEY, OAI_COMPAT_VEC_SIZE Unnamed Vectors & Multiple Collections (PR qdrant#78): - Add support for Qdrant unnamed vectors - Create UnnamedVectorProvider wrapper - Add USE_UNNAMED_VECTORS and COLLECTION_NAMES settings - Update qdrant.py to handle both named and unnamed vectors - Add __main__.py for python -m execution Hybrid Search (PR qdrant#90): - Implement hybrid search combining dense and sparse vectors - Add find_hybrid() method with RRF and DBSF fusion methods - New tool: qdrant-hybrid-find - Add SPARSE_EMBEDDING_MODEL setting - Support configurable limits for dense, sparse, and final results Optional Collection Names (PR qdrant#89): - Make collection_name parameter optional in store() and find() - Use default collection when not specified - Simplify tool usage with fallback to COLLECTION_NAME env var Additional Tools (PR qdrant#68): - Add qdrant-get-point: Retrieve point by ID - Add qdrant-delete-point: Delete point by ID - Add qdrant-update-point-payload: Update point metadata - Add qdrant-get-collections: List all collections - Add qdrant-get-collection-details: Get collection info - Implement corresponding methods in QdrantConnector Documentation: - Update README with all new features - Document new embedding providers - Add examples for unnamed vectors and multiple collections - Update environment variables table - Document hybrid search functionality - Expand tools documentation Dependencies: - Add model2vec==0.6.0 - Add openai>=1.109.1 Co-authored-by: Claude <noreply@anthropic.com>
|
@chaserhkj, I've opened #187 as a draft covering the same ground. Wanted to say so here rather than quietly compete with a PR that's been sitting since September. Yours has the most support of the three (#92, #111, #158) and two people have already asked for a review on it. For what it's worth I don't think it stalled because anything's wrong with it. It's a big read at +1074/-900 across 6 files, it's gone stale against master since, and back in #55 @kacperlukawski was pretty specific that he wanted "just OpenAI embeddings, but nothing else." So I kept mine deliberately tiny: 26 added lines in existing files plus one new provider file, nothing refactored. That's basically a bet that review bandwidth is the real problem here, not the feature. To be clear about where I stand, I'd rather any of these land than mine specifically. If you want to rebase #92 and trim it down to that shape, I'll close mine and review yours instead. If you'd rather not pick it back up, I'm happy to pull anything useful from your branch into mine and credit you. Your call, just let me know. |
This PR adds support to use an OpenAI-compatible endpoint as embedding provider in the MCP server.
Since OpenAI API is the de facto standard for AI-related services, this should enable broad support for all different providers.
Notably almost all local LLM implementations support this style of API as well (vLLM, Ollama, llama.cpp, etc.) So this effectively supports using them as providers, too.