携手Azure AI搜索:掌握Azure AI Search Retriever的强大功能

57 阅读3分钟

携手Azure AI搜索:掌握Azure AI Search Retriever的强大功能

引言

随着大数据的激增和信息检索需求的不断增加,能够从海量信息中有效检索所需数据变得尤为关键。微软推出的Azure AI Search(前身为Azure Cognitive Search)提供了这样的服务。它支持大规模的向量、关键字和混合查询。本篇文章将深入介绍Azure AI Search Retriever,一个与Azure AI Search API无缝集成的模块,帮助开发者从非结构化查询中提取文档。

主要内容

Azure AI Search Retriever概述

Azure AI Search Retriever是专为Azure AI Search最新版本API(2023-11-01稳定版)打造的集成模块。通过向量索引和查询功能,它可以从非结构化查询中高效地返回相关文档。在这篇文章中,我们将探讨如何开始使用Azure AI Search Retriever,并提供详细的代码示例。

环境配置和安装

  1. 设置Azure AI Search服务:首先,您需要一个Azure AI Search服务。可以通过Azure的免费试用创建一个服务。注意,免费服务的配额较低,但足以用于本文提供的代码示例。

  2. 创建向量索引:确保已有带向量字段的索引,可以通过Azure AI Search REST API或向量存储模块创建。

  3. 配置API密钥:创建搜索服务时会生成API密钥,查询索引用查询API密钥,管理操作用管理员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>"

安装依赖包

Azure AI Search Retriever模块位于langchain-community包中,我们需要额外安装一些依赖项:

%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

代码示例

from langchain_community.retrievers import AzureAISearchRetriever

retriever = AzureAISearchRetriever(
    content_key="content", top_k=1, index_name="langchain-vector-demo"
)

# 使用API代理服务提高访问稳定性
retriever.invoke("this is my unstructured query string")

向量索引的创建与文档检索

  1. 使用Azure OpenAI嵌入模型将文档转换成嵌入存储到Azure AI Search向量存储中。
  2. 加载数据并分割,以创建新向量存储。
  3. 创建检索器并使用它来检索与查询相关的文档。
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter

loader = TextLoader("../../how_to/state_of_the_union.txt", encoding="utf-8")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=400, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

retriever = AzureAISearchRetriever(
    content_key="content", top_k=1, index_name="langchain-vector-demo"
)

retriever.invoke("does the president have a plan for covid-19?")

常见问题和解决方案

  • 网络限制问题:由于某些地区的网络限制,访问Azure API可能不稳定。建议使用API代理服务来确保访问的稳定性。

  • API配置错误:请确保API密钥和服务名称配置正确,错误的配置会导致无法成功检索数据。

总结和进一步学习资源

Azure AI Search Retriever简化了信息检索的过程,其强大的向量索引和查询能力使其在大数据环境下尤为有效。如果您想深入学习Azure AI Search的更多功能,推荐访问以下资源:

参考资料

  1. Azure AI Search
  2. Langchain社区文档
  3. OpenAI API文档

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

---END---