赞
踩
import chromadb
您可以配置 Chroma 来保存和加载本地机器上的数据。数据将自动持久化,并在启动时加载(如果存在)。
client = chromadb.PersistentClient(path="/path/to/save/to")
path 是 Chroma 在磁盘上存储其数据库文件的位置,并在启动时加载这些文件。
客户端对象具有一些有用的便利方法。
client.heartbeat() # returns a nanosecond heartbeat. Useful for making sure the client remains connected.
client.reset() # Empties and completely resets the database. ⚠️ This is destructive and not reversible.
Chroma 还可以配置为client/server模式运行。在此模式下,Chroma 客户端连接到在单独进程中运行的 Chroma 服务器。
要启动 Chroma 服务器,请运行以下命令:
chroma run --path /db_path
然后使用 Chroma HTTP 客户端连接到服务器:
import chromadb
chroma_client = chromadb.HttpClient(host='localhost', port=8000)
就是这样!只需进行这个更改,Chroma 的 API 将以client-server模式运行。
如果您正在以client-server模式运行 Chroma,您可能不需要完整的 Chroma 库。相反,您可以使用仅包含客户端功能的轻量级库。在这种情况下,您可以安装 chromadb-client 包。这个包是一个轻量级的针对服务器的 HTTP 客户端,具有很小的依赖资源占用。
pip install chromadb-client
import chromadb
# Example setup of the client to connect to your chroma server
client = chromadb.HttpClient(host='localhost', port=8000)
请注意,chromadb-client包是完整Chroma库的子集,不包括所有依赖项。如果您想使用完整的Chroma库,可以安装chromadb包。最重要的是,没有默认的嵌入函数。如果您在没有嵌入的情况下添加(add())文档,必须手动指定一个嵌入函数并安装其所需的依赖项。
Chroma允许您使用集合原语管理嵌入集合。
创建、检查和删除集合。
Chroma 在 URL 中使用集合名称,因此在为其命名时有一些限制:
Chroma 集合通过名称和可选的嵌入函数创建。如果您提供了嵌入函数,则需要在每次访问集合时都提供它。
collection = client.create_collection(name="my_collection", embedding_function=emb_fn)
collection = client.get_collection(name="my_collection", embedding_function=emb_fn)
如果您已经自己生成了嵌入(embeddings),您可以直接将它们加载进去:
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"]
)
注意:
如果您之后想要获取集合(get_collection),您必须使用创建集合时提供的嵌入函数进行获取。
嵌入函数接受文本作为输入,并执行分词和嵌入操作。如果未提供嵌入函数,Chroma 将使用默认的 sentence transfomer 。
您可以了解有关
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。