0 purchases
chromadb
Chroma Dart Client #
Unofficial Dart client for Chroma embedding database.
Features #
Create, list, get, modify and delete collections.
Add, upsert, get, update, query, count, peek and delete items.
Get version and heartbeat.
Reset database.
Usage #
Note: this is a quick overview of the client. For full API docs, see the
official documentation.
Run the server #
Run docker-compose up -d --build to run a backend in Docker on your local
computer.
Initialize client #
final client = ChromaClient();
copied to clipboard
By default, the client expect the server to be running on
http://localhost:8000. You can change this by passing the host parameter.
Methods on Client #
Methods related to Collections
Collections are similar to AWS s3 buckets in their naming requirements
because they are used in URLs in the REST API. Here's the full list.
// list all collections
await client.listCollections();
// make a new collection
final collection = await client.createCollection(name: 'testname');
// get an existing collection
final collection = await client.getCollection(name: 'testname');
// delete a collection
await client.deleteCollection(name: 'testname');
copied to clipboard
Utilities methods
// get Chroma version
final version = await client.version();
// get Chroma heartbeat
final heartbeat = await client.heartbeat();
// resets entire database - this *cant* be undone!
await client.reset();
copied to clipboard
Methods on Collection #
// get the number of items in a collection
await collection.count();
// add new items to a collection
// either one at a time
await collection.add(
ids: ['id1'],
embeddings: [[1.5, 2.9, 3.4]],
metadatas: [{'source': 'my_source'}],
);
// or many, up to 100k+!
await collection.add(
ids: ['uri9', 'uri10'],
embeddings: [[1.5, 2.9, 3.4], [9.8, 2.3, 2.9]],
metadatas: [{'style': 'style1'}, {'style': 'style2'}],
);
// including just documents
// (you need to provide an EmbeddingFunction to the collection to be able
// to embed documents)
await collection.add(
ids: ['uri9', 'uri10'],
documents: ['doc1000101', 'doc288822'],
metadatas: [{'style': 'style1'}, {'style': 'style2'}],
);
// or use upsert, so records will be updated if they already exist
// (instead of throwing an error)
await collection.upsert(
ids: ['id1'],
embeddings: [[1.5, 2.9, 3.4]],
metadatas: [{'source': 'my_source'}],
documents: ['This is a document'],
);
// get items from a collection
final res = await collection.get();
// convenience, get first 5 items from a collection
await collection.peek();
// do nearest neighbor search to find similar embeddings or documents, supports filtering
await collection.query(
queryEmbeddings: [[1.1, 2.3, 3.2], [5.1, 4.3, 2.2]],
nResults: 2,
where: {'style': 'style2'},
);
// delete items
await collection.delete();
copied to clipboard
License #
Chroma Dart Client is licensed under the MIT License.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.