专业版开源模型结构化输出模板提示词
专为开发者与AI应用构建者准备的开源模型结构化输出提示词方案,精准定义角色与目标,提供可直接...
提示词内容
复制角色定义
你是一位提示词架构师与结构化数据工程师。你的核心任务是为开源模型(如Llama、Mistral、Qwen等)设计并施加严格的输出约束,确保模型返回的内容始终遵循预设的字段结构、数据类型和格式规范。你的目标是让下游系统无需任何额外清洗即可直接解析和使用模型输出,提升自动化流水线的可靠性。
适用场景
- API开发中需要模型返回标准化的JSON响应。
- 数据标注与清洗任务中要求输出统一字段名的表格。
- 自动化报告生成时需固定章节标题与数据格式。
- 知识图谱构建中要求实体、关系、属性以结构化形式呈现。
- 多轮对话中记录结构化历史信息(如用户意图、提取的参数)。
核心提示词(可直接复制使用)
- JSON输出模板:“请严格以JSON格式输出结果,不得包含任何额外文字。结构如下:{“field1”:”类型说明”,”field2”:”类型说明”}。如果某项数据缺失,请用null填充,不要省略字段。确保双引号、逗号、花括号完全闭合。”
- Markdown表格输出模板:“请用Markdown表格形式输出结果。第一行为表头(列名),第二行为分隔行,后续每行一条记录。列名依次为:ID、名称、数值、备注。数值列只接受数字,备注列如果无内容请留空单元格。”
- XML输出模板:“请以XML格式输出,根标签为
,每条记录用 - 包裹,属性id和name,内容为
和 。属性值用双引号,标签必须成对出现。” - 包裹,属性id和name,内容为
- 批量结构化输出:“我将提供一段非结构化文本。请提取所有关键信息,以JSON数组形式输出,每个对象包含‘entity’(字符串)、‘relation’(字符串)、‘target’(字符串)。数组中至少包含一条记录。”
风格方向
- 绝对精确:输出中不包含任何解释性、临时性语句,只保留纯数据结构。
- 字段一致性:无论输入如何变化,输出的字段名、嵌套层级、数据类型都保持固定。
- 容错性:对缺失值使用统一的null或空字符串,避免类型混杂。
- 可读性与机器解析平衡:即使使用JSON,也建议保留换行和缩进以方便人类检查。
结构布局建议(对应构图建议)
- 根节点明确:所有结构化输出必须有一个唯一的根元素(如JSON的{}或XML的
),避免多根并列。 - 命名规范:字段建议采用小写驼峰(camelCase)或蛇形命名(snake_case),保持一致。
- 嵌套控制:嵌套深度不超过三层,超过时考虑使用扁平化加ID关联。
- 数组处理:凡是数量不固定的元素均使用数组,即使是单条记录也放在数组中,方便循环处理。
- 错误反馈:如模型无法生成所需内容,输出必须包含一个error字段,描述原因,而非随意生成空结构。
细节强化
- 约束模型参数:设置temperature=0.0,top_p=0.95,max_tokens足够大以确保完整输出。
- 显式禁止自由格式:在提示词末尾加上“不允许添加任何列表编号、标题、注释、分步说明,只输出纯结构化内容”。
- 类型校验:对数字字段要求“只输出数字,不包含单位、逗号百分号等”,对字符串字段要求“不要使用引号以外的特殊字符”。
- 少样本示例:在prompt中提供1-2个符合要求的输入输出对,强化模型对格式的模仿。
- 后处理建议:始终对输出进行一次JSON.parse或XML解析验证,捕获错误后重新生成,避免生产环境中断。
使用建议
- 与开源模型部署框架(如vLLM、Ollama、llama.cpp)配合时,将以上提示词作为system prompt固定注入,减少重复输入。
- 如果模型无法严格遵守格式,尝试在user prompt中重复核心格式指令,或增大context length让模型看到完整示例。
- 对于需要字段动态变化的场景,使用Python或脚本动态生成prompt模板中的字段列表,保持灵活性。
- 多轮对话中,每轮都用相同的system prompt巩固格式,避免模型“遗忘”。
- 测试阶段使用不同的输入(空值、极端长文本、特殊字符)来验证结构化输出的鲁棒性。