Chroma import/export tool.
Project description
chromie-tool
Chroma (https://trychroma.com) import/export tool.
Install
# install
pip install chromie-tool
# check chromie tool
which chromie
Commands
Help
# chromie help
chromie -h
# exp command help
chromie exp -h
Download prepared datasets
Prepared datasets: https://github.com/chromiodev/datasets.
chromie dl -l es eurostat/prc_hicp_manr
Export
chromie exp server://localhost:8000/tenant/db/collection file.json
Check an export file
chromie check prc_hicp_manr-es.json
Import
# import all the content of movies.json
chromie imp movies.json server://localhost:8000/tenant/db/collection
# import all the content of movies.json, skipping the cert and rating metadata
chromie imp movies.json -M cert,rating server://localhost:8000/tenant/db/collection
# import all the content of movies.json, setting the cert and dir metadata
# to the specified values
chromie imp movies.json -m cert:C,dir:D server://localhost:8000/tenant/db/collection
Copy
chromie cp server://///coll1 server://///coll2
Listing the database collections
# only names
chromie ls server:////
# names and counts
chromie ls -c server:////
Working with collections (create and print info)
# print info on an existing collection
chromie coll -i cloud://///collection_name
# create a new collection
chromie coll -e SentenceTransformer -s cosine cloud://///collection_name
Metadata filters
The --metafilter or -f options allow to select records from metadata in the cp and exp commands.
Format:
predicate
predicate and predicate
predicate or predicate
Examples:
-f "dir='Quentin Tarantino'"
-f "dir='Quentin Tarantino' or dir='Alfred Hitchcock'"
-f "dir in ['Quentin Tarantino', 'Alfred Hitchcock']"
Predicates:
field # similar to: field == true
not field # similar to: field != true
field = literal_scalar # similar to: field == literal_scalar
field == literal_scalar
field != literal_scalar
field < literal_scalar
field <= literal_scalar
field > literal_scalar
field >= literal_scalar
field in [literal_scalar, literal_scalar, ...]
field not in [literal_scalar, literal_scalar, ...]
field between literal_num|literal_text and literal_num|literal_text
field not between literal_num|literal_text and literal_num|literal_text
Literals:
-
Literal text: 'A text'.
-
Literal number: 1234.
-
Literal boolean: true or false.
URIs
Server URI
Format:
server://host:port/tenant/database
server://host:port/tenant/database/collection
When a segment must take its value from the default value or an environment variable, this must be left blank. Examples:
server://///
server:///tenant/db
Environment variables we can use for settings segments in server URIs:
-
CHROMA_HOST -
CHROMA_PORT -
CHROMA_TENANT -
CHROMA_DATABASE
The default values in server URIs, when blank segments and environment variable unset, are these set in the chromadb package. Right now:
-
Host: localhost
-
Port: 8000
-
Tenant: default_tenant
-
Database: default_database
Chroma Cloud URI
Format:
cloud:///tenant/db
cloud:///tenant/db/collection
Similar to the server schema but, with the cloud schema, the environment variables we can use are the following:
-
CHROMA_TENANT -
CHROMA_DATABASE
Default values:
-
host:port segment is always api.trychroma.com:8000.
-
Tenant and database don't have default values, these must be set explicitly or with environment variables.
Checking and decomposing URIs
With chromie uri, we check and decompose a URI.
Examples:
$ chromie uri server:////
Schema: server
Host: localhost
Port: 8000
Tenant: default_tenant
Database: default_database
$ CHROMA_PORT=8888 chromie uri server:////
Schema: server
Host: localhost
Port: 8888
Tenant: default_tenant
Database: default_database
$ CHROMA_DATABASE=testdb chromie uri server://me//
Schema: server
Host: me
Port: 8000
Tenant: default_tenant
Database: testdb
Pinging database instance and/or collection
Examples:
# database instance
chromie ping server:////
# database collection
chromie ping server://///movies
chromie ping cloud://///movies
API key
When an API key needed, --key or -k must be set.
We can use the CHROMA_API_KEY environment variable too.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chromie_tool-0.7.0.tar.gz.
File metadata
- Download URL: chromie_tool-0.7.0.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb9f42473a9669e68f2f498b949686b4bd3da575953689e885b835d5aab0d284
|
|
| MD5 |
d790855f499cac7d41df29768094c04d
|
|
| BLAKE2b-256 |
c7cbc2eea55994b9b20a85e9ae22bc49a876413d17cf8e8e63075bdd1213d414
|
Provenance
The following attestation bundles were made for chromie_tool-0.7.0.tar.gz:
Publisher:
publish.yaml on chromiodev/chromie-tool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chromie_tool-0.7.0.tar.gz -
Subject digest:
cb9f42473a9669e68f2f498b949686b4bd3da575953689e885b835d5aab0d284 - Sigstore transparency entry: 699558946
- Sigstore integration time:
-
Permalink:
chromiodev/chromie-tool@efabd9f41c07c70bb408e0c821c4abfb4ee05685 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/chromiodev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@efabd9f41c07c70bb408e0c821c4abfb4ee05685 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file chromie_tool-0.7.0-py3-none-any.whl.
File metadata
- Download URL: chromie_tool-0.7.0-py3-none-any.whl
- Upload date:
- Size: 43.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dd5d08a044b9cf866d2be02f20b456fa6b0b683f4a16fda67de50623fba7bbd
|
|
| MD5 |
5d79b4eb37be325aa266e4f6ea433d92
|
|
| BLAKE2b-256 |
de193d650c4c539ff977ea9e5c53a9d2c9cc393b350dcd8177588de8727649f8
|
Provenance
The following attestation bundles were made for chromie_tool-0.7.0-py3-none-any.whl:
Publisher:
publish.yaml on chromiodev/chromie-tool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chromie_tool-0.7.0-py3-none-any.whl -
Subject digest:
7dd5d08a044b9cf866d2be02f20b456fa6b0b683f4a16fda67de50623fba7bbd - Sigstore transparency entry: 699558956
- Sigstore integration time:
-
Permalink:
chromiodev/chromie-tool@efabd9f41c07c70bb408e0c821c4abfb4ee05685 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/chromiodev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@efabd9f41c07c70bb408e0c821c4abfb4ee05685 -
Trigger Event:
workflow_dispatch
-
Statement type: