Skip to content

Conversation

@jeffchuber
Copy link
Contributor

@jeffchuber jeffchuber commented Jul 16, 2023

** This should land Monday the 17th **

Chroma is upgrading from 0.3.29 to 0.4.0. 0.4.0 is easier to build, more durable, faster, smaller, and more extensible. This comes with a few changes:

  1. A simplified and improved client setup. Instead of having to remember weird settings, users can just do EphemeralClient, PersistentClient or HttpClient (the underlying direct Client implementation is also still accessible)

  2. We migrated data stores away from duckdb and clickhouse. This changes the api for the PersistentClient that used to reference chroma_db_impl="duckdb+parquet". Now we simply set is_persistent=true. is_persistent is set for you to true if you use PersistentClient.

  3. Because we migrated away from duckdb and clickhouse - 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 an Exception 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 calling chroma_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

  • Migrated any duckdb+parquet strings to the new format
  • Notified users about the breaking change (this PR, other suggestions?)
  • Move pypi target away from feature-branch and to 0.4.0 after 0.4.0 is released.
  • We need to merge in a more flexible range for fastapi to the chroma branch - as is in-progress here test this range chroma-core/chroma#807

@jeffchuber jeffchuber changed the title updates for 0.4.0 updates for 0.4.0 [Do not merge yet] Jul 17, 2023
@logan-markewich
Copy link
Collaborator

logan-markewich commented Jul 17, 2023

Hey @jeffchuber ! This looks good so far (and the improvements sound great!)

Is this completed from your point of view? Just want to make sure we don't push this before you are ready. Will be watching this for updates :)

@jeffchuber jeffchuber changed the title updates for 0.4.0 [Do not merge yet] updates for 0.4.0 Jul 18, 2023
@jeffchuber
Copy link
Contributor Author

@logan-markewich this is now ready for review (and merge)!

@logan-markewich
Copy link
Collaborator

LGTM, will merge, cut a release, and tweet out soon!

@logan-markewich logan-markewich merged commit e611853 into run-llama:main Jul 18, 2023
junying1 pushed a commit to junying1/llama_index that referenced this pull request Jul 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants