Cherry-picked from #1029
## Description of changes
*Summarize the changes made by this PR.*
- Improvements & Bug fixes
- Added support for `$in` and `$nin` metadata filters
> Note: See CIP in `docs/` or example notebook for more info
## Test plan
*How are these changes tested?*
- [x] Tests pass locally with `pytest` for python
## Documentation Changes
TBD
---------
Co-authored-by: Hammad Bashir <HammadB@users.noreply.github.com>
Refs: #1027
## Description of changes
*Summarize the changes made by this PR.*
- New functionality
- Baseline functionality and tests implemented
- Example notebook updated
- Minor refactor on the client creds provider to allow for user specific
credentials fetching.
## Test plan
*How are these changes tested?*
- [x] Tests pass locally with `pytest` for python (regression)
- [x] New fixtures added for token-based auth
## Documentation Changes
Docs should be updated to highlight the new supported auth method.
## Description of changes
*Summarize the changes made by this PR.*
- New functionality
- Auth Provide Client and Server Side Abstractions
- Basic Auth Provider
## Test plan
Unit tests for authorized endpoints
## Documentation Changes
Docs should change to describe how to use auth providers on the client
and server. CIP added in `docs/`
## Description of changes
*Summarize the changes made by this PR.*
- Improvements & Bug fixes
- Added enhanced examples of how to use `where` filtering with logical
operators based on community questions
## Test plan
Run the jupyter notebook
`examples/basic_functionality/where_filtering.ipynb`
## Documentation Changes
No document updates.
## Description of changes
This PR creates a new starter notebook intended to familiarize people
with the very basic, core functionality of embedding retrieval with
Chroma. It's self-contained, and hopefully straightforward and easy to
understand.
There is also a minor fix to the experimental notebook.
## Test plan
Ran the notebook, also via Colab.
## Documentation Changes
None.
## TODO
- [x] https://github.com/chroma-core/chroma/issues/880 Canonical 'chat
with your documents'
## Description of changes
Base PR to release sqlite refactor, which spans many stacked PRs.
Remaining
- [x] Merge this to main
- [x] Layered Persistent Index #761
- [x] Remove old impls (In #781 )
- [x] Remove persist() API (In #787)
- [x] Add telemetry to SegmentAPI, it was not included. (#788)
- [x] New clients #805
- [x] locking and soak tests for thread-safety
- [x] Migration tool
- [x] Fix#739
- [x] Fix metadata None vs empty
- [x] Fix persist directory (addressed in #761)
- [x] Leave files open in #761 (merge stacked PR)
Post Release
- [ ] Un xfail cross version tests once we cut the release
- [x] Documentation updates for new silent ADD failure.
- [x] Update all documentation for new API instantiation
- [x] Update all documentation for settings changes
- [ ] Update terraform deployment
- [ ] Update cloudformation deployment
---------
Co-authored-by: Luke VanderHart <luke@vanderhart.net>
Co-authored-by: Jeffrey Huber <jeff@trychroma.com>
Co-authored-by: Anton Troynikov <atroyn@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Sosa <37946988+CakeCrusher@users.noreply.github.com>
Co-authored-by: Russell Pollari <russell@sharpestminds.com>
Co-authored-by: russell-pollari <pollarir@mgail.com>