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

如何配置OpenAI createChatCompletion返回指定结构的JSON输出?

配置OpenAI API生成指定格式的Material Design调色板JSON

一、通过对话示例固定输出格式

要让模型严格返回你指定的JSON结构,最直接的方式是在对话上下文里加入2-3组用户请求-助手响应的示例,明确格式要求。你需要在现有messages数组中,在system提示之后、当前用户prompt之前插入这些示例对话。

示例对话可参考以下结构:

// 示例1:浪漫风格品牌
{"role": "user", "content": "品牌名:浪漫花店"},
{"role": "assistant", "content": `{
  "primary": "#7B2CBF",
  "onPrimary": "#FFFFFF",
  "secondary": "#F093FB",
  "onSecondary": "#000000",
  "surface": "#FFFFFF",
  "onSurface": "#1D1B20",
  "background": "#FDF4FF",
  "onBackground": "#1D1B20"
}`},
// 示例2:科技风格氛围
{"role": "user", "content": "氛围:科技感十足"},
{"role": "assistant", "content": `{
  "primary": "#0693E3",
  "onPrimary": "#FFFFFF",
  "secondary": "#74DEFF",
  "onSecondary": "#000000",
  "surface": "#FFFFFF",
  "onSurface": "#1D1B20",
  "background": "#E8F7FF",
  "onBackground": "#1D1B20"
}`}

这些示例会让模型清晰理解需要返回的字段、格式和配色逻辑,确保后续生成的结果严格匹配要求。

二、seed参数的实现方法

seed参数是gpt-3.5-turbo-1106及更高版本模型支持的参数,作用是固定生成的随机性基准——相同的prompt、seed值和其他参数设置下,模型会返回一致的结果。

使用时只需在createChatCompletion的配置对象中添加seed字段,赋值为任意整数(比如42、123等):

seed: 42

注意:如果需要完全一致的输出,建议将temperature调低(比如设为0);保留temperature:0.9则能在保证风格多样性的同时,让相同seed下的结果保持逻辑一致。

修改后的完整代码

const completion = await openai.createChatCompletion({
  messages: [
    {"role": "system", "content": "你会收到品牌名称或氛围描述,任务是生成符合指定结构的Material Design网站调色板JSON,必须严格遵循给定的字段和格式,不要添加任何额外说明文字。"},
    // 示例1:浪漫风格品牌
    {"role": "user", "content": "品牌名:浪漫花店"},
    {"role": "assistant", "content": `{
      "primary": "#7B2CBF",
      "onPrimary": "#FFFFFF",
      "secondary": "#F093FB",
      "onSecondary": "#000000",
      "surface": "#FFFFFF",
      "onSurface": "#1D1B20",
      "background": "#FDF4FF",
      "onBackground": "#1D1B20"
    }`},
    // 示例2:科技风格氛围
    {"role": "user", "content": "氛围:科技感十足"},
    {"role": "assistant", "content": `{
      "primary": "#0693E3",
      "onPrimary": "#FFFFFF",
      "secondary": "#74DEFF",
      "onSecondary": "#000000",
      "surface": "#FFFFFF",
      "onSurface": "#1D1B20",
      "background": "#E8F7FF",
      "onBackground": "#1D1B20"
    }`},
    // 当前用户请求
    {"role": "user", "content": prompt},
  ],
  model: "gpt-3.5-turbo-1106",
  temperature: 0.9,
  response_format: { type: "json_object" },
  seed: 42 // 添加seed参数固定随机性基准
}); 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:32:33