npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-chromadb

v1.0.0

Published

ChromaDB Node for Node-RED

Downloads

57

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.

License

MIT License