Chroma向量数据库

https://www.toutiao.com/article/7231110462556291639/

嵌入向量(vector embedding)是表示任何类型数据的 A.I 原生方式,使它们非常适合与各种 A.I 驱动的工具和算法一起使用。 它们可以表示文本、图像,很快还可以表示音频和视频。 有许多创建嵌入的选项,无论是在本地使用已安装的库,还是通过调用 API。

Chroma 是一个用于构建带有嵌入向量的 AI 应用程序的数据库。 它内置了入门所需的一切,并可在你的机器上运行。 托管版本即将推出!

推荐:用 NSDT设计器 快速搭建可编程3D场景。

1、安装Chroma数据库
使用如下命令安装Chroma数据库:


pip install chromadb

注意,由于 pytorch的原因,chromadb 目前不支持 Python 3.11

2、获取Chroma Client对象
在Python中使用Chroma的Client对象访问数据库:


import chromadb
chroma_client = chromadb.Client()

3、创建Chroma数据集
接下来使用Python在Chroma中创建一个集合(Collection)。

集合是存储嵌入、文档和任何其他元数据的地方。 可以创建一个具有名称的集合:


collection = chroma_client.create_collection(name="my_collection")

4、向Chroma数据集添加文档
继续添加一些文本文档到集合中,Chroma 将存储文本,并自动处理标记化、嵌入和索引:


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

如果已经自己生成了嵌入向量,则可以直接加载:


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

5、查询Chroma中的数据
现在可以进行查询了。可以用查询文本列表来查询集合,Chroma 会返回 n 个最相似的结果。 就这么简单!


results = collection.query(
    query_texts=["This is a query document"],
    n_results=2
)

默认情况下,存储在 Chroma 中的数据是短暂的,因此很容易制作原型脚本。 使 Chroma 持久化很容易,因此可以重复使用创建的每个集合,并在以后向其中添加更多文档。 它会在启动客户端时自动加载你的数据,并在关闭时自动保存。

原文链接:
http://www.bimant.com/blog/chroma-vector-db/

文档更新时间: 2024-05-16 13:15   作者:admin