Chroma is the open-source embedding database. Chroma makes it easy to build LLM apps by making knowledge, facts, and skills pluggable for LLMs.
cd ~/.node-red
npm install node-red-contrib-chromadb
Restart your Node-RED instance.
createCollection (more details)
▸ createCollection(params
): Promise
<Collection
>
Creates a new collection with the specified properties.
Throws
If there is an issue creating the collection.
Example
msg.collection = "my_collection";
msg.payload = {
metadata: {
description: "My first collection"
}
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for creating a new collection. |
params.embeddingFunction? |
IEmbeddingFunction |
Optional custom embedding function for the collection. |
params.metadata? |
CollectionMetadata |
Optional metadata associated with the collection. |
params.name |
string |
The name of the collection. |
Promise
<Collection
>
A promise that resolves to the created collection.
deleteCollection (more details)
▸ deleteCollection(params
): Promise
<void
>
Deletes a collection with the specified name.
Throws
If there is an issue deleting the collection.
Example
msg.collection = "my_collection";
msg.payload = {};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for deleting a collection. |
params.name |
string |
The name of the collection. |
Promise
<void
>
A promise that resolves when the collection is deleted.
getCollection (more details)
▸ getCollection(params
): Promise
<Collection
>
Gets a collection with the specified name.
Throws
If there is an issue getting the collection.
Example
msg.collection = "my_collection";
msg.payload = {};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for getting a collection. |
params.embeddingFunction? |
IEmbeddingFunction |
Optional custom embedding function for the collection. |
params.name |
string |
The name of the collection. |
Promise
<Collection
>
A promise that resolves to the collection.
getOrCreateCollection (more details)
▸ getOrCreateCollection(params
): Promise
<Collection
>
Gets or creates a collection with the specified properties.
Throws
If there is an issue getting or creating the collection.
Example
msg.collection = "my_collection";
msg.payload = {
metadata: {
description: "My first collection"
}
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for creating a new collection. |
params.embeddingFunction? |
IEmbeddingFunction |
Optional custom embedding function for the collection. |
params.metadata? |
CollectionMetadata |
Optional metadata associated with the collection. |
params.name |
string |
The name of the collection. |
Promise
<Collection
>
A promise that resolves to the got or created collection.
heartbeat (more details)
▸ heartbeat(): Promise
<number
>
Returns a heartbeat from the Chroma API.
Promise
<number
>
A promise that resolves to the heartbeat from the Chroma API.
listCollections (more details)
▸ listCollections(): Promise
<CollectionType
[]>
Lists all collections.
Throws
If there is an issue listing the collections.
Promise
<CollectionType
[]>
A promise that resolves to a list of collection names.
reset (more details)
▸ reset(): Promise
<Reset200Response
>
Resets the state of the object by making an API call to the reset endpoint.
Throws
If there is an issue resetting the state.
Promise
<Reset200Response
>
A promise that resolves when the reset operation is complete.
version (more details)
▸ version(): Promise
<string
>
Returns the version of the Chroma API.
Promise
<string
>
A promise that resolves to the version of the Chroma API.
add (more details)
▸ add(params
): Promise
<AddResponse
>
Add items to the collection
Example
msg.collection = "my_collection";
msg.payload = {
ids: ["id1", "id2"],
embeddings: [
[1, 2, 3],
[4, 5, 6],
],
metadatas: [{ key: "value" }, { key: "value" }],
documents: ["document1", "document2"],
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.documents? |
string | Documents |
Optional documents of the items to add. |
params.embeddings? |
Embedding | Embeddings |
Optional embeddings of the items to add. |
params.ids |
string | IDs |
IDs of the items to add. |
params.metadatas? |
Metadata | Metadatas |
Optional metadata of the items to add. |
Promise
<AddResponse
>
- The response from the API. True if successful.
count (more details)
▸ count(): Promise
<number
>
Count the number of items in the collection
Example
msg.collection = "my_collection";
msg.payload = {};
return msg;
Promise
<number
>
- The response from the API.
delete (more details)
▸ delete(params?
): Promise
<string
[]>
Deletes items from the collection.
Throws
If there is an issue deleting items from the collection.
Example
msg.collection = "my_collection";
msg.payload = {
ids: "some_id",
where: { key: "value" },
whereDocument: { "$contains": "search_string" }
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for deleting items from the collection. |
params.ids? |
string | IDs |
Optional ID or array of IDs of items to delete. |
params.where? |
Where |
Optional query condition to filter items to delete based on metadata values. |
params.whereDocument? |
WhereDocument |
Optional query condition to filter items to delete based on document content. |
Promise
<string
[]>
A promise that resolves to the IDs of the deleted items.
get (more details)
▸ get(params?
): Promise
<GetResponse
>
Get items from the collection
Example
msg.collection = "my_collection";
msg.payload = {
ids: ["id1", "id2"],
where: { key: "value" },
limit: 10,
offset: 0,
include: ["embeddings", "metadatas", "documents"],
whereDocument: { $contains: "value" },
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.ids? |
string | IDs |
Optional IDs of the items to get. |
params.include? |
IncludeEnum [] |
Optional list of items to include in the response. |
params.limit? |
number |
Optional limit on the number of items to get. |
params.offset? |
number |
Optional offset on the items to get. |
params.where? |
Where |
Optional where clause to filter items by. |
params.whereDocument? |
WhereDocument |
Optional where clause to filter items by. |
Promise
<GetResponse
>
- The response from the server.
modify (more details)
▸ modify(params?
): Promise
<void
>
Modify the collection name or metadata
Example
msg.collection = "my_collection";
msg.payload = {
name: "new collection name",
metadata: { key: "value" },
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.metadata? |
CollectionMetadata |
Optional new metadata for the collection. |
params.name? |
string |
Optional new name for the collection. |
Promise
<void
>
- The response from the API.
peek (more details)
▸ peek(params?
): Promise
<GetResponse
>
Peek inside the collection
Throws
If there is an issue executing the query.
Example
msg.collection = "my_collection";
msg.payload = {
limit: 10,
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.limit? |
number |
Optional number of results to return (default is 10). |
Promise
<GetResponse
>
A promise that resolves to the query results.
query (more details)
▸ query(params
): Promise
<QueryResponse
>
Performs a query on the collection using the specified parameters.
Throws
If there is an issue executing the query.
Example
// Query the collection using embeddings
msg.collection = "my_collection";
msg.payload = {
queryEmbeddings: [0.1, 0.2],
nResults: 10,
where: { key: "value" },
include: ["metadata", "document"]
};
return msg;
Example
// Query the collection using query text
msg.collection = "my_collection";
msg.payload = {
queryTexts: "some text",
nResults: 10,
where: { key: "value" },
include: ["metadata", "document"]
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.include? |
IncludeEnum [] |
Optional array of fields to include in the result, such as "metadata" and "document". |
params.nResults? |
number |
Optional number of results to return (default is 10). |
params.queryEmbeddings? |
Embedding | Embeddings |
Optional query embeddings to use for the search. |
params.queryTexts? |
string | string [] |
Optional query text(s) to search for in the collection. |
params.where? |
Where |
Optional query condition to filter results based on metadata values. |
params.whereDocument? |
WhereDocument |
Optional query condition to filter results based on document content. |
Promise
<QueryResponse
>
A promise that resolves to the query results.
update (more details)
▸ update(params
): Promise
<boolean
>
Update the embeddings, documents, and/or metadatas of existing items
Example
msg.collection = "my_collection";
msg.payload = {
ids: ["id1", "id2"],
embeddings: [
[1, 2, 3],
[4, 5, 6],
],
metadatas: [{ key: "value" }, { key: "value" }],
documents: ["new document 1", "new document 2"],
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.documents? |
string | Documents |
Optional documents to update. |
params.embeddings? |
Embedding | Embeddings |
Optional embeddings to update. |
params.ids |
string | IDs |
The IDs of the items to update. |
params.metadatas? |
Metadata | Metadatas |
Optional metadatas to update. |
Promise
<boolean
>
- The API Response. True if successful. Else, error.
upsert (more details)
▸ upsert(params
): Promise
<boolean
>
Upsert items to the collection
Example
msg.collection = "my_collection";
msg.payload = {
ids: ["id1", "id2"],
embeddings: [
[1, 2, 3],
[4, 5, 6],
],
metadatas: [{ key: "value" }, { key: "value" }],
documents: ["document1", "document2"],
};
return msg;
Name | Type | Description |
---|---|---|
params |
Object |
The parameters for the query. |
params.documents? |
string | Documents |
Optional documents of the items to add. |
params.embeddings? |
Embedding | Embeddings |
Optional embeddings of the items to add. |
params.ids |
string | IDs |
IDs of the items to add. |
params.metadatas? |
Metadata | Metadatas |
Optional metadata of the items to add. |
Promise
<boolean
>
- The response from the API. True if successful.
Please report any issues or feature requests at GitHub.