利用Azure AI Search和OpenAI实现高效文档检索生成 (RAG)

55 阅读2分钟

引言

在现代信息密集的时代,快速、准确地检索和生成文档内容(RAG,即Retrieval-Augmented Generation)变得尤为重要。通过结合Azure AI Search和OpenAI的强大功能,我们可以创建一个高效、智能的文档处理系统。本文将引导您了解如何使用Azure AI Search作为向量存储,以及如何使用Azure OpenAI进行聊天和嵌入。

主要内容

环境准备

在开始之前,您需要确保拥有以下Azure资源:

  • Azure AI Search
  • Azure OpenAI

环境变量设置

确保设置以下环境变量才能正常运行:

必需的变量:

  • AZURE_SEARCH_ENDPOINT:Azure AI Search服务的端点。
  • AZURE_SEARCH_KEY:Azure AI Search服务的API密钥。
  • AZURE_OPENAI_ENDPOINT:Azure OpenAI服务的端点。
  • AZURE_OPENAI_API_KEY:Azure OpenAI服务的API密钥。
  • AZURE_EMBEDDINGS_DEPLOYMENT:用于嵌入的Azure OpenAI部署名称。
  • AZURE_CHAT_DEPLOYMENT:用于聊天的Azure OpenAI部署名称。

可选的变量:

  • AZURE_SEARCH_INDEX_NAME:使用的Azure AI Search索引名称。如果未提供,将创建名为“rag-azure-search”的索引。
  • OPENAI_API_VERSION:使用的Azure OpenAI API版本,默认为“2023-05-15”。

使用步骤

首先,确保安装了LangChain CLI:

pip install -U langchain-cli

创建新的LangChain项目并安装rag-azure-search包:

langchain app new my-app --package rag-azure-search

或者在现有项目中添加:

langchain app add rag-azure-search

server.py文件中添加以下代码:

from rag_azure_search import chain as rag_azure_search_chain

add_routes(app, rag_azure_search_chain, path="/rag-azure-search")

配置LangSmith(可选)

LangSmith可帮助追踪、监控和调试LangChain应用。您可以在此处注册。

设置环境变量:

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>

启动LangServe实例:

langchain serve

访问本地运行的服务器:http://localhost:8000

代码示例

以下是如何通过代码访问模板的示例:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/rag-azure-search") # 使用API代理服务提高访问稳定性

常见问题和解决方案

  1. 网络访问问题: 由于某些地区的网络限制,建议使用API代理服务来提高访问稳定性。

  2. 环境变量设置错误: 检查环境变量确保其正确设置,尤其是API密钥和端点。

总结和进一步学习资源

通过本文,您了解了如何集成Azure AI Search和OpenAI进行文档检索生成。建议进一步阅读Azure和OpenAI的官方文档,以及LangChain和LangSmith的使用指南来提升您的应用开发能力。

参考资料

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

---END---