Azure OpenAI Assistant创建失败:400 Unsupported data type错误求助
解决Azure OpenAI创建Assistant时的400 Unsupported data type错误
问题分析
Chat Completion功能正常,但调用Assistant API创建助手时报400 Unsupported data type,核心原因通常是API版本不兼容、模型参数配置错误或工具权限问题。
解决方案
- 确保使用兼容的API版本:Assistant API属于beta功能,需要使用2024-02-15-preview或更高版本的API。检查你的
apiVersion环境变量是否符合要求。 - 修正model字段值:创建Assistant时,
model字段必须填写Azure OpenAI门户中模型部署的名称,而非官方模型ID(如gpt-4o)。例如你的部署名称是gpt-4o-math,就填这个值。 - 确认Code Interpreter权限:在Azure OpenAI门户中,检查对应模型部署是否启用了Code Interpreter功能,且当前模型(gpt-4o)支持该工具。
- 调整客户端初始化参数:AzureOpenAI客户端的
deployment参数仅适用于Chat Completion等基础API,Assistant API不需要该参数,建议移除避免冲突。
修正后的代码示例
const dotenv = require("dotenv"); dotenv.config(); const { AzureOpenAI } = require("openai"); const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; const apiKey = process.env["AZURE_OPENAI_API_KEY"]; const apiVersion = "2024-02-15-preview"; // 指定兼容的预览版API版本 const deploymentName = process.env["DEPLOYMENT"]; // 替换为你的模型部署名称 const client = new AzureOpenAI({ endpoint, apiKey, apiVersion }); async function main() { try { const assistant = await client.beta.assistants.create({ name: "Math Tutor", instructions: "你是一名私人数学导师。编写并运行代码来解答数学问题。", tools: [{ type: "code_interpreter" }], model: deploymentName, // 使用部署名称而非模型ID }); console.log("Assistant创建成功:", assistant); } catch (error) { console.error("创建Assistant出错:", error); } } main();
额外排查步骤
- 登录Azure OpenAI门户,进入「模型部署」页面,确认部署名称的准确性。
- 检查API密钥对应的资源是否有访问Assistant API的RBAC权限。
- 先尝试创建不带Code Interpreter的简单助手,验证基础调用是否正常,逐步排查工具配置问题。
内容的提问来源于stack exchange,提问作者Zisou
相关产品推荐
相关产品推荐

