如何为Azure OpenAI gpt-4o-mini编写结构化输出POST请求?
针对gpt-4o-mini-2024-07-18的正确REST API及结构化输出请求方案
必须使用Chat Completions REST API,Completion API仅适用于文本补全类模型(如gpt-35-turbo-instruct),gpt-4o-mini属于聊天模型,因此调用Completion API会触发
completion operation does not work with the specified model错误。关于“Unsupported data type”错误,是因为请求体格式不符合Chat Completions API要求,同时结构化输出需要正确配置响应格式参数。以下是正确的请求示例:
正确的POST请求配置
请求端点
https://{你的资源名称}.openai.azure.com/openai/deployments/{你的部署名称}/chat/completions?api-version=2024-08-01-preview
注意:api-version需使用支持结构化输出的版本,2024-08-01-preview及以上版本支持
response_format的schema配置。
请求头
Content-Type: application/json api-key: {你的API密钥}
请求体(结构化输出示例)
如果需要返回严格的JSON结构,可使用以下格式:
{ "model": "gpt-4o-mini-2024-07-18", "messages": [ { "role": "system", "content": "你是一个结构化数据生成工具,所有输出必须严格符合指定的JSON格式,不得包含任何额外内容。" }, { "role": "user", "content": "请将以下文本转换为结构化JSON:用户姓名张三,年龄30,职业软件工程师" } ], "response_format": { "type": "json_object", "schema": { "type": "object", "properties": { "姓名": {"type": "string"}, "年龄": {"type": "integer"}, "职业": {"type": "string"} }, "required": ["姓名", "年龄", "职业"] } } }
关键注意事项
- 确保模型名称正确:使用
gpt-4o-mini-2024-07-18,不要添加多余后缀(如你之前写的gpt-4omini-2024-07-18name) - 请求体必须包含
messages数组,每个元素需指定role(system/user/assistant)和content response_format参数是实现结构化输出的核心,通过schema可以定义严格的输出结构,避免格式混乱
内容的提问来源于stack exchange,提问作者Franck Dernoncourt
相关产品推荐
相关产品推荐

