变换
图像:压缩响应图片
重新编码响应及流中的 assistant 图片和工具图片。
对于 JPEG、PNG 和 WebP,变换根据图片字节检测实际格式。保留有效原始字节时,变换会纠正不匹配的 MIME 类型。无效图片保持不变。
行为
此变换重新编码 assistant 图片和工具结果中的图片。它也处理函数工具参数 JSON 中的图片 data URL 和图片块。配置选项与 image_compress_input 相同。
流中的不完整函数参数片段保持不变。完整的终态参数使用压缩后的图片。自定义工具的自由文本及其他 Base64 保持不变。
如果图片带有 alpha 通道,且选定的输出格式为 jpg,此变换会保留原始字节、媒体类型和尺寸。即使所有像素均不透明,也适用此规则。此规则优先于 max_edge_px 和 skip_if_smaller,同时适用于普通响应和流式响应。支持 alpha 通道的格式仍按配置压缩。
参考信息
| 属性 | 值 |
|---|---|
| 类型 ID | image_compress_output |
| 阶段 | response |
| 范围 | Provider, API 密钥 |
适用场景
- 图像生成响应体积大,客户端为传输付出成本。
- 你希望输出格式统一(例如 WebP),与上游格式无关。
配置
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
output_format | string | 否 | "original" | original、jpg、jpegxl_lossless、jpegxl、webp_lossless、webp 或 png。 |
max_edge_px | integer | 否 | — | 最大宽度或高度(像素)。省略则保留原始尺寸。 |
jpeg_quality | integer | 否 | 80 | JPEG 输出的质量,1-100。 |
jpegxl_quality | integer | 否 | 90 | 有损 JPEG XL 输出的质量,1-99。 |
jpegxl_effort | integer | 否 | 7 | JPEG XL 编码力度,1-10。数值越高压缩越慢。 |
webp_quality | integer | 否 | 80 | 有损 WebP 输出的质量,1-100。 |
skip_if_smaller | boolean | 否 | true | 压缩没有减小体积时保留原图。 |
示例规则
{
"transform": "image_compress_output",
"enabled": true,
"phase": "response",
"models": [
"*image*"
],
"config": {
"output_format": "webp",
"webp_quality": 80
}
}