适用范围:历史网关契约
本页是已核查的网关原生多模态图片契约,适用于明确支持此协议的相应模型。模型名中出现 Gemini 并不足以证明应走这条路径。
历史网关路径为 POST /v1beta/models/{model}:generateContent,使用 Bearer。其他直连服务的同名接口可能采用不同鉴权,不可照搬。
组织内容与图片配置
{
"contents": [
{
"role": "user",
"parts": [
{"text": "参考这张图片的主体,生成竖版构图"},
{
"inlineData": {
"mimeType": "image/png",
"data": "BASE64_WITHOUT_DATA_URL_PREFIX"
}
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "9:16",
"imageSize": "4K"
}
}
}
此示例不是可直接运行的真实媒体请求;Base64、比例和 4K 支持均需按当前模型替换与确认。真正提交可能收费。
- 文生图:
parts中只保留文本。 - 单图参考:追加一项
inlineData。 - 多图参考:按用户引用次序追加多项;模型数量上限需另外确认。
data为纯 Base64,不带data:image/png;base64,前缀。mimeType必须与真实字节一致。限制解码体积,使用文件有效字节,不发送整块底层缓冲区。
读取原生结果
从 candidates[].content.parts[] 读取文本或 inlineData。如实际响应采用 inline_data、mime_type 等命名,由明确的兼容解析处理;不要假定只有第一个 part 才是图片。
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "BASE64_IMAGE_BYTES"
}
}
]
}
}
]
}
以上是响应结构示意。实际接入还要处理无图片、拒绝生成、业务错误及未知响应。提取图片后仍需完整解码,核查真实尺寸与数量。
与兼容图片接口的区别
| 原生多模态图片 | 兼容图片生成 / 编辑 |
|---|---|
contents[].parts |
prompt 与图片文件字段 |
generationConfig.imageConfig |
size 等当前支持字段 |
| JSON 内联 Base64 参考素材 | 编辑通常为 multipart 字节 |
candidates[].content.parts[] |
常见为 data[].url/b64_json |
不要同时发送两套字段,也不要将一次路径的成功扩展为另一种协议已验证。