[如何从零开始使用Chroma向量存储,增强AI生产力]

153 阅读2分钟

引言

在现代AI应用中,向量存储成为了处理大量数据的一种重要工具。Chroma作为一个AI原生的开源向量数据库,能够帮助开发者提升生产力和快乐。本篇文章将带你一步步了解Chroma向量存储的基础使用,并展示如何通过代码示例实现基本的增删改查操作。

主要内容

安装和设置

首先,你需要安装langchain-chroma集成包:

pip install -qU "langchain-chroma>=0.1.2"

Chroma向量存储无需使用凭据,只需安装上述包即可开始使用。如果你希望对模型调用进行最优的自动化追踪,可以设置你的LangSmith API密钥:

import os
from getpass import getpass

# os.environ["LANGSMITH_API_KEY"] = getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

基础初始化

可以通过以下代码进行Chroma的基本初始化,并使用OpenAI或HuggingFace的嵌入模型:

import os
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma

# 使用API代理服务提高访问稳定性
os.environ["OPENAI_API_KEY"] = getpass("Enter your OpenAI API key: ")

embeddings = OpenAIEmbeddings(model="text-embedding-3-large")

vector_store = Chroma(
    collection_name="example_collection",
    embedding_function=embeddings,
    persist_directory="./chroma_langchain_db",  # 数据保存的本地目录,可选
)

管理向量存储

一旦创建了向量存储,你可以通过以下方式添加、更新和删除其中的项。

添加文档

from langchain_core.documents import Document
from uuid import uuid4

document_1 = Document(
    page_content="I had chocolate chip pancakes for breakfast.",
    metadata={"source": "tweet"},
    id=1,
)

documents = [document_1]
uuids = [str(uuid4()) for _ in range(len(documents))]

vector_store.add_documents(documents=documents, ids=uuids)

查询向量存储

对于已保存的文档,您可以进行相似度搜索:

results = vector_store.similarity_search(
    "What did I have for breakfast?", k=1, filter={"source": "tweet"}
)
for res in results:
    print(f"* {res.page_content} [{res.metadata}]")

常见问题和解决方案

  • 网络限制:某些地区可能面临API访问问题,建议使用API代理服务以提高访问稳定性。
  • 数据规模:对于大量数据的存储和更新,建议分批处理以优化性能。

总结和进一步学习资源

Chroma向量存储提供了灵活的API来满足多样化的数据处理需求。要进一步深入了解其高级功能,可以参考以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---