feat(core): add Milvus semantic vector backend#1041
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 389a50f42f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| session, table_name="search_vector_embeddings", dialect_name=dialect_name | ||
| ) | ||
| marker_columns = {"chunk_id", "project_id", "embedding_dims", "updated_at"} | ||
| marker_mismatch = bool(embedding_columns) and not marker_columns.issubset(embedding_columns) |
There was a problem hiding this comment.
Drop existing pgvector table before Milvus markers
When a Postgres project already used the database vector backend, search_vector_embeddings has chunk_id, project_id, embedding_dims, and updated_at plus a NOT NULL embedding vector(...) column, so this subset check treats the pgvector table as a valid Milvus marker table. After users follow the documented backend switch and run bm reindex --embeddings --full, _replace_marker_rows inserts marker rows without embedding, causing the first Milvus sync batch to fail instead of migrating the derived table.
Useful? React with 👍 / 👎.
14b7a53 to
f950677
Compare
|
Hi @phernandez @groksrc @jope-bm, could you take a look when you have a chance? This PR adds an optional Milvus semantic vector backend while keeping SQL metadata storage in the existing repository flow. CLA and DCO are passing now. The branch also handles existing pgvector-derived tables separately from Milvus marker tables, with focused coverage in the Milvus repository tests. |
f950677 to
eb0ac90
Compare
|
@zc277584121 Thanks for this PR — and apologies for the slow response. We took a deep look, and the quality is genuinely high: it implements exactly the Where we're leaning, though, is toward vendor vector backends living as external packages rather than in-tree. Two practical reasons drive that:
The shape we have in mind: we add a small extension point in core (a backend registry around We'd really like to talk this through with you directly rather than in review threads — we actually tried to reach you on LinkedIn a while back with no luck. Could you email me at paul@basicmemory.com, or DM me on the Basic Memory Discord (https://discord.com/invite/tyvKNccgqN)? Happy to hop on a call too. — Paul |
Signed-off-by: Cheney Zhang <chen.zhang@zilliz.com>
Signed-off-by: Cheney Zhang <chen.zhang@zilliz.com>
Signed-off-by: Cheney Zhang <chen.zhang@zilliz.com>
eb0ac90 to
218da16
Compare
|
@phernandez Thanks for taking a close look and for laying out the external package direction. That makes sense to me, especially around Windows install behavior and long-term ownership of the Milvus-specific surface. I took another pass over the current repository boundary before moving anything out. Today Could you share what extension point shape you would prefer before we split this up? A few concrete points that would help us align:
If you are open to it, I can rework this into two smaller pieces: a core PR with just the registry/extension point, and a separate |
Summary
Testing