node-red-contrib-chromadb
v1.0.0
Published
ChromaDB Node for Node-RED
Downloads
57
Maintainers
Readme
node-red-contrib-chromadb
Chroma is the open-source embedding database. Chroma makes it easy to build LLM apps by making knowledge, facts, and skills pluggable for LLMs.
Install
cd ~/.node-red
npm install node-red-contrib-chromadb
Restart your Node-RED instance.
Methods Client
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;
Parameters
| 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. |
Returns
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;
Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| params
| Object
| The parameters for deleting a collection. |
| params.name
| string
| The name of the collection. |
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| 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. |
Returns
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.
Returns
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.
Returns
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.
Returns
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.
Returns
Promise
<string
>
A promise that resolves to the version of the Chroma API.
Methods Collection
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;
Parameters
| 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. |
Returns
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;
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| Name | Type | Description |
| :-------------- | :------- | :---------------------------------------------------- |
| params
| Object
| The parameters for the query. |
| params.limit?
| number
| Optional number of results to return (default is 10). |
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| 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. |
Returns
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;
Parameters
| 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. |
Returns
Promise
<boolean
>
- The response from the API. True if successful.
Bugs reports and feature requests
Please report any issues or feature requests at GitHub.