高级提示词工程
第 7 章讲了提示词的基本骨架。当应用要进生产、要对接下游系统、要应对复杂问题时,提示词工程(Prompt Engineering) 决定了输出的上限与稳定性。本章讲四件进阶要事。
1. 思维链与推理框架
让模型「先想再答」能显著降低逻辑错误。经典做法是 Chain-of-Thought:要求模型分步推理,再给结论。
请按以下步骤回答,不要跳步:
1. 先列出与问题相关的关键事实。
2. 指出其中存在的约束或矛盾。
3. 给出推理过程。
4. 输出最终结论(不超过 2 行)。💡复杂任务拆步骤
涉及计算、排序、多条件判断的问题,强制「分步输出」比直接要答案更可靠。可以把中间步骤放到工作流的「变量」里,再喂给下一个节点。
2. 上下文压缩与成本控制
长对话会不断把历史塞进提示词,token 与延迟都涨。两种手段:
- 摘要压缩:当上下文超过阈值,先用一个小模型把历史压缩成要点。
- 关键字段外提:把用户资料、订单状态等结构化数据以变量形式注入,避免反复复述。
# 上下文管理示意(伪配置)
context_strategy:
max_tokens: 4000
compress_when_exceeds: true
compress_prompt: "将以上对话压缩为不超过 200 字的关键信息"3. 结构化输出约束
要让下游程序解析,必须约束输出格式(如 JSON)。在提示词里明确 schema,并给出解析失败的兜底说明。
只输出 JSON,不要任何解释,格式如下:
{
"intent": "退款 | 咨询 | 投诉",
"confidence": 0.0到1.0之间,
"need_human": true或false
}⚠️别相信模型永远守格式
即使写了「只输出 JSON」,模型偶尔仍会加一句前缀。生产解析前务必做容错:先剥离非 JSON 字符,再 json.loads,失败则走兜底分支。
4. 防幻觉与兜底策略
- 给知识库场景加「无依据则说不知道」的硬约束
- 用低温度(temperature 0.2–0.4)降低随机性
- 关键结论要求模型标注「来源片段编号」,便于溯源
🎯动手做
取一个你关心的复杂问题,分别用「直接回答」和「思维链四步法」各跑一次,对比答案的完整度与逻辑性,观察分步输出带来的差异。
小结
- 思维链(CoT)提升复杂任务准确率
- 用压缩与变量外提控制上下文成本
- 结构化输出需配解析兜底
- 防幻觉靠硬约束 + 低温度 + 来源标注;下一步深入知识库索引 →