为什么 JSON 做提示词的效果会更好

69 阅读2分钟

1. 为什么 JSON 效果很好?

使用 JSON 或类似的结构化格式(如 YAML, XML)之所以有效,是因为:

  • 消除歧义: 明确了字段名和内容的边界,模型不会混淆“要求”和“参考资料”。
  • 逻辑严密: 强迫模型按照 KV(键值对)的关系去理解任务,非常适合多步骤、复杂规则的任务。
  • 易于解析: 如果你的 AI 输出需要对接程序代码,JSON 是最佳选择。

示例:

{
  "task": "翻译",
  "source_language": "中文",
  "target_language": "英语",
  "style": "学术",
  "content": "这里是需要翻译的内容"
}

2. 除了 JSON,还有哪些高效格式?

A. Markdown(最推荐的通用格式)

Markdown 是 LLM(大语言模型)训练数据中最常见的格式。它对模型非常友好,视觉上也易于人类阅读。

  • 适用场景: 撰写长文、设定角色、多层级指令。
  • 技巧: 使用 ## 标题区分模块,使用 **加粗** 强调重点。

B. XML(长文本/复杂任务的神器)

尤其是 Claude 系列模型,对 XML 标签(如 <instruction></instruction>)的敏感度极高。

  • 优点: 能够清晰地包裹长文本,防止模型在大规模上下文中迷失。

  • 示例:

    XML

    <context> 
      这里是背景信息... 
    </context>
    <rules>
      1. 不要使用术语
      2. 语气幽默
    </rules>
    

C. YAML(兼顾可读与结构)

YAML 像 JSON 一样结构化,但没有那么多大括号和引号,视觉上更清爽。

  • 适用场景: 复杂的参数设定。

D. 伪代码(逻辑推理神器)

对于数学、编程或需要严格逻辑顺序的任务,使用类似编程语言的伪代码效果极佳。

  • 示例:

    Python

    if user_input == "询问价格":
        refer_to(price_list)
    else:
        say("我不确定")
    

3. 各种格式对比表

格式优点缺点推荐场景
纯文本简单、快捷复杂指令下容易产生歧义简单的问答、日常闲聊
Markdown层级分明,对模型最友好无明显缺点大多数常规任务(首选)
JSON极其精确,适合程序对接编写较繁琐,容易漏括号自动化工作流、结构化数据输出
XML强力分隔上下文,Claude 表现优异视觉上稍显拥挤长文档处理、复杂逻辑引导
YAML易读性强,结构化缩进敏感设定 AI 角色参数、配置文件

4. 最后:如何选择?

  1. 如果你是在写复杂的 Prompt: 优先使用 Markdown(用标题和列表划分模块)。
  2. 如果你希望模型输出特定格式: 明确告诉它“请以 JSON 格式输出”。
  3. 如果你在处理超长文本: 尝试用 XML 标签把不同的部分(背景、示例、指令)包裹起来。
  4. 如果任务涉及严密的条件判断: 尝试用 伪代码 逻辑。