Skip to content

Chat 格式生图 (gpt-4o)

本文档旨在指导开发者如何通过标准的聊天接口(Chat Completions)调用 gpt-4o-image 模型来生成高质量的图像。


核心概念

与传统的图像生成接口不同,此功能复用了通用的 /v1/chat/completions 接口。您无需调用新的接口,只需在请求中指定模型为 gpt-4o-image,即可将对话内容作为图像描述(Prompt)来生成图片。

  • 路径/v1/chat/completions
  • 方法POST
  • 认证Bearer Token

请求说明

认证方式与通用聊天接口完全一致,请在 HTTP Header 中包含 Authorization 字段。

Header 示例:

Authorization: Bearer YOUR_API_KEY

Body 参数 (application/json)

参数类型是否必需描述
modelstring必须指定为 gpt-4o-image。这是调用图像生成的关键。
messagesarray对话消息列表。通常只包含一条 user 角色的消息。
messages[].rolestring消息发送者的角色,应为 user
messages[].contentstring图像的详细描述(Prompt),例如 "一只可爱的猫咪,戴着宇航员头盔,漂浮在宇宙中,背景是璀璨的星河"。
ninteger希望生成的图像数量。默认为 1
sizestring生成图像的尺寸。支持 1024x1024, 1024x1792, 1792x1024。默认为 1024x1024
qualitystring图像质量。standard 为标准质量,hd 为高清质量。默认为 standard
stylestring图像风格。vivid(生动)使图像更具戏剧性,natural(自然)则更逼真。默认为 vivid
streamboolean是否使用流式传输。对于图像生成,通常建议设置为 false
userstring代表最终用户的唯一标识符,用于监控和防止滥用。

请求 Body 示例

json
{
    "model": "gpt-4o-image",
    "messages": [
        {
            "role": "user",
            "content": "一只可爱的英国短毛猫,穿着西装,坐在咖啡馆里看报纸,窗外是下雨的街道,油画风格。"
        }
    ],
    "n": 1,
    "size": "1024x1024",
    "quality": "hd"
}

响应说明

成功响应 (200 OK)

成功的响应会包含一个数据列表,其中每个对象都包含了生成图像的 URL。

参数类型描述
createdinteger任务创建时的 Unix 时间戳。
dataarray包含生成结果的数组。
data[].urlstring生成的图像 URL。此链接在一段时间后会失效,请及时下载和保存。
data[].revised_promptstring系统为了更好的效果而优化的提示词。

响应 Body 示例

json
{
  "created": 1725000000,
  "data": [
    {
      "revised_prompt": "An adorable British Shorthair cat, dressed in a sharp suit, is sitting in a cozy cafe, engrossed in a newspaper. Rain streaks down the windowpane, revealing a glistening, wet street outside. The entire scene is rendered in a rich oil painting style.",
      "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/..."
    }
  ]
}

注意:请遵守内容安全策略,禁止生成不当内容。违反策略的请求将会失败。


代码示例

cURL

shell
curl --location --request POST 'https://api.rainboxs.com//v1/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "gpt-4o-image",
    "messages": [
        {
            "role": "user",
            "content": "A cat in a tree"
        }
    ]
}'

Python

python
import requests
import json

api_key = "YOUR_API_KEY"
base_url = "https://api.rainboxs.com//v1"

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

data = {
    "model": "gpt-4o-image",
    "messages": [
        {
            "role": "user",
            "content": "A cat in a tree"
        }
    ],
    "n": 1,
    "size": "1024x1024"
}

response = requests.post(f"{base_url}/chat/completions", headers=headers, data=json.dumps(data))

if response.status_code == 200:
    # 打印生成的图片URL
    for item in response.json()['data']:
        print(item['url'])
else:
    print(f"Error: {response.status_code}")
    print(response.text)

RAINBOXS API 文档