|
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">在基于大型语言模型的应用开发中,AI生成的输出通常需要进行后处理才能投入实际使用。为此,结构化输出扮演着关键角色 - 它为大语言模型提供了标准化的数据接口,不仅确保了数据的一致性和可靠性,更是构建复杂系统的基石。通过结构化输出,大语言模型得以作为更大系统中的可信赖组件,实现无缝集成。 本文分享了一些常见的让大模型输出结构化内容的方法 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">只需要将下文所给的片段添加到你们自己的提示词中即可,在GPT和Claude下效果都很不错。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding-right: 0.2em;padding-left: 0.2em;color: rgb(255, 255, 255);background: rgb(15, 76, 129);">一些总结ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 14px;margin: 10px 8px;background: rgb(28, 29, 33);color: rgb(192, 197, 206);letter-spacing: normal;text-align: left;line-height: 1.5;overflow-x: auto;border-radius: 8px;">•?不同模型对prompt格式的偏好不同 ◦?GPT和Gemini更喜欢markdown ◦?Claude更喜欢XML •⚡关于流式 ◦⏱界面上需要快速响应的场景 ◦❌XML,Json,等需要标签闭合的场景不太适合流式(强行也能写,就是麻烦了),可以考虑Jsonl、markdown、bulletlist、自定义格式等可以边输出边解析的格式 •?使用方法 ◦?将下面的OUTPUTINSTRUCTIONS拼接到原始prompt中即可,建议放到输入之前 ◦?️如果还是有边缘场景,再增加一个EXAMPLE约束,给三五个示例:输出示例,或者是输入-输出示例 ▪?可以在prompt中拼接 ▪???也可以通过role=user,role=assistant来组织 ◦?使用Prefill技巧,比如"接下来输出markdown:","接下来输出json,{" ▪?可以在prompt中拼接 ▪???也可以通过role=user,role=assistant来组织 ◦⚠️如果还是不行,先通过prompt确保输出范围可控,再到代码中增加正则表达式兜底 ◦?最后再不行就要考虑重试和界面报错 ◦?工程上还能做的事情 ▪?考虑使用更小的temperature ▪?使用logit_bias参数严格控制输出范围和概率ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding-right: 0.2em;padding-left: 0.2em;color: rgb(255, 255, 255);background: rgb(15, 76, 129);">一些开箱即用的片段OUTPUT INSTRUCTIONS ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">自由 markdowningFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(15, 76, 129);">OUTPUT INSTRUCTIONSingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(63, 63, 63);" class="list-paddingleft-1">• 你的输出必须只使用标准 Markdown 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 根据需要使用适当的 Markdown 语法来格式化标题、列表、链接、图片和其他元素 • 确保创建输出时遵循所有这些指令 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 8px;color: rgb(63, 63, 63);">限定分组的 markdowningFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(15, 76, 129);">OUTPUT INSTRUCTIONS• 你的输出必须只使用带项目符号列表的标准 Markdown 格式,组织成特定部分:"##### 摘要"和"##### 要点" • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 每个部分应以粗体标题开始,列表项目应在各自标题下方 • 确保创建输出时遵循所有这些指令
markdown 项目符号列表OUTPUT INSTRUCTIONS
markdown 有序列表OUTPUT INSTRUCTIONS• 你的输出必须只使用带有序列表的标准 Markdown 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 使用有序列表来组织输出,每个条目以数字和点开始(如"1."、"2."、"3."等) • 确保创建输出时遵循所有这些指令
markdown 表格OUTPUT INSTRUCTIONS• 你的输出必须只使用带表格的 Markdown 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 使用 Markdown 语法构建表格。以表头行开始,然后是分隔行,最后是数据行。每列应用竖线(|)分隔 • 确保创建输出时遵循所有这些指令
YAMLOUTPUT INSTRUCTIONS
json需配合具体业务场景,在Example给出详细字段说明和示例,或者给出jsonschema: ##JSON示例 { "key1":"value1", "key2":"value2", "key3":{ "subKey1":"subValue1", "subKey2":"subValue2" } }
OUTPUT INSTRUCTIONS• 你的输出必须只是格式良好的 JSON 格式字符串。输出应该是单个可以被 json.loads 解析的 JSON 对象 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 确保 JSON 对象中的所有键都使用双引号 • 使用反斜杠 \ 转义特殊字符 • 确保 JSON 对象中的所有值都正确格式化为字符串、数字、数组或对象 • 确保 JSON 对象中没有多余的逗号 • 确保创建输出时遵循所有这些指令
jsonlOUTPUT INSTRUCTIONS• 你的输出必须只是 JSON Lines (JSONL) 格式 • 输出的每一行必须是有效的 JSON 对象 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 确保 JSON 对象中的所有键都使用双引号 • 使用反斜杠 \ 转义特殊字符 • 确保 JSON 对象中的所有值都正确格式化为字符串、数字、数组或对象 • 确保 JSON 对象中没有多余的逗号 • 返回格式良好的 JSONL 格式字符串。每行应该是可以被 json.loads 解析的有效 JSON 对象 • 确保创建输出时遵循所有这些指令
csvOUTPUT INSTRUCTIONS
XMLOUTPUT INSTRUCTIONS• 你的输出必须只是标准 XML 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 正确转义文本节点中的任何特殊 XML 字符(如 <、>、&、' 和 ") • 使用适当的标签来封装数据字段,确保每个标签都正确打开和关闭 • 确保创建输出时遵循所有这些指令
PlantUMLOUTPUT INSTRUCTIONS• 你的输出必须只是 PlantUML 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 确保语法符合所请求的 UML 图类型的 PlantUML 标准 • 使用适当的语法来表示 UML 图中的元素和关系 • 确保创建输出时遵循所有这些指令
mermaidOUTPUT INSTRUCTIONS• 你的输出必须只是标准 Mermaid 格式 • 不要包含警告、注释或任何额外信息;只输出要求的部分 • 不要重复想法、引用、事实或资源 • 不要用相同的开头词语开始条目 • 准确遵循 Mermaid 语法以确保图表能正确渲染 • 按照 Mermaid 文档使用正确的图表类型标识符和语法来创建特定类型的图表 • 确保创建输出时遵循所有这些指令
跟随输入OUTPUT INSTRUCTIONS输出为特定语言OUTPUT INSTRUCTIONS
|