Skip to main content

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

chromie_tool-0.7.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chromie_tool-0.7.0-py3-none-any.whl (43.4 kB view details)

Uploaded Python 3

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

Hashes for chromie_tool-0.7.0.tar.gz
Algorithm Hash digest
SHA256 cb9f42473a9669e68f2f498b949686b4bd3da575953689e885b835d5aab0d284
MD5 d790855f499cac7d41df29768094c04d
BLAKE2b-256 c7cbc2eea55994b9b20a85e9ae22bc49a876413d17cf8e8e63075bdd1213d414

See more details on using hashes here.

Provenance

The following attestation bundles were made for chromie_tool-0.7.0.tar.gz:

Publisher: publish.yaml on chromiodev/chromie-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for chromie_tool-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7dd5d08a044b9cf866d2be02f20b456fa6b0b683f4a16fda67de50623fba7bbd
MD5 5d79b4eb37be325aa266e4f6ea433d92
BLAKE2b-256 de193d650c4c539ff977ea9e5c53a9d2c9cc393b350dcd8177588de8727649f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for chromie_tool-0.7.0-py3-none-any.whl:

Publisher: publish.yaml on chromiodev/chromie-tool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page