利用Zilliz Cloud Pipelines构建LangChain检索器

技术背景介绍

Zilliz Cloud Pipelines是一种能够将非结构化数据转换为可搜索向量集合的方法。它们将数据的嵌入、摄取、搜索和删除过程串联起来,以便于数据的管理和查询。Zilliz Cloud Pipelines可以通过Zilliz Cloud控制台以及RestFul APIs进行访问。

本文将演示如何准备Zilliz Cloud Pipelines并通过LangChain Retriever进行使用。

核心原理解析

Zilliz Cloud Pipelines通过执行一系列操作来处理非结构化数据,这些操作包括:

  1. 数据库设置:注册Zilliz Cloud并创建集群。
  2. 创建Pipelines:包括文档的摄取、搜索和删除等操作。

代码实现演示

首先,确保你已经注册并创建了Zilliz Cloud的集群。然后按照以下步骤操作。

安装依赖

%pip install --upgrade --quiet langchain-milvus

导入并初始化检索器

from langchain_milvus import ZillizCloudPipelineRetriever

retriever = ZillizCloudPipelineRetriever(
    pipeline_ids={
        "ingestion": "<YOUR_INGESTION_PIPELINE_ID>",  # 如果不需要添加文档,可以跳过这行
        "search": "<YOUR_SEARCH_PIPELINE_ID>",        # 如果不需要获取相关文档,可以跳过这行
        "deletion": "<YOUR_DELETION_PIPELINE_ID>",    # 如果不需要删除文档,可以跳过这行
    },
    token="<YOUR_ZILLIZ_CLOUD_API_KEY>",
)

添加文档

通过文本摄取管道添加文本
retriever.add_texts(
    texts=["示例文本1", "示例文本2"],
    metadata={"example_field": "example_value"}  # 如果摄取管道不需要预留字段,可以跳过这行
)
通过文档摄取管道添加文档URL
retriever.add_doc_url(
    doc_url="https://publicdataset.zillizcloud.com/milvus_doc.md",
    metadata={"version": "v2.3.x"}
)

获取相关文档

docs = retriever.get_relevant_documents(
    query="用户可以通过复杂的布尔表达式删除实体吗?",
    top_k=5
)

for doc in docs:
    print(doc.page_content)

应用场景分析

Zilliz Cloud Pipelines适用于需要处理大量非结构化数据的应用场景,例如:

  • 大规模文本数据的检索和分析
  • 文档管理系统中的文档搜索功能
  • 渠道中的数据摄取和处理

实践建议

  1. 有效管理Pipeline:确保只有需要的Pipeline处于活跃状态,以减少资源消耗。
  2. 优化查询性能:在实际应用中,根据需要调整查询的top_k值和其他参数,以确保获取到的结果满足需求。
  3. 定期维护数据:定期删除不再需要的文档,以保持数据库的整洁和高效。

如果遇到问题欢迎在评论区交流。

—END—

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值