1. 概述
使用 Gemini 原生 GenerateContent 协议,将图片数据与编辑指令一并提交。
baseUrl:https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1betacompletionsPath:/models/{model}:{invokeFuncName}invokeFuncName:generateContent- 标准地址:
POST {baseUrl}{completionsPath} - 鉴权:
Authorization: Bearer <api_key> - 请求体:标准 Gemini GenerateContent JSON
地址拼接:{baseUrl}{completionsPath},其中 invokeFuncName为:generateContent ,model
为模型编码,例如:gemini-3.1-flash-lite-image,即 https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1beta/models/gemini-3.1-flash-lite-image:generateContent
2. 鉴权
请求 Header 中需携带平台生成的 API Key:
HTTP
Authorization: Bearer <api_key>
Content-Type: application/json
Accept: application/json
3. 请求与响应示例
请求地址:https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1beta/models/gemini-3.1-flash-lite-image:generateContent
Header 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
Content-Type |
string | 是 | 示例:application/json |
Authorization |
string | 是 | 示例:Bearer {YOUR_API_KEY} |
Body 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
contents |
array<object> | 是 | 必需。与模型当前对话的内容。 |
contents[].role |
string | 否 | 消息角色。多轮对话时必须交替出现 user/model,单轮请求可省略。 |
contents[].parts |
array<object> | 是 | |
contents[].parts[].text |
string | 否 | 文本内容 |
contents[].parts[].inlineData |
object | 否 | |
contents[].parts[].inlineData.mimeType |
string | 是 | 输入图片的 MIME 类型。 |
contents[].parts[].inlineData.data |
string | 是 | 输入的图片信息,Base64 编码。 |
generationConfig |
object | 是 | |
generationConfig.responseModalities |
array<string> | 是 | 可选。所请求的响应模态。表示模型可以返回且应在响应中预期的模态集合。这与回答的模态完全匹配。 一个模型可能支持多种模态组合。如果请求的模态与任何支持的组合都不匹配,则会返回错误。 空列表相当于仅请求文本。 |
generationConfig.imageConfig |
object | 是 | |
generationConfig.imageConfig.aspectRatio |
string | 是 | 可选。要生成的图片的宽高比。支持的宽高比:1:1、1:4、4:1、1:8、8:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9
或 21:9。 如果未指定,模型将根据提供的任何参考图片选择默认宽高比。 |
generationConfig.imageConfig.imageSize |
string | 是 | 可选。指定生成的图片的大小。支持的值包括 512、1K、2K、4K。如果未指定,模型将使用默认值 1K。 |
generationConfig.imageConfig.mimeType |
string | 否 | 可选。图片输出的 MIME 类型。 |
响应状态
| HTTP 状态码 | 说明 |
|---|---|
200 |
成功 |
成功响应参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
candidates |
array<object> | 否 | |
candidates[].content |
object | 否 | |
candidates[].content.role |
string | 否 | |
candidates[].content.parts |
array<object> | 否 | |
candidates[].content.parts[].text |
string | 否 | |
candidates[].content.parts[].thoughtSignature |
string | 否 | |
candidates[].content.parts[].inlineData |
object | 否 | |
candidates[].content.parts[].inlineData.mimeType |
string | 否 | |
candidates[].content.parts[].inlineData.data |
string | 否 | |
candidates[].finishReason |
string | 否 | |
candidates[].index |
integer | 否 | |
usageMetadata |
object | 否 | |
usageMetadata.promptTokenCount |
integer | 否 | |
usageMetadata.candidatesTokenCount |
integer | 否 | |
usageMetadata.totalTokenCount |
integer | 否 | |
usageMetadata.trafficType |
string | 否 | |
usageMetadata.promptTokensDetails |
array<object> | 否 | |
usageMetadata.promptTokensDetails[].modality |
string | 否 | |
usageMetadata.promptTokensDetails[].tokenCount |
integer | 否 | |
usageMetadata.candidatesTokensDetails |
array<object> | 否 | |
usageMetadata.candidatesTokensDetails[].modality |
string | 是 | |
usageMetadata.candidatesTokensDetails[].tokenCount |
integer | 是 | |
usageMetadata.thoughtsTokenCount |
integer | 否 |
请求示例
JSON
{
"contents": [{
"role": "user",
"parts": [
{ "text": "将图片修改为复古风格,色彩更温暖,并附上简短描述。" },
{ "inlineData": { "mimeType": "image/jpeg", "data": "base64 data" } }
]
}],
"generationConfig": {
"responseModalities": ["IMAGE", "TEXT"],
"imageConfig": { "aspectRatio": "16:9", "imageSize": "1K" }
}
}
响应示例
JSON
{
"candidates": [{
"content": {
"parts": [
{ "text": "这里是为您修改后的图片,采用了复古暖色调风格。" },
{ "inlineData": { "data": "base64 data" } }
],
"role": "model"
},
"finishReason": "STOP"
}],
"modelVersion": "gemini-3.1-flash-lite-image",
"responseId": "9CueavWVIszRi9sPrKHS-AM",
"usageMetadata": {
"candidatesTokenCount": 1199,
"promptTokenCount": 1139,
"totalTokenCount": 2338
}
}
4. 调用提示
inlineData.mimeType 应与提交图片的实际格式一致。