[Update][Ease of Use] Persistent Embedding Functions
Persistent Embedding Functions
Chroma's embedding functions (EF) don't persist with collections. This creates awkward API surface area and gotchas like needing to pass an EF if you call get. We are likely to want to persist other parts of pre-and-post processing with collections, as we move closer to implementing pipelines.
API Design
Remove the embedding_function arg on get_collection.
[Complexity] Subtask
- [Med] Add a persistence decorator and object registry.
- [Med] Propagate persistence automatically to all present and future embedding functions.
Users may want to change things about the persisted embedding function which don't change the embedding output itself. For example, users might want to update / rotate their API keys.
Maybe we can follow the approach of Configuration in marking certain values static? Thoughts welcome.
This is addressed by CollectionConfig, now landed