Azure OpenAI 是 Microsoft Azure 服务,提供来自 OpenAI 的强大语言模型。
这将帮助您开始使用 LangChain 的 AzureOpenAI 补全模型(LLM)。有关 AzureOpenAI 功能和配置选项的详细文档,请参阅 API 参考.
概述
集成详情
| 类 | 包 | 本地 | 可序列化 | PY 支持 | 下载 | 版本 |
|---|---|---|---|---|---|---|
AzureOpenAI | @langchain/openai | ❌ | ✅ | ✅ | !NPM - 下载 | !NPM - 版本 |
设置
要访问 AzureOpenAI 模型,您需要创建一个 Azure 账户,获取 API 密钥,并安装 @langchain/openai 集成包。
凭证
访问 azure.microsoft.com 注册 AzureOpenAI 并生成 API 密钥。
您还需要部署一个 Azure OpenAI 实例。您可以按照 本指南.
在 Azure 门户上部署一个版本。实例运行后,请确保您有实例名称和密钥。您可以在 Azure 门户中实例的"密钥和终结点"部分找到密钥。
如果您使用的是 Node.js,可以定义以下环境变量来使用该服务:
AZURE_OPENAI_API_INSTANCE_NAME=
AZURE_OPENAI_API_DEPLOYMENT_NAME=
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_API_VERSION="2024-02-01"
或者,您可以直接将值传递给 AzureOpenAI constructor.
如果您想获取模型调用的自动化追踪,还可以设置您的 LangSmith API 密钥(取消下面的注释即可):
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"
安装
LangChain AzureOpenAI 集成位于 @langchain/openai package:
npm install @langchain/openai @langchain/core
yarn add @langchain/openai @langchain/core
pnpm add @langchain/openai @langchain/core
实例化
现在我们可以实例化模型对象并生成聊天补全:
const llm = new AzureOpenAI({
model: "gpt-3.5-turbo-instruct",
azureOpenAIApiKey: "<your_key>", // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiInstanceName: "<your_instance_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
azureOpenAIApiDeploymentName: "<your_deployment_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
azureOpenAIApiVersion: "<api_version>", // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
temperature: 0,
maxTokens: undefined,
timeout: undefined,
maxRetries: 2,
// other params...
})
调用
const inputText = "AzureOpenAI is an AI company that "
const completion = await llm.invoke(inputText)
completion
provides AI solutions to businesses. They offer a range of services including natural language processing, computer vision, and machine learning. Their solutions are designed to help businesses automate processes, gain insights from data, and improve decision-making. AzureOpenAI also offers consulting services to help businesses identify and implement the best AI solutions for their specific needs. They work with a variety of industries, including healthcare, finance, and retail. With their expertise in AI and their partnership with Microsoft Azure, AzureOpenAI is a trusted provider of AI solutions for businesses looking to stay ahead in the rapidly evolving world of technology.
使用 Azure 托管标识
如果您使用 Azure 托管标识,可以这样配置凭证:
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
const credentials = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
credentials,
"https://cognitiveservices.azure.com/.default"
);
const managedIdentityLLM = new AzureOpenAI({
azureADTokenProvider,
azureOpenAIApiInstanceName: "<your_instance_name>",
azureOpenAIApiDeploymentName: "<your_deployment_name>",
azureOpenAIApiVersion: "<api_version>",
});
使用不同的域名
如果你的实例托管在默认域名以外的其他域名下 openai.azure.com,你需要使用备用 AZURE_OPENAI_BASE_PATH 环境变量。 例如,以下是你如何连接到该域名的方法 https://westeurope.api.microsoft.com/openai/deployments/{DEPLOYMENT_NAME}:
const differentDomainLLM = new AzureOpenAI({
azureOpenAIApiKey: "<your_key>", // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiDeploymentName: "<your_deployment_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
azureOpenAIApiVersion: "<api_version>", // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
azureOpenAIBasePath:
"https://westeurope.api.microsoft.com/openai/deployments", // In Node.js defaults to process.env.AZURE_OPENAI_BASE_PATH
});
从 Azure OpenAI SDK 迁移
如果你正在使用已弃用的 Azure OpenAI SDK 和 @langchain/azure-openai 包,你可以按照以下步骤更新代码以使用新的 Azure 集成:
- 安装新的
@langchain/openai包并删除之前的@langchain/azure-openaipackage:
npm install @langchain/openai
npm uninstall @langchain/azure-openai
- 更新你的导入以使用新的
AzureOpenAI和AzureChatOpenAI类从@langchain/openaipackage:
- 更新你的代码以使用新的
AzureOpenAI和AzureChatOpenAI类并传递所需参数:
const model = new AzureOpenAI({
azureOpenAIApiKey: "<your_key>",
azureOpenAIApiInstanceName: "<your_instance_name>",
azureOpenAIApiDeploymentName: "<your_deployment_name>",
azureOpenAIApiVersion: "<api_version>",
});
注意构造函数现在需要 azureOpenAIApiInstanceName 参数而不是 azureOpenAIEndpoint 参数,并添加了 azureOpenAIApiVersion 参数以指定 API 版本。
- - 如果你使用的是 Azure 托管标识,你现在需要使用
azureADTokenProvider参数传递给构造函数而不是credentials,请参阅 Azure 托管标识 部分了解更多详情。 - - 如果你使用的是环境变量,你现在必须设置
AZURE_OPENAI_API_INSTANCE_NAME环境变量而不是AZURE_OPENAI_API_ENDPOINT,并添加AZURE_OPENAI_API_VERSION环境变量以指定 API 版本。
API 参考
有关所有 AzureOpenAI 功能和配置的详细文档,请访问 API 参考.