当前位置:   article > 正文

3.2 Chroma-使用指南-JavaScript_chromadb

chromadb

初始化一个持久的 Chroma 客户端

// CJS
const { ChromaClient } = require("chromadb");

// ESM
import { ChromaClient } from 'chromadb'
  • 1
  • 2
  • 3
  • 4
  • 5

连接到后端

要与 JS 客户端连接,您必须连接到正在运行 Chroma 的后端。有关如何进行此操作,请运行 Chroma 在客户端/服务器模式下。

const client = new ChromaClient();
  • 1

客户端对象具有一些有用的便利方法。

await client.reset() # Empties and completely resets the database. ⚠️ This is destructive and not reversible.
  • 1

以client/server模式运行 Chroma

在客户端服务器模式下运行 Chroma,首先需要通过 pypi 安装 Chroma 库和CLI。

pip install chromadb
  • 1

然后启动Chroma服务器:

chroma run --path /db_path
  • 1

然后,JS 客户端与 Chroma 服务器后端进行通信。

// CJS
const { ChromaClient } = require("chromadb");

// ESM
import { ChromaClient } from 'chromadb'

const client = new ChromaClient();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

您还可以在 Docker 容器中运行 Chroma 服务器,或者部署到云提供商上。有关更多信息,请参阅 deployment docs

使用集合

Chroma允许您使用集合原语管理嵌入集合。

创建、检查和删除集合

Chroma 在 URL 中使用集合名称,因此在为其命名时有一些限制:

  • 名称的长度必须介于3个到63个字符之间;
  • 名称必须以小写字母或数字开头和结尾,中间可以包含点、破折号和下划线;
  • 名称不能包含两个连续的点;
  • 名称不能是有效的 IP 地址。

Chroma 集合通过名称和可选的嵌入函数创建。如果您提供了嵌入函数,则需要在每次访问集合时都提供它。

// CJS
const { ChromaClient } = require("chromadb");

// ESM
import { ChromaClient } from 'chromadb'
  • 1
  • 2
  • 3
  • 4
  • 5

JS 客户端与 Chroma 服务器后端进行通信。这可以在您的本地计算机上运行,也可以轻松地部署到 AWS 上。

let collection = await client.createCollection({
  name: "my_collection",
  embeddingFunction: emb_fn,
});
let collection2 = await client.getCollection({
  name: "my_collection",
  embeddingFunction: emb_fn,
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注意:
如果您之后想要获取集合(get_collection),您必须使用创建集合时提供的嵌入函数进行获取。

嵌入函数接受文本作为输入,并执行分词和嵌入操作。如果未提供嵌入函数,Chroma 将使用默认的 sentence transfomer

您可以了解有关

推荐阅读
相关标签