Open BigCoop opened 1 week ago
The updates enhance FiftyOne with a new backend called ChromaDB for similarity search. The changes introduce classes and methods to manage configurations, compute similarities, and interact with similarity indexes. Additionally, testing functionalities are integrated to validate image and patch similarity processes.
File Path | Change Summary |
---|---|
fiftyone/utils/chroma_fiftyone.py |
Introduced classes and methods for ChromaDB interaction: ChromaSimilarityConfig , ChromaSimilarity , and ChromaSimilarityIndex . Enhanced similarity search within FiftyOne. |
fiftyone/utils/tests_ch.py |
Added test cases (test_image_similarity_backend , test_patch_similarity_backend ) and dataset fixture. Enabled testing of ChromaDB similarity functionalities. |
sequenceDiagram
participant User
participant FiftyOne
participant ChromaSimilarityConfig
participant ChromaSimilarity
participant ChromaSimilarityIndex
User->>FiftyOne: Initialize ChromaDB Similarity
FiftyOne->>ChromaSimilarityConfig: Load configuration
ChromaSimilarityConfig->>FiftyOne: Return config object
FiftyOne->>ChromaSimilarity: Initialize with config
FiftyOne->>ChromaSimilarityIndex: Create/Manage collection
User->>FiftyOne: Perform similarity search
FiftyOne->>ChromaSimilarityIndex: Query collection with embeddings
ChromaSimilarityIndex->>FiftyOne: Return similarity results
FiftyOne->>User: Display results
In fields of code where data roam, A bunny builds a Chroma home. With lines of logic, a search so bright, Finding likeness in pixel light. Backends align, precision prime, Hippity-hop, it's Chroma time! 🐰✨
[!WARNING]
Review ran into problems
Problems (1)
* Git: Failed to clone repository. Please contact CodeRabbit support.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
I don't know where to put the file to have it be imported after I have setup the brain_config.json (as attached). Any advice would be appreciated. brain_config.json
What changes are proposed in this pull request?
builds out an integration to facilitate using chromaDB as a backend for the similarity functionality.
How is this patch tested? If it is not, please explain why.
Trying to do that right now ~ it has passed unit tests on my end but I can't get fiftyone to import the module to utilize some tests from @brimoor .
Release Notes
Is this a user-facing change that should be mentioned in the release notes?
(Details in 1-2 sentences. You can just refer to another PR with a description if this PR is part of a larger change.) Chroma can now be used as a backend for the image similarity function.
What areas of FiftyOne does this PR affect?
fiftyone
Python library changesSummary by CodeRabbit
New Features
Tests