SDK 图片输入与结果
发送文件或 Base64 附件,按模型视觉能力检查格式、数量和大小。
This page has not been translated into English yet. The original Chinese version is shown below.
SDK 消息支持 file 和 blob 两类图片附件。file 由 runtime 从磁盘读取并编码;blob 直接提供已有 Base64 数据,适合应用已拿到截图或图片内容的情况。
选择附件方式
await session.send({
prompt: "Describe the layout in this screenshot.",
attachments: [{
type: "file",
path: "/absolute/path/to/screenshot.png",
}],
});file 必须使用绝对路径,并且文件要能被 runtime 读取。连接远程 runtime 时,不要把只存在于 SDK 客户端机器上的路径当作远程文件。
已有图片数据时:
await session.send({
prompt: "Describe the layout in this screenshot.",
attachments: [{
type: "blob",
data: base64ImageData,
mimeType: "image/png",
displayName: "screenshot.png",
}],
});这里假定应用已提供 base64ImageData。data 是 Base64 数据,mimeType 描述实际格式;这种方式无需为了传输先写临时图片文件。消息接受与生成完成不同,调用和排队语义见 Steering。
先检查模型视觉能力
| 模型字段 | 检查内容 |
|---|---|
capabilities.supports.vision | 是否支持图片理解 |
capabilities.limits.vision.supported_media_types | 接受的 MIME 类型 |
capabilities.limits.vision.max_prompt_images | 单次 prompt 的图片数量上限 |
capabilities.limits.vision.max_prompt_image_size | 单张图片字节数上限 |
官方提到 JPG、PNG、GIF 等常见格式,并建议优先 PNG 或 JPEG。具体支持集合和上限应读模型能力,不能固定为所有模型共同数值。SVG 不属于这里支持的图片处理格式。
自动缩放不保证每张图都发送
runtime 会对超过模型尺寸或大小限制的图片保持比例缩放或降低质量;处理后仍无法符合要求的图片会被跳过,不发送给模型。包含小字或细节的截图被压缩后可能损失信息,因此自动处理不能替代应用确认附件是否适合任务。
一条消息可带多张附件,但仍受该模型 max_prompt_images 限制。不具备 vision 能力的模型不会因附加图片就获得视觉理解。
接收工具返回的图片
工具截图或生成图表可在 tool.execution_complete 的结果中返回 image 内容块:type 为 image,data 为 Base64,mimeType 为对应 MIME 类型。前端应按结构化内容块呈现,不把它误当助手的普通文本增量。工具结果和完整事件见工具交互事件。