跳到主要内容
版本:1.4.0

图像生成

图片生成允许应用通过 AISIX 发送提示词生成图片请求,并将调用方认证、模型别名、上游凭证和请求侧策略保留在同一条网关路径中。

AISIX 为配置服务提供方为 OpenAI 的模型别名暴露 OpenAI 图片生成路由。它会解析面向调用方的模型别名,只将 model 字段改写为上游模型 ID,并返回服务提供方的 JSON 图片响应。

本指南将通过 AISIX 发送图片生成请求,并说明该端点的服务提供方要求。

准备工作​

请先准备以下内容:

  • 一个可以处理代理请求的 AISIX 网关。
  • 一个可以访问该模型别名的调用方 API Key。
  • 一个配置服务提供方为 OpenAI,且适配器支持图片生成的模型别名。

导出网关连接和请求值:

# AISIX_PROXY 不含尾部斜杠或 /v1 等端点路径
# 本地快速入门使用 http://127.0.0.1:3000。
export AISIX_PROXY="YOUR_AISIX_GATEWAY_URL"
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
export AISIX_MODEL="image-prod"

发送图像请求​

通过网关代理发送图片生成请求,并在请求体中使用 AISIX 模型别名:

curl -sS -X POST "${AISIX_PROXY}/v1/images/generations" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "'"${AISIX_MODEL}"'",
"prompt": "A minimal illustration of an AI gateway"
}' \
-o aisix-image-response.json

AISIX 会解析模型别名、检查调用方 API Key、对提示词执行受支持的输入策略检查,只将 model 字段改写为上游模型 ID,并将请求转发到上游图片生成端点。

响应保持 OpenAI 图片生成格式:

{
"created": 1710000000,
"data": [
{
"url": "https://example.com/generated-image.png"
}
]
}

某些 OpenAI 图片模型会根据请求和上游模型行为返回 base64 图片数据,而不是 URL。

检查响应是否包含一个图片条目:

jq '.data | length' aisix-image-response.json

命令应输出:

1
备注

该路由不支持 stream: true。图像模型可以用服务器发送事件流式返回部分图片,但 AISIX 尚未中继该数据流,因此会在联系服务提供方之前直接返回 400,而不是静默缓冲:

{
"error": {
"message": "request payload is invalid: `stream` is not supported on /v1/images/generations",
"type": "invalid_request_error"
}
}

设置 stream: false 或未包含 stream 字段的请求不受影响,仍按原有方式转发。

OpenAI 服务提供方要求​

图像生成路由与服务提供方强相关。只有当解析出的模型配置为 OpenAI 服务提供方时,AISIX 才会接受该请求。

这比使用 OpenAI 兼容适配器更严格。某个 OpenAI 兼容厂商可能可以用于 Chat Completions 路由,但仍会在图像生成路由被拒绝,因为其配置的服务提供方不是 OpenAI。

当解析出的模型没有配置为 OpenAI 服务提供方时,AISIX 会在发送到上游前返回 400。

如果解析出的 OpenAI 服务提供方桥接未实现图像生成,AISIX 会返回 501。这是服务提供方能力问题,不是调用方认证问题。

图像生成行为​

输入安全护栏可以在 AISIX 调用服务提供方之前检查提示词。输出安全护栏不会扫描生成后的图片字节。

当上游图像响应包含可识别的 Token 用量时,AISIX 会记录该用量。有些图像模型不会返回 Token 用量,这类成功请求仍会以零 Token 计数显示;但该代理路径不会推断图片数量、尺寸、质量等单图成本细节。

如果安全护栏没有阻断请求,请检查提示词文本是否包含已配置安全护栏可以检查的内容。生成后的图片字节不会被输出安全护栏检查。

如果请求返回 400,请检查请求是否设置了 stream: true,以及解析出的模型是否配置为 OpenAI 服务提供方。如果请求返回 501,请检查解析出的 OpenAI 服务提供方桥接是否支持图像生成。

下一步​

你已经了解 AISIX 如何代理 OpenAI 图像生成请求,以及为什么该能力对服务提供方支持保持较窄范围。接下来可以阅读图像编辑,在同一条网关路径上编辑图片;或阅读语音与音频,了解音频请求通过 AISIX 时的行为。