* add chroma cloud as new vector db provider * update docker example env * extend chroma class to chroma cloud * update readme --------- Co-authored-by: timothycarambat <rambat1010@gmail.com>
30 lines
863 B
JavaScript
30 lines
863 B
JavaScript
const { CloudClient } = require("chromadb");
|
|
const { Chroma } = require("../chroma");
|
|
|
|
// ChromaCloud works exactly the same as Chroma so we can just extend the
|
|
// Chroma class and override the connect method to use CloudClient
|
|
|
|
const ChromaCloud = {
|
|
...Chroma,
|
|
name: "ChromaCloud",
|
|
connect: async function () {
|
|
if (process.env.VECTOR_DB !== "chromacloud")
|
|
throw new Error("ChromaCloud::Invalid ENV settings");
|
|
|
|
const client = new CloudClient({
|
|
apiKey: process.env.CHROMACLOUD_API_KEY,
|
|
tenant: process.env.CHROMACLOUD_TENANT,
|
|
database: process.env.CHROMACLOUD_DATABASE,
|
|
});
|
|
|
|
const isAlive = await client.heartbeat();
|
|
if (!isAlive)
|
|
throw new Error(
|
|
"ChromaCloud::Invalid Heartbeat received - is the instance online?"
|
|
);
|
|
return { client };
|
|
},
|
|
};
|
|
|
|
module.exports.ChromaCloud = ChromaCloud;
|