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

Azure OpenAI gpt-35-turbo调用getCompletions报错,求主题生成问题方案

解决Azure OpenAI API OperationNotSupported错误并实现主题生成问题功能

报错原因

gpt-35-turbo属于聊天类模型,仅支持聊天补全接口(Chat Completions),不兼容传统的文本补全接口(Completions),你调用的getCompletions属于后者,因此触发错误。

解决步骤及代码实现

1. 替换接口方法

将getCompletions替换为getChatCompletions,这是聊天模型专用的接口。

2. 调整Prompt格式

聊天接口要求以消息数组的形式传递指令,格式为[{ role: "user", content: "你的需求描述" }],明确要求生成2个指定主题的问题。

3. 修改结果解析逻辑

聊天接口返回的结果结构与补全接口不同,需从choices[0].message.content中提取生成的内容。

完整修改后的代码

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");

(async function main() {
  const endpoint = "https://profileforslack.openai.azure.com/";
  const key = "你的Azure OpenAI密钥"; // 填入实际密钥
  const client = new OpenAIClient(endpoint, new AzureKeyCredential(key));

  // 指定要生成问题的主题
  const targetTopic = "Games";
  // 构造聊天格式的prompt
  const chatMessages = [
    {
      role: "user",
      content: `请围绕主题「${targetTopic}」生成2个相关问题`
    }
  ];

  const deploymentName = "gpt"; // 确保此部署对应的是gpt-35-turbo模型
  try {
    const { choices } = await client.getChatCompletions(
      deploymentName,
      chatMessages
    );
    const generatedContent = choices[0].message.content;
    console.log(`生成的问题:\n${generatedContent}`);
  } catch (err) {
    console.error("请求出错:", err);
  }
})();

注意事项

  • 确认deploymentName对应的Azure OpenAI部署是gpt-35-turbo模型,若部署名称不同需对应修改。
  • 确保填入的key是有效的Azure OpenAI密钥,且该密钥拥有对应部署的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:47