Gemini结构化输出需用<output>标签明确格式,禁用模糊动词,字段须绑定类型与取值范围,嵌入正向示例并强制格式对齐,且可用终端命令反向约束解析兼容性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让Gemini输出JSON、表格或纯文本时,每次都要重写“请用JSON格式”“不要加解释”“字段名用英文小驼峰”,重复输入拖慢验证节奏。
用结构化标记框定输出形态
在提示词开头插入<output>标签,把格式要求直接封在里面。
例如:<output>JSON数组,含id(数字)、name(字符串)、status(枚举值:active/inactive)三个字段,不带注释,不换行,无缩进</output>
这一步必须做,否则Gemini会默认补全“示例数据如下”这类引导句——【补全内容不可控,且会污染后续程序解析】。
禁用模糊动词,绑定硬性约束
方法一:用“必须”“禁止”“仅限”替代“请”“建议”“可以”
错误写法:“请以表格形式展示结果” → Gemini可能返回Markdown表格、纯文本对齐、甚至带说明的段落。
正确写法:“必须输出纯文本表格,列名顶格左对齐,分隔符为单竖线|,禁止出现表头说明、单位标注、脚注。”
方法二:字段描述必须绑定类型与取值范围
不要写“时间”,要写“created_at(ISO 8601字符串,UTC时区,精确到秒,结尾带Z)”;
不要写“状态”,要写“state(字符串,仅限pending/processing/done三值之一)”。
嵌入正向示例并强制格式对齐
第一步:在
第二步:粘贴你期望的、已验证过的最小可行输出,比如:
示例输出:[{"id":1,"name":"task_a","status":"active"},{"id":2,"name":"task_b","status":"inactive"}]
第三步:末尾加一句:“严格按示例格式生成,字段顺序、引号风格、括号闭合、逗号位置均不得改动。”
这一步不做,Gemini大概率把双引号换成单引号,或在最后一个对象后多加一个逗号——【JSON语法错误将导致下游系统解析失败】。
用真实终端命令反向约束输出边界
如果你最终要把Gemini输出喂给curl或jq处理,就把对应命令的预期输入格式直接塞进提示词。
例如:“输出必须能被以下命令直接处理:jq '.[] | select(.status == \"active\")'”,
再补充:“若输出无法被该jq命令解析,则视为失败,不生成任何内容。”
这相当于用执行环境倒逼格式合规,比文字描述更可靠。


















