embed函数怎么使用(Chroma 向量数据库:嵌入函数(embedding_functions))
嵌入(Embeddings)是人工智能表示任何类型数据的原生方式,因此非常适合与各种人工智能工具和算法配合使用。它们可以表示文本、图像以及音频和视频。

在创建 Chroma 集合时设置一个嵌入函数,它将在保存和更新文本数据的时候自动计算文本向量。也可以选择不使用Chroma封装的嵌入函数计算向量,自己选择任意嵌入模型提前计算好文本向量数据即可。
本文将尝试使用OpenAI的嵌入模型。

一、默认模型
要获取 Chroma 的嵌入函数,请导入
chromadb.utils.embedding_functions 模块。
# 默认模型
from chromadb.utils import embedding_functions
default_ef = embedding_functions.DefaultEmbeddingFunction()
print(default_ef.MODEL_NAME)
输出:all-MiniLM-L6-v2
默认情况下,Chroma 使用 Sentence Transformers的 all-MiniLM-L6-v2 模型计算向量。该嵌入模型可以创建句子和文档向量。该嵌入模型功能在本地计算机上运行,需要下载模型文件(这是自动完成的)。
二、OpenAI 嵌入模型
Chroma 为 OpenAI 的嵌入模型 API 提供了方便的封装。
该嵌入功能依赖于 OpenAI python 软件包,可以使用 pip install openai 安装该软件包。同时,还需要一个 API 密钥。可以通过注册 OpenAI 账户获得 API 密钥。
示例代码如下:
import chromadb
# 创建一个client客户端对象
client = chromadb.PersistentClient(path="./data/tutorial.db")
# 查看集合列表
client.list_collections()
输出:[Collection(name=my_collection2), Collection(name=new_name)]
其中,path="./data/tutorial.db"相当于关系数据库的库名(database),collection相当于表名(table)。
接下来,创建一个新的 collection 并指定嵌入函数
collection_name = "my_collection3"
embedding_function = embedding_functions.OpenAIEmbeddingFunction()
collection = client.get_or_create_collection(name=collection_name, embedding_function=embedding_function)
client.list_collections()
输出:[Collection(name=my_collection2),
Collection(name=new_name),
Collection(name=my_collection3)]
然后,向上述 collection 中添加数据:
# 向 collection 中添加数据
texts = ["Hello world", "Chroma DB is awesome"]
collection.add(
documents=texts,
metadatas=[{"source": "ch4"}, {"source": "ch4"}],
ids=["id1", "id2"]
)
获取数据:
collection.get(include=['embeddings', 'documents', 'metadatas'])
- 山地玫瑰为什么会变红(山地玫瑰怎么养出状态) 2025-04-01 08:48:27
- 冰箱为什么能保鲜食物(各类冰箱保鲜技术浅析) 2025-04-01 07:22:45
- 为什么抽马桶要扣盖子(为什么冲马桶一定要盖盖子?) 2025-04-01 03:39:26
- 家用电为什么老是跳闸(家庭电路老跳闸的原因) 2025-04-01 03:13:27
- 热水器为什么不加热了(热水器放不出热水什么原因引起的?) 2025-04-01 00:12:43