让 AI 稳定输出表格和结构化数据的写法
它每次输出格式都不一样?三个办法:给表头、给空行模板、给它一个"必须先填空"的骨架。
你要一张表,它给你三段话。你要 JSON,它给你 Markdown 加一段解释。
这不是它不听话,是"输出格式"这件事,你得用它能执行的方式说。
一、最有效的办法:给它一个空模板
不要描述格式,直接把骨架给它,让它填。
按下面的表格结构填,只输出表格,不要任何前后说明文字。
表头必须完全一致,行数不限。
| 序号 | 问题 | 影响 | 优先级 | 负责人 |
|---|---|---|---|---|
最后一行的空表是暗示:"照这个继续"。它会把空行补满。
为什么有效:你给的不是"要求",是"前文"。它在续写,自然顺着结构走。
二、三种常用格式的写法
Markdown 表格
输出一张 Markdown 表格。
列固定为:产品 | 月费 | 免费额度 | 适合谁
要求:
1. 每格不超过 15 字
2. 月费写数字,单位元,不要写"约"
3. 不确定的格子填"—",不要猜
4. 表格外不要写任何文字
第 3 条是关键。给它一个"填不出来"的合法选项,它就不会编。
JSON
只输出 JSON,不要代码块标记,不要任何解释。
字段固定为:
{
"title": "字符串,不超过 20 字",
"tags": ["字符串数组,3–5 个"],
"summary": "字符串,60–80 字",
"score": "整数,0–100"
}
如果某个字段无法确定,用 null,不要编造。
常见坑:它会在外面加一层代码块标记。明确说"不要代码块标记" 能解决大部分情况。
列表 + 固定字段
按下面的格式逐条输出,每条 4 行,不要合并、不要省略:
【问题】……
【原因】……
【解法】……
【风险】……
共输出 5 条。
三、三个稳定性的技巧
1. 用"必须""只""不要"这类硬词
"希望是表格" → 它可能给列表。 "必须输出表格,不要其他内容" → 它照做。
2. 先说格式,再说内容
顺序反了,它写完内容才发现要表格,就会硬套。
错:分析这三个产品的优劣,用表格输出。
对:用表格输出下面三个产品的优劣对比,列是:产品 | 优势 | 劣势 | 适合谁。
3. 一次只要求一种格式
既要表格又要总结又要建议,它会混着来。
四、批量处理时的写法
要处理 20 条数据,最稳的是"逐条处理 + 固定分隔符":
下面有 20 条客户反馈,请逐条分类。
输出格式:每条一行,用竖线分隔,不要编号。
格式:反馈原文前 10 字 | 分类 | 情绪(正/负/中) | 是否需要回复(是/否)
分类只能从这五个里选:物流、质量、价格、客服、其他。
无法归类的写"其他",不要自创分类。
[粘贴 20 条]
关键在"只能从这五个里选"。不限定选项,它会给你 20 个不同的分类,你还得再归一一次。
五、拿到结果后的校验
结构化输出也要核,重点看三处:
- 行数对不对:给它 20 条,输出是不是 20 行。少了就是漏了。
- 有没有自创值:分类里出现了你没定义的类别。
- 空值是不是真的空:它可能为了"填满"而编内容。
一条校验指令:
检查你刚才的输出:
1. 一共有几行?和我给你的条数一致吗?
2. 有没有出现我没定义的分类?
3. 有没有哪一行的内容是推测的?标出来。
三个常见错误
- 只描述格式,不给模板。 描述永远是模糊的,模板是精确的。
- 不说"不要解释"。 它会热心地加一段"以下是整理结果:"。
- 不确定的地方不给退路。 不给"—"或 null 这个选项,它只能编。