微信扫码
与创始人交个朋友
我要投稿
在基于大型语言模型的应用开发中,AI生成的输出通常需要进行后处理才能投入实际使用。为此,结构化输出扮演着关键角色 - 它为大语言模型提供了标准化的数据接口,不仅确保了数据的一致性和可靠性,更是构建复杂系统的基石。通过结构化输出,大语言模型得以作为更大系统中的可信赖组件,实现无缝集成。
本文分享了一些常见的让大模型输出结构化内容的方法
只需要将下文所给的片段添加到你们自己的提示词中即可,在GPT和Claude下效果都很不错。
• ?不同模型对prompt格式的偏好不同
◦ ?GPT和Gemini更喜欢markdown
◦ ?Claude更喜欢XML
• ⚡关于流式
◦ ⏱界面上需要快速响应的场景
◦ ❌XML, Json, 等需要标签闭合的场景不太适合流式 (强行也能写,就是麻烦了),可以考虑Jsonl、markdown、bullet list、自定义格式等可以边输出边解析的格式
• ?使用方法
◦ ?将下面的OUTPUT INSTRUCTIONS拼接到原始prompt中即可,建议放到输入之前
◦ ?️如果还是有边缘场景,再增加一个EXAMPLE约束,给三五个示例:输出示例,或者是输入-输出示例
▪ ?可以在prompt中拼接
▪ ???也可以通过role=user, role=assistant来组织
◦ ?使用Prefill技巧, 比如 "接下来输出markdown:", "接下来输出json, {"
▪ ?可以在prompt中拼接
▪ ???也可以通过role=user, role=assistant来组织
◦ ⚠️如果还是不行,先通过prompt确保输出范围可控,再到代码中增加正则表达式兜底
◦ ?最后再不行就要考虑重试和界面报错
◦ ?工程上还能做的事情
▪ ?考虑使用更小的temperature
▪ ?使用logit_bias参数严格控制输出范围和概率
• 你的输出必须只使用标准 Markdown 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 根据需要使用适当的 Markdown 语法来格式化标题、列表、链接、图片和其他元素
• 确保创建输出时遵循所有这些指令
• 你的输出必须只使用带项目符号列表的标准 Markdown 格式,组织成特定部分:"##### 摘要"和"##### 要点"
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 每个部分应以粗体标题开始,列表项目应在各自标题下方
• 确保创建输出时遵循所有这些指令
• 你的输出必须只使用带项目符号列表的标准 Markdown 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 使用项目符号列表输出,不使用编号列表
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 确保创建输出时遵循所有这些指令
• 你的输出必须只使用带有序列表的标准 Markdown 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 使用有序列表来组织输出,每个条目以数字和点开始(如"1."、"2."、"3."等)
• 确保创建输出时遵循所有这些指令
• 你的输出必须只使用带表格的 Markdown 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 使用 Markdown 语法构建表格。以表头行开始,然后是分隔行,最后是数据行。每列应用竖线(|)分隔
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是标准 YAML 对象
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 确保创建输出时遵循所有这些指令
需配合具体业务场景,在 Example 给出详细字段说明和示例,或者给出 json schema:
## JSON 示例
{
"key1": "value1",
"key2": "value2",
"key3": {
"subKey1": "subValue1",
"subKey2": "subValue2"
}
}
• 你的输出必须只是格式良好的 JSON 格式字符串。输出应该是单个可以被 json.loads 解析的 JSON 对象
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 确保 JSON 对象中的所有键都使用双引号
• 使用反斜杠 \ 转义特殊字符
• 确保 JSON 对象中的所有值都正确格式化为字符串、数字、数组或对象
• 确保 JSON 对象中没有多余的逗号
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是 JSON Lines (JSONL) 格式
• 输出的每一行必须是有效的 JSON 对象
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 确保 JSON 对象中的所有键都使用双引号
• 使用反斜杠 \ 转义特殊字符
• 确保 JSON 对象中的所有值都正确格式化为字符串、数字、数组或对象
• 确保 JSON 对象中没有多余的逗号
• 返回格式良好的 JSONL 格式字符串。每行应该是可以被 json.loads 解析的有效 JSON 对象
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是标准 CSV 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 将包含逗号、换行或双引号的字段用双引号括起来,并通过双写来转义双引号
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是标准 XML 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 正确转义文本节点中的任何特殊 XML 字符(如 <、>、&、' 和 ")
• 使用适当的标签来封装数据字段,确保每个标签都正确打开和关闭
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是 PlantUML 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 确保语法符合所请求的 UML 图类型的 PlantUML 标准
• 使用适当的语法来表示 UML 图中的元素和关系
• 确保创建输出时遵循所有这些指令
• 你的输出必须只是标准 Mermaid 格式
• 不要包含警告、注释或任何额外信息;只输出要求的部分
• 不要重复想法、引用、事实或资源
• 不要用相同的开头词语开始条目
• 准确遵循 Mermaid 语法以确保图表能正确渲染
• 按照 Mermaid 文档使用正确的图表类型标识符和语法来创建特定类型的图表
• 确保创建输出时遵循所有这些指令
• 使用与输入相同的语言来返回
• 用中文输出
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-21
致继刚,感谢你继承乔哈里视窗和提示词心法
2024-11-20
郭美青 | 从Demo到商用—构建企业级提示词工程,加速AI应用商用落地
2024-11-20
云中江树 | 重塑自然语言编程,Agent 训练的核心探索
2024-11-20
一个让AI智商暴涨300%的Prompt Engineer 万能方法论
2024-11-19
从乡下放牛娃到大厂AI顾问:我用本硕七年,重写自己的人生
2024-11-18
智能对决:提示词攻防中的AI安全博弈
2024-11-15
AI对话的日常思考:当我们在讨论提示词时,到底在纠结什么?
2024-11-14
你不需要招一个天才Prompt少年,也不需要玄幻的prompt来做开发
2024-06-29
2023-06-08
2024-08-20
2024-06-27
2024-06-14
2024-07-09
2024-07-12
2024-09-17
2024-06-26
2024-06-29