Gemini 3.6 Flash 的输入格式要求,取决于你的接入方式和模型实际部署配置,但通常可以从请求结构、数据类型、编码和大小这几个方向去判断。以下给出一个通用验证骨架和操作清单,你可以先在测试环境里跑一遍,再对生产接入做调整。
如果你需要的是纯文本对话,输入体通常是一个 JSON 对象,核心字段是 contents,里面至少有一个 parts 数组;每个 part 可以包含 text 或 inline_data。如果是多模态输入,图片数据一般以 base64 字符串放进 inline_data,同时要声明 mime_type。文本内容统一使用 UTF-8 编码,避免带 BOM。
1. 先确认请求结构是否被接受
用下面的 curl 骨架验证文本输入。把 $ENDPOINT 替换为实际接入地址,$API_KEY 换成你的密钥。
curl -X POST "$ENDPOINT" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{"text": "你好,请只回复两个字:收到"}
]
}]
}'
这个请求如果返回 HTTP 2xx,并且响应里有 candidates 字段,说明基本格式被接受。如果返回 4xx,先看错误信息里的字段名称,通常会把缺失字段或类型不对的地方直接列出来。
2. 多模态输入样例
如果需要传图片,可以用下面的 JSON 体作为参考。注意 data 字段需要是图片的 base64 编码,并且不含换行符;mime_type 要跟实际文件类型一致,比如 JPEG 用 image/jpeg。
{
"contents": [
{
"parts": [
{"text": "描述这张图片的构图"},
{"inline_data": {
"mime_type": "image/jpeg",
"data": "BASE64_STRING"
}}
]
}
],
"generationConfig": {
"temperature": 0.2,
"maxOutputTokens": 512
}
}
这里的 BASE64_STRING 只是占位符,你需要用实际的编码数据替换。在测试时,建议先用一张小图(例如几十 KB)验证流程,再逐步增加数据量。
3. 提示词的结构化写法
很多情况下,直接改提示词也能解决输入格式问题。比如你想让模型按指定格式返回,可以在提示词里写清楚角色、任务和约束。下面这个版本可以直接复制去试:
你是API测试助手。
任务:检查用户输入是否是合法的JSON对象,并提取其中的name字段。
用户输入:{{user_input}}
约束:只输出一个JSON对象,形如{"name":"值"};如果解析失败,输出{"error":"invalid json"}。
使用时把 {{user_input}} 替换成实际输入。这种写法能帮你快速判断模型是否理解结构约束,也能用来对比不同提示词版本的效果。
4. 判断边界与验证清单
- 先做最小输入测试:只传一个
textpart,确认接口连通。 - 再增加
inline_data,确认图片格式和编码被接受。 - 如果请求体较大,先拆分或压缩内容,不要直接丢给接口。
- 记录每次请求的 HTTP 状态码、响应耗时和返回的
finishReason,便于定位问题。 - 不同部署方式的字段名可能略有差异,比如有的版本用
contents,有的用messages,需要以实际返回的 schema 为准。
最后,这些操作不会替代官方接口文档的确认,但能帮你在未知环境中快速摸清输入格式的边界。不要直接在生产环境尝试大改,先在测试环境跑通再迁移。