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

Azure OpenAI开发报错:AzureKeyCredential不是构造函数求助

解决Azure OpenAI中AzureKeyCredential不是构造函数的错误

开发可读取作品集的聊天机器人项目,采用Azure OpenAI GPT-3.5模型,已完成API密钥与端点配置。通过route.js文件中的GET请求测试API调用时,终端报错:TypeError: _azure_openai__WEBPACK_IMPORTED_MODULE_0__.AzureKeyCredential is not a constructor,尝试查阅官方文档、修改导入语法等方法后问题仍未解决。

原代码如下:

import { AzureCliCredential } from "@azure/identity";
import { OpenAIClient, AzureKeyCredential } from "@azure/openai";
import { NextResponse } from "next/server";

const endpoint = process.env.AZURE_OPENAI_ENDPOINT;
const apiKey = process.env.AZURE_OPENAI_API_KEY;
const model = process.env.AZURE_OPENAI_MODEL;

export async function GET(req) {
  const client = new OpenAIClient(endpoint, new AzureKeyCredential(apiKey));

  const messages = [
    {
      role: "system",
      content: "You are a helpful assistant.",
    },
    {
      role: "user",
      content: "Why is python such a popular coding language?",
    },
  ];

  const response = await client.getChatCompletions(model, messages, {
    maxTokens: 128,
  });

  return NextResponse.json({
    message: response.choices[0].message.content,
  });
}

解决方案

  • 版本适配问题:@azure/openai v4及以上版本中,AzureKeyCredential已从该包迁移至@azure/core-auth包,原导入路径不再有效。
  • 调整导入语句:将AzureKeyCredential的导入源改为@azure/core-auth,保留OpenAIClient从@azure/openai导入。
  • 安装依赖:若项目未安装@azure/core-auth,执行以下命令安装:
    npm install @azure/core-auth
    # 或使用yarn
    yarn add @azure/core-auth
    

修改后的完整代码:

import { AzureCliCredential } from "@azure/identity";
import { OpenAIClient } from "@azure/openai";
import { AzureKeyCredential } from "@azure/core-auth";
import { NextResponse } from "next/server";

const endpoint = process.env.AZURE_OPENAI_ENDPOINT;
const apiKey = process.env.AZURE_OPENAI_API_KEY;
const model = process.env.AZURE_OPENAI_MODEL;

export async function GET(req) {
  const client = new OpenAIClient(endpoint, new AzureKeyCredential(apiKey));

  const messages = [
    {
      role: "system",
      content: "You are a helpful assistant.",
    },
    {
      role: "user",
      content: "Why is python such a popular coding language?",
    },
  ];

  const response = await client.getChatCompletions(model, messages, {
    maxTokens: 128,
  });

  return NextResponse.json({
    message: response.choices[0].message.content,
  });
}

内容的提问来源于stack exchange,提问作者Ryan goh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:08:21