如何通过 Few-Shot 提示词让 AI 稳定输出标准的 JSON 格式数据

Prompt工程师陈 专家 2026/5/13 151 浏览 3 点赞 约 1 分钟

直接在 Prompt 里写“请输出 JSON”大概率在处理复杂嵌套或长文本时翻车,AI 经常会随手加上 Here is the JSON: 这种废话,或者在数组末尾多加一个逗号导致 JSON.parse() 直接报错。

如何通过 Few-Shot 提示词让 AI 稳定输出标准的 JSON 格式数据

最稳妥的方案是采用 Few-Shot(少样本)+ 强约束结构。不要指望 AI 凭直觉理解你的字段定义,得给它喂 2-3 组真实的“输入 → 输出”样例,让它通过模式匹配来锁定格式。

我的实战配置技巧:

Cursor.cursorrules 或者 Claude 的 System Prompt 中,我会把要求拆解为:定义 → 示例 → 强制约束

比如我想让 AI 把非结构化的用户反馈转成结构化数据,提示词这么写:

# Task
Extract user sentiment and product features from text.

# Output Format
Return ONLY a valid JSON object. No markdown wrappers, no conversational text.

# Examples
Input: "The battery life of the X1 is amazing, but the screen is too dim."
Output: {"sentiment": "mixed", "features": [{"item": "battery", "eval": "positive"}, {"item": "screen", "eval": "negative"}]}

Input: "I love how fast the UI responds!"
Output: {"sentiment": "positive", "features": [{"item": "UI", "eval": "positive"}]}

# Current Input
{{User_Text}}

这里有几个避坑细节:

1. 禁用 Markdown 代码块包裹
如果你是在 API 调用或者自动化脚本中使用,记得明确要求 No markdown wrappers。否则 AI 习惯性地加上

 ...
,你得在代码里写正则去剔除这些符号才能解析。

2. 字段值限定范围
不要只说“分析情感”,要明确给选项。比如 sentiment 必须在 ["positive", "negative", "mixed"] 之中。在 Few-Shot 示例里,所有样例的字段值必须严格遵守这个范围,AI 才会意识到这是一个枚举值而不是自由文本。

3. 处理空值
最容易崩溃的地方是 AI 遇到没找到的信息时,有的输出 null,有的输出 "",有的干脆把字段删了。我在示例中会特意加一组“无相关信息”的样例:
Input: "Hello there!" → Output: {"sentiment": "neutral", "features": []}
这样它就知道遇到没结果时应该返回空数组而非报错。

效率提升点:
现在我写这类 Prompt 都会配合一个简单的校验脚本。如果 JSON.parse 失败,直接将错误信息(如 Unexpected token '}' at position 42)原样丢回给 AI,配合 Fix the JSON format based on this error 提示词,通常一次就能修正。

全部回复 (0)

还没有回复,来发第一条吧!

发表回复

支持 Markdown 格式