-
Notifications
You must be signed in to change notification settings - Fork 15.2k
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
upgrade chroma to 0.4.0 #7749
upgrade chroma to 0.4.0 #7749
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
This requires more work - first resolving the fastapi version issue. |
bump to a higher range of fastapi - more up to date is better - conflict with langchain-ai/langchain#7749, specific failing tests https://github.com/hwchase17/langchain/actions/runs/5560775388/jobs/10157995239?pr=7749
langchain/vectorstores/chroma.py
Outdated
@@ -95,7 +95,7 @@ def __init__( | |||
_client_settings = client_settings | |||
elif persist_directory: | |||
_client_settings = chromadb.config.Settings( | |||
chroma_db_impl="duckdb+parquet", | |||
is_persistent=True, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is update backwards compatible with old config settings? ie if someone was passing in
_client_settings = chromadb.config.Settings(
chroma_db_impl="duckdb+parquet",
persist_directory=persist_directory,
)
directly before, would behavior they're seeing change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they will see this error
You are using a deprecated configuration of Chroma. Please pip install chroma-migrate and run chroma-migrate to upgrade your configuration. See https://docs.trychroma.com/migration for more information or join our discord at https://discord.gg/8g5FESbj for help!
more here https://docs.trychroma.com/migration
** This should land Monday the 17th **
Chroma is upgrading from
0.3.29
to0.4.0
.0.4.0
is easier to build, more durable, faster, smaller, and more extensible. This comes with a few changes:A simplified and improved client setup. Instead of having to remember weird settings, users can just do
EphemeralClient
,PersistentClient
orHttpClient
(the underlying directClient
implementation is also still accessible)We migrated data stores away from
duckdb
andclickhouse
. This changes the api for thePersistentClient
that used to referencechroma_db_impl="duckdb+parquet"
. Now we simply setis_persistent=true
.is_persistent
is set for you totrue
if you usePersistentClient
.Because we migrated away from
duckdb
andclickhouse
- this also means that users need to migrate their data into the new layout and schema. Chroma is committed to providing extension notification and tooling around any schema and data migrations (for example - this PR!).After upgrading to
0.4.0
- if users try to access their data that was stored in the previous regime, the system will throw anException
and instruct them how to use the migration assistant to migrate their data. The migration assitant is a pip installable CLI:pip install chroma_migrate
. And is runnable by callingchroma_migrate
-- TODO ADD here is a short video demonstrating how it works.
Please reference the readme at chroma-core/chroma-migrate to see a full write-up of our philosophy on migrations as well as more details about this particular migration.
Please direct any users facing issues upgrading to our Discord channel called #get-help. We have also created a email listserv to notify developers directly in the future about breaking changes.
TODO
duckdb+parquet
strings to the new format0.4.0
after0.4.0
is released.fastapi
to the chroma branch - as is in-progress here test this range chroma-core/chroma#807