NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模

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

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

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 持久化很容易,因此可以重复使用创建的每个集合,并在以后向其中添加更多文档。 它会在启动客户端时自动加载你的数据,并在关闭时自动保存。


原文链接:Getting started - Chroma

BimAnt翻译整理,转载请标明出处