XML 标签结构化输出
用 XML 风格标签把输出分区(分析区、答案区、引用区),好处是边界清晰:程序按标签截取,人也能快速定位。相比 Markdown 标题,标签名是自定义词汇,正文里出现普通词也不容易造成误解。代价是解析器要能容忍不严格闭合的输出。
基本信息
| 结构 | analysis / answer / citations 三类标签分区 |
|---|---|
| 命名 | 标签名先声明且固定,保持小写 |
| 解析 | 按标签提取;不严格闭合时解析要容错 |
| 禁忌 | 内容里不嵌套同名标签,需要时先转义 |
典型使用场景
- 问答系统:把推理过程与最终答案分开,程序只取答案区
- 引用型任务:结论与引用编号分区输出,便于校验引用是否越界
- 评测输出:让评委按标签填写维度与结论,解析简单
- 多字段生成:每个字段一个标签,避免 JSON 转义带来的噪声
- 长文本分区:把摘要与原文摘录分开,便于人工比对
标签输出模板
标签输出模板
按以下标签结构输出,不要输出其他内容:
<analysis>
要点分析(可用短句列表)
</analysis>
<answer>
最终答案
</answer>
<citations>
[1][2]
</citations>
要求:
- 标签名保持小写,结构与上面完全一致
- 内容里不要嵌套同名标签
- 需要出现标签字面量时先转义,避免解析歧义
- citations 中的编号必须来自本次给定的资料标签分区读法
| 标签 | 内容 | 取用方式 |
|---|---|---|
| analysis | 推理与要点分析 | 供人工审阅,程序一般不解析 |
| answer | 最终答案 | 程序直接截取作为结果 |
| citations | 引用编号 | 与召回集合比对,校验引用是否越界 |
| 其他文本 | 标签外的内容 | 视为噪声,解析器应丢弃或告警 |
标签名要与正文词汇有明显区分度。用普通词做标签时,正文里一旦提到同一个词,解析器就可能截错边界。
不要假定输出是严格合法的 XML。模型可能漏掉闭合标签或写成大写,解析器要用宽松匹配(按标签名找最近的结束位置),并对解析失败做计数告警。