-
Notifications
You must be signed in to change notification settings - Fork 15.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
community: Cassandra Vector Store: modernize implementation #27253
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
5bd1c47
to
a6add20
Compare
1d344e9
to
034a485
Compare
cc @cbornet or @hemidactylus @epinzur thank you for the contribution. I tagged the main maintainers for this integration. I took a quick glance, from a first pass it's not clear to me what this refactoring achieves. It does have a number of breaking changes as far as I can tell -- which could break existing users code. |
b3a31e7
to
2184e0c
Compare
@eyurtsev the author of this PR is a co-worker of mine (and of @cbornet's), we actually discussed several of the points addressed in this PR while it was being written.
|
**Description:** This PR updates `CassandraGraphVectorStore` to be based off `CassandraVectorStore`, instead of using a custom CQL implementation. This allows users using a `CassandraVectorStore` to upgrade to a `GraphVectorStore` without having to change their database schema or re-embed documents. This PR also updates the documentation of the `GraphVectorStore` base class and contains native async implementations for the standard graph methods: `traversal_search` and `mmr_traversal_search` in `CassandraVectorStore`. **Issue:** No issue number. **Dependencies:** #27078 (already-merged) **Lint and test**: - Lint and tests all pass, including existing `CassandraGraphVectorStore` tests. - Also added numerous additional tests based of the tests in `langchain-astradb` which cover many more scenarios than the existing tests for `Cassandra` and `CassandraGraphVectorStore` ** BREAKING CHANGE** Note that this is a breaking change for existing users of `CassandraGraphVectorStore`. They will need to wipe their database table and restart. However: - The interfaces have not changed. Just the underlying storage mechanism. - Any one using `langchain_community.vectorstores.Cassandra` can instead use `langchain_community.graph_vectorstores.CassandraGraphVectorStore` and they will gain Graph capabilities without having to re-embed their existing documents. This is the primary goal of this PR. --------- Co-authored-by: Erick Friis <erick@langchain.dev>
Description: This fixes an issue that mistakenly created in #27253. The issue currently exists only in `langchain-community==0.3.4`. Test cases were added to prevent this issue in the future. Co-authored-by: Erick Friis <erick@langchain.dev>
Description: This fixes an issue that mistakenly created in langchain-ai#27253. The issue currently exists only in `langchain-community==0.3.4`. Test cases were added to prevent this issue in the future. Co-authored-by: Erick Friis <erick@langchain.dev>
Description: This fixes an issue that mistakenly created in langchain-ai#27253. The issue currently exists only in `langchain-community==0.3.4`. Test cases were added to prevent this issue in the future. Co-authored-by: Erick Friis <erick@langchain.dev>
Description:
This PR updates
CassandraGraphVectorStore
to be based offCassandraVectorStore
, instead of using a custom CQL implementation. This allows users using aCassandraVectorStore
to upgrade to aGraphVectorStore
without having to change their database schema or re-embed documents.This PR also updates the documentation of the
GraphVectorStore
base class and contains native async implementations for the standard graph methods:traversal_search
andmmr_traversal_search
inCassandraVectorStore
.Issue: No issue number.
Dependencies: #27078 (already-merged)
Lint and test:
CassandraGraphVectorStore
tests.langchain-astradb
which cover many more scenarios than the existing tests forCassandra
andCassandraGraphVectorStore
** BREAKING CHANGE**
Note that this is a breaking change for existing users of
CassandraGraphVectorStore
. They will need to wipe their database table and restart.However:
langchain_community.vectorstores.Cassandra
can instead uselangchain_community.graph_vectorstores.CassandraGraphVectorStore
and they will gain Graph capabilities without having to re-embed their existing documents. This is the primary goal of this PR.