2.2 Chroma-开始-JavaScript

Chroma是一个用于构建带有嵌入式AI应用程序的数据库。它已经内置了你需要开始的所有内容,并且可以在你的计算机上运行。一个hosted version即将推出!

1. 安装

npm install --save chromadb # yarn add chromadb

您需要安装Chroma Python包才能使用Chroma命令行界面(CLI)和后端服务器。

pip install chromadb

或者,您可以使用Docker容器来运行Chroma后端服务器。

2. 获取Chroma客户端

启动Chroma后端服务器:

chroma run --path /db_path

然后创建一个连接到它的客户端:

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

// ESM
import { ChromaClient } from 'chromadb'

const client = new ChromaClient();

3. 创建一个集合

集合(Collections)是您即将存储嵌入(embeddings)、文档和任何附加元数据的地方。您可以创建一个集合使用以下名称:

在这个例子中,我们想要从文本生成嵌入向量。OpenAI的ada-002模型非常受欢迎,免费且注册快捷。获取您的API密钥并返回。Chroma的API具有多态性(可以在浏览器或服务器端运行),但OpenAI的API则没有。因此,请在服务器端运行此示例。

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

// ESM
import { OpenAIEmbeddingFunction } from 'chromadb'

const embedder = new OpenAIEmbeddingFunction({
  openai_api_key: "your_api_key",
});
const collection = await client.createCollection({
  name: "my_collection",
  embeddingFunction: embedder,
});

4. 向集合中增加一些文本文档

Chroma会自动存储您的文本,并处理分词、嵌入和索引等操作。

await collection.add({
  ids: ["id1", "id2"],
  metadatas: [{ source: "my_source" }, { source: "my_source" }],
  documents: ["This is a document", "This is another document"],
});

如果您已经自己生成了嵌入(embeddings),您可以直接将它们加载进去:

await collection.add({
  ids: ["id1", "id2"],
  embeddings: [
    [1.2, 2.3, 4.5],
    [6.7, 8.2, 9.2],
  ],
  where: [{ source: "my_source" }, { source: "my_source" }],
  documents: ["This is a document", "This is another document"],
});

5. 集合查询

您可以使用一组查询文本对集合进行查询,Chroma将返回与查询最相似的前n个结果。就是这么简单!

const results = await collection.query({
  nResults: 2,
  queryTexts: ["This is a query document"],
});

查找 chromadb on PyPI.

📚 下一步

  • Chroma旨在简单易用,可以快速入门,并且足够灵活,可以满足许多用例。您可以使用自己的嵌入模型,在Chroma中使用自己的嵌入进行查询,并在元数据上进行筛选。要了解有关Chroma的更多信息,请查看使用指南和API参考。
  • Chroma已经集成到了LangChain(Python和JavaScript)中,使得使用Chroma构建AI应用程序变得非常简单。请查看集成页面以了解更多信息。
  • 您可以将部署一个Chroma的持久实例到外部服务器上,以便更轻松地处理较大的项目或与团队合作。

马上就来

  • 一个hosted version的Chroma,具有易于使用的Web界面和API;
  • 多种数据类型,包括图像、音频、视频等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮姑娘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值