跳转至

OpenAI

1. 概述

业界第一大语言模型。根据文字提示生成图片。

2. 请求说明

  • 请求方法:POST
  • 请求地址:

    https://gateway.serevixai.ai/v1/images/generations
    

3. 请求参数

3.1 Header 参数

参数名称 类型 必填 说明 示例值
Content-Type string 设置请求头类型,必须为 application/json application/json
Accept string 设置响应类型,建议统一为 application/json application/json
Authorization string 身份验证所需的 API_KEY,格式 Bearer $YOUR_API_KEY Bearer $YOUR_API_KEY

3.2 Body 参数 (application/json)

参数名称类型必填说明示例(默认值)
modelstring要使用的模型 ID。详见模型列表列出的可用版本,如 gpt-image-1.5gpt-image-1.5
promptstring一段描述所需图像的文字gpt-image 描述最大长度为 32000 字符。A cute baby sea otter
nnumber生成图像的数量,必须在 1 到 10 之间。gpt-image-1.5 仅支持 n=1。1
sizestring生成图像的尺寸。gpt-image-1.5支持1024x10241792x10241024x1792gpt-image-1支持1024x10241536x10241024x15361024x1024
qualitystring生成图像的质量选项。gpt-image支持highmediumlowhigh

4. 请求示例

POST /v1/images/generations
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY

{
    "model": "gpt-image-1",
    "prompt": "A cute baby sea otter",
    "n": 1,
    "size": "1024x1024"
}
curl https://gateway.serevixai.ai/v1/images/generations \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer $YOUR_API_KEY" \
    -d "{
    \"model\": \"gpt-image-1\",
    \"prompt\": \"A cute baby sea otter\",
    \"n\": 1,
    \"size\": \"1024x1024\"
}"
package main

import (
    "context"
    "encoding/base64"
    "fmt"
    "os"

    "github.com/openai/openai-go"
    "github.com/openai/openai-go/option"
)

func main() {

    apiKey := "sk-123456789012345678901234567890123456789012345678"
    exampleFilePath := "example.png"

    client := openai.NewClient(
        option.WithAPIKey(apiKey),
        option.WithBaseURL("https://gateway.serevixai.ai/v1"),
    )

    resp, err := client.Images.Generate(
        context.Background(),
        openai.ImageGenerateParams{
            Model:          "gpt-image-1",
            Prompt:         "A cute baby sea otter",
            Size:           "1024x1024",
        },
    )

    if err != nil {
        fmt.Println("error:", err)
        return
    }

    if len(resp.Data) == 0 || resp.Data[0].B64JSON == "" {
        fmt.Println("error: empty b64_json")
        return
    }

    imageData, err := base64.StdEncoding.DecodeString(resp.Data[0].B64JSON)
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    if err := os.WriteFile(exampleFilePath, imageData, 0644); err != nil {
        fmt.Println("error:", err)
        return
    }

    fmt.Println("success to write to file", exampleFilePath)
}
#!/usr/bin/env python3

import base64
from openai import OpenAI

def main():
    api_key = "sk-123456789012345678901234567890123456789012345678"
    example_file_path = "example.png"

    client = OpenAI(
        api_key=api_key,
        base_url="https://gateway.serevixai.ai/v1"
    )

    response = client.images.generate(
        model="gpt-image-1",
        prompt="A cute baby sea otter",
        size="1024x1024",
    )

    if not response.data or not response.data[0].b64_json:
        print("error: empty b64_json")
        return

    image_data = base64.b64decode(response.data[0].b64_json)

    with open(example_file_path, "wb") as f:
        f.write(image_data)

    print("success to write to file", example_file_path)

if __name__ == "__main__":
    main()

5. 响应示例

{
    "created": 1589478378,
    "data": [
        {
            "b64_json": "..."
        },
        {
            "b64_json": "..."
        }
    ]
}