如何在 Windows 上部署 Chroma 并与 LangChain 集成

1. Chroma 是什么?

Chroma 是一个开源的向量数据库,专为 AI 应用设计,特别是用于存储和检索嵌入向量(embedding vectors)。它允许开发者高效地存储、索引和查询大量的文本嵌入或其他向量数据。Chroma 特别适合构建基于语义搜索、推荐系统和 RAG(检索增强生成)等应用程序,可以作为 LLM(大型语言模型)应用的记忆组件。

2. win 本地如何部署 Chroma?

在 Windows 上部署 Chroma 有几种方式,以下是最常用的方法:

方法一:使用 pip 安装(Python 客户端)

  1. 确保已安装 Python(建议 3.8+)

  2. 打开命令提示符或 PowerShell,运行:

    pip install chromadb
    
  3. 这将安装 Chroma 的 Python 客户端,默认以嵌入式模式运行

方法二:使用 Docker 部署(服务器模式)

  1. 安装 Docker Desktop for Windows

  2. 打开命令提示符或 PowerShell,运行:

    docker pull ghcr.io/chroma-core/chroma:latest
    
  3. 启动 Chroma 服务器:

    docker run -p 8000:8000 ghcr.io/chroma-core/chroma:latest
    
  4. 安装 Python 客户端来连接服务器:

    pip install chromadb
    

3. LangChain 如何使用 Chroma?

LangChain 提供了与 Chroma 的集成,可以轻松将其用作向量存储。以下是基本使用方法:

from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.document_loaders import TextLoader

# 1. 加载文档
loader = TextLoader("path/to/your/document.txt")
documents = loader.load()

# 2. 分割文档
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# 3. 初始化嵌入模型
embedding_function = OpenAIEmbeddings()

# 4. 创建 Chroma 向量存储
db = Chroma.from_documents(
    documents=docs,
    embedding=embedding_function,
    persist_directory="./chroma_db"  # 可选:持久化存储路径
)

# 5. 搜索相似内容
query = "你的查询问题"
docs = db.similarity_search(query)
print(docs[0].page_content)

# 6. 使用 LangChain 链式调用 (可选)
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

qa = RetrievalQA.from_chain_type(
    llm=OpenAI(),
    chain_type="stuff",
    retriever=db.as_retriever()
)

result = qa.run(query)
print(result)

如果您使用的是客户端-服务器模式,可以这样连接:

from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings

embedding_function = OpenAIEmbeddings()

# 连接到运行中的 Chroma 服务器
db = Chroma(
    client_settings=chromadb.config.Settings(
        chroma_api_impl="rest",
        chroma_server_host="localhost",
        chroma_server_http_port="8000"
    ),
    embedding_function=embedding_function,
    collection_name="your_collection"
)

这是基础用法,您可以根据需求进一步定制搜索参数、过滤条件以及与其他 LangChain 组件的集成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Agent首席体验官

您的打赏是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值