跳到主要内容

图像生成

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

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

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

准备工作

请先准备以下内容:

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

发送图像请求

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

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

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

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

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

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

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

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

命令应输出:

1

OpenAI 服务提供方要求

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

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

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

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

图像生成行为

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

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

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

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

下一步

你已经了解 AISIX 如何代理 OpenAI 图像生成请求,以及为什么该能力对服务提供方支持保持较窄范围。接下来请阅读语音与音频,了解音频请求通过 AISIX 时的行为。