feat: Adds Qdrant Vector Search#683
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
✅ Files skipped from review due to trivial changes (3)
🚧 Files skipped from review as they are similar to previous changes (4)
WalkthroughThis PR adds Qdrant as a supported vector store backend. Configuration settings are defined in the model, documented in templates and examples, the vector store implementation handles upsert/query/delete operations, the factory instantiates it conditionally, and documentation and changelog entries reflect the new capability. ChangesQdrant Vector Store Integration
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
src/vector_store/qdrant.py (1)
20-21: 💤 Low valueConsider documenting the UUID namespace choice.
The function uses
uuid.NAMESPACE_DNSto generate deterministic UUIDs. While this works correctly, a brief comment explaining why NAMESPACE_DNS was chosen (or noting that any fixed namespace would work) would help future maintainers understand this is an arbitrary but consistent choice.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/vector_store/qdrant.py` around lines 20 - 21, The helper _point_id uses uuid.uuid5 with uuid.NAMESPACE_DNS to produce deterministic IDs but lacks explanation; add a short comment above the _point_id function (or inline) stating that NAMESPACE_DNS is chosen only as a fixed, arbitrary namespace for deterministic UUIDv5 generation and that any constant namespace would work, so maintainers understand the choice (reference: function _point_id).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/vector_store/qdrant.py`:
- Around line 66-138: Add Google-style docstrings to each public method
upsert_many, query, delete_many, delete_namespace, and close in the Qdrant
vector store class: for each method document Args (types and description for
namespace, vectors, embedding, top_k, filters, max_distance, ids), Returns
(e.g., list[VectorQueryResult] or None), and Raises (e.g., VectorStoreError on
failures or any exceptions propagated), and include brief summary line and any
notes about side effects (creates collection in upsert_many, filters applied in
query). Ensure docstrings follow Google style (one-line summary, blank line,
Args/Returns/Raises sections) and reference types used in the file such as
VectorRecord and VectorQueryResult.
---
Nitpick comments:
In `@src/vector_store/qdrant.py`:
- Around line 20-21: The helper _point_id uses uuid.uuid5 with
uuid.NAMESPACE_DNS to produce deterministic IDs but lacks explanation; add a
short comment above the _point_id function (or inline) stating that
NAMESPACE_DNS is chosen only as a fixed, arbitrary namespace for deterministic
UUIDv5 generation and that any constant namespace would work, so maintainers
understand the choice (reference: function _point_id).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6f79ae20-91f2-4cab-a8c9-74563de256f5
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (10)
.env.templateCHANGELOG.mdREADME.mdconfig.toml.exampledocs/changelog/introduction.mdxdocs/v3/contributing/configuration.mdxpyproject.tomlsrc/config.pysrc/vector_store/__init__.pysrc/vector_store/qdrant.py
|
Hi @VVoruganti Just bumping this PR. Please take a look when possible. |
Description
This PR adds support for using Qdrant as a vector search provider in Honcho.
Qdrant is an open-source vector search engine built for high-performance and massive-scale.
Testing
I've unit tested this integration against a local Qdrant instance.
Setup
You can run Qdrant with
Then set,
The dashboard is accessible at http://localhost:6333/dashboard
Summary by CodeRabbit