提示词指南
如何写出要求结构化输出的提示词
关于如何写出能可靠要求 JSON、表格或其他固定格式的提示词的实用指导——是"什么是结构化 AI 输出"这篇概念文章的配套实践篇,说明了为什么仅靠提示词的措辞无法保证结构本身一定有效。
所有提示词指南 · 最近审阅:
准确描述你想要的确切结构,而不只是格式的名称
说“把这个作为 JSON 返回”是个开始,但真正消除歧义的是说明字段名、字段顺序和字段类型——“返回一个 JSON 对象,包含一个名为 title 的字符串字段和一个名为 steps 的数组字段,其中每个 step 都是字符串”,比“返回包含 title 和 steps 的 JSON”留给模型猜测的空间要小得多。表格也是同样的道理:要说明列名以及每一列应该放什么内容,而不是假设模型会选出和你心里想的一样的划分方式。
展示一个你想要的确切输出的示例
一个完整结构的示例——一段简短的 JSON 样例,或表格中的一行——往往比再写一段描述更能消除歧义,原因和示例在少样本提示中的作用是一样的,详见下方链接。当格式中存在容易被描述得不够精确的细节时,这一点尤其重要,比如某个字段是否可选,或者缺失值应该如何表示。
一个写得很好的提示词在这方面不能保证什么
一个精心撰写的提示词能让输出的有效性和结构合理性更有可能实现,但并不能保证做到——模型仍然可能返回格式错误的 JSON、多出一个字段,或者在你要求的结构外面包裹一段散文,尤其是在较长或较复杂的回答中。关于专门为此存在的技术机制——比如受模式约束的生成——以及 ClawAI 在“仅靠提示词好言相求”之外还做了什么,可参见下方链接的“什么是结构化 AI 输出”。
常见问题
- 仅靠在提示词中好言相求,足以保证得到有效的 JSON 吗?
- 不够——一个写得好的提示词只能让这更有可能,而不是确定无疑。关于因为仅靠提示词无法可靠保证有效结构而存在的机制,可参见下方链接的“什么是结构化 AI 输出”。
- 我应该描述格式,还是展示一个示例?
- 只要格式存在任何歧义,两者都要做——对字段的精确描述加上一个完整结构的示例,能覆盖的情况比单独使用其中一种更多。关于如何挑选一个好示例,可参见下方链接的“少样本提示”。
- 本指南和“什么是结构化 AI 输出”有什么区别?
- 那篇文章解释了可靠结构化输出背后的技术机制;本页是它的实用配套篇章——如何写提示词本身。它们是用来配合阅读的,不是彼此的重复。
在真实对话中练习
对于必须可靠有效的输出,ClawAI 的结构化输出机制(见下方链接的“什么是结构化 AI 输出”)比单靠提示词措辞更进一步——本指南覆盖的是这幅图景中“如何写提示词”的那一半。