You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js配置Azure OpenAI遇401错误:API密钥问题求助

Node.js切换Azure OpenAI API异常排查方案

核心问题分析

你遇到的两个问题本质是SDK方法调用错误和配置参数未正确匹配Azure要求,以下是具体修复步骤:

1. 修正API调用方法

Azure OpenAI在官方Node.js SDK中,仍使用createChatCompletion方法,而非openai.ChatCompletion.create,后者属于错误的调用方式。

2. 调整配置与请求参数

配置项检查

确保Configuration中的参数完全符合Azure要求:

  • api_base必须是完整的Azure OpenAI端点(格式:https://{你的资源名称}.openai.azure.com/)
  • api_version使用当前有效的版本(例如2024-02-15-preview,避免过时版本)
  • 确认process.env.placeholder_azure_APIKEY已正确加载,可通过console.log(configuration.apiKey)验证是否获取到真实密钥

请求参数修正

调用createChatCompletion时,需将原model参数替换为engine,值为你在Azure门户中创建的部署名称(不是模型名,比如你部署了gpt-35-turbo,部署名可能是gpt-35-turbo-deploy)

3. 修复后的完整代码示例

const { Configuration, OpenAIApi } = require('openai');

const configuration = new Configuration({
  apiKey: process.env.AZURE_OPENAI_API_KEY,
  api_type: "azure",
  api_base: "https://your-resource-name.openai.azure.com/",
  api_version: "2024-02-15-preview",
});
const openai = new OpenAIApi(configuration);

async function chatGPT(prompt, question, deploymentName) {
  try {
    const response = await openai.createChatCompletion({
      engine: deploymentName, // 这里填Azure的部署名称
      messages: [
        { role: 'system', content: prompt },
        { role: 'user', content: question }
      ]
    });
    const completion = response.data.choices[0].message.content;
    return completion;
  } catch (error) {
    // 补充错误日志排查
    console.error("请求错误:", error.response?.data || error.message);
    throw error;
  }
}

4. 额外排查点

  • 若仍报401,检查Azure门户中该API密钥是否绑定了正确的资源,且未被禁用
  • 确认Node.js项目的环境变量是否正确注入,可直接打印process.env.AZURE_OPENAI_API_KEY验证
  • 检查网络环境是否有代理或防火墙拦截了请求,Azure OpenAI端点需要可正常访问

内容的提问来源于stack exchange,提问作者Gabriel Savonitti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:32:54