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'])
- 简单实用的护肤偏方,90%的女人已收藏 2024-12-27 08:07:06
- 菠菜跟什么菜搭配最好吃?教你4种美味做法,开胃不油腻,顿顿吃光盘 2024-12-26 10:36:53
- 怎么去青春痘最快最有效 ? 2024-12-26 10:21:55
- 首次养鱼怎么养水?懒人养鱼不想换水?鱼友详细总结 2024-12-26 10:06:49
- 我不会说话怎么办 (感觉自己不会说话怎么办) 2024-12-26 09:52:18