无密钥身份验证方法

已完成

在对 Azure OpenAI for JavaScript 的无密钥身份验证中,可以使用 Azure 的托管标识或服务主体进行身份验证,而不是硬编码 API 密钥或其他凭据。 这是通过 DefaultAzureCredentialManagedIdentityCredential 类完成的,该类提供了一种安全且简化的方式来获取对 Azure 服务进行身份验证所需的令牌。 下面是其实际工作原理:

  1. 设置 Azure 环境:确保使用托管标识正确配置 Azure 环境。
  2. 初始化凭据:使用 Azure Identity SDK for JavaScript 中的 DefaultAzureCredential 类或 ManagedIdentityCredential 类无缝处理身份验证过程。

下面是一个示例代码片段:

import { AzureOpenAI } from 'openai';
import { getBearerTokenProvider, DefaultAzureCredential } from '@azure/identity';

// Make sure to set AZURE_OPENAI_ENDPOINT with the endpoint of your Azure resource.

const credential = new DefaultAzureCredential();
const scope = 'https://cognitiveservices.azure.com/.default';
const azureADTokenProvider = getBearerTokenProvider(credential, scope);

// Create client instance
// 3) Create an Azure OpenAI client
const openai = new AzureOpenAI({ azureADTokenProvider });

// 4) Make API call and print response
const result = await openai.chat.completions.create({
  model: 'gpt-4-1106-preview',
  messages: [{ role: 'user', content: 'Say hello!' }],
});

console.log(result.choices[0]!.message?.content);
  1. 创建客户端实例:使用终结点和从 DefaultAzureCredential获取的凭据实例化 AzureOpenAI
  2. 进行 API 调用:使用客户端安全地与 Azure OpenAI 服务交互,而无需显式处理敏感凭据。