请描述您设计的一个复杂Prompt模板,它如何引导大模型生成更准确、可控的回答?
解读
面试官真正想验证的是:
- 你是否能把“业务目标—算法能力—用户场景”拆解成可执行的Prompt工程;
- 你是否具备“可控性”设计意识,即在大模型黑盒里植入白盒约束;
- 你是否能用数据闭环把Prompt迭代成资产,而非一次性脚本。
因此,回答必须呈现“模板结构 + 控制机制 + 迭代指标 + 落地案例”,并体现AI产品经理独有的“商业-技术-合规”三角平衡视角。
知识点
- Prompt分层架构:System-Instruction → Context → Constraint → Output Format → Safety Filter。
- 可控性三板斧:Schema 强制、动态少样本(Few-shot)、负例对抗。
- 中文场景特化:敏感词实时拦截、拼音/谐音漂移、行政区划对齐、时效性知识切片。
- 指标拆解:业务层(转化率、客诉率)、模型层(幻觉率、拒答率)、合规层(敏感命中率、过杀率)。
- 数据闭环:线上日志→bad case标注→Prompt微调→A/B灰度→自动回归测试。
答案
我去年负责一款“智能政务客服”产品,需在政务外网环境内回答2000+高频政务事项,准确率要求≥96%,且零敏感风险。我设计的复杂Prompt模板如下,核心思路是“把RAG、安全策略与输出协议全部Prompt化”,让大模型在单次前向推理中完成“检索-推理-合规-格式化”四步。
【模板骨架】
-
System-Instruction(角色+目标)
“你是北京市政务服务中心的AI客服‘京通小助手’,只回答北京本地政策,拒绝任何非政务话题。回答须基于{context},禁止编造;若{context}不足,回复‘请您稍等,为您转接人工’。” -
Context(动态RAG结果)
“以下是最新政策片段({k=3}),按发布日期倒序,已脱敏:{policy_snippets}。” -
Constraint(三重控制)
a. Schema控制:“输出必须JSON,字段:answer(≤120字)、policy_no(政策编号)、confidence(0/1)、is_sensitive(0/1)。”
b. 时间控制:“若政策发布日期早于{today-1y},confidence=0。”
c. 安全控制:“命中{敏感词表}任意词条,is_sensitive=1,answer=‘’,并停止输出。” -
Few-shot(动态采样)
“示例1:问‘如何办理居住证’→{“answer”:“携带身份证、租房合同……”,“policy_no”:“京公人口〔2023〕5号”,“confidence”:1,“is_sensitive”:0}”
(线上系统每次从最新100条高质量日志中动态采样3条,拼接进Prompt,实现“热更新”少样本。) -
Negative Refusal(负例对抗)
“若问题涉及‘代办居住证包过’等灰产关键词,无论context是否相关,answer统一回复‘本市居住证须本人如实申请,无代办通道’,confidence=0。”
【落地效果】
上线两周,业务指标:直接解答率从78%提升到94%,人工转接率下降37%;模型指标:幻觉率由5.2%降至0.9%,敏感零触发;合规指标:过杀率<0.3%,通过网信办抽检。
迭代机制:每日把用户不采纳的case自动加入“Prompt回归池”,用规则+人工双通道标注,48小时内完成Prompt热更新,平均每周发布3个灰度版本,实现“数据-模型-产品”闭环。
拓展思考
- 当政策库更新频率从“季度”变为“小时级”,可把Prompt中的RAG片段改为“实时知识图谱+时间窗口”,并在Schema里增加“effective_date”字段,让前端根据生效时间做灰度展示。
- 若未来接入多模态(拍照上传办事材料),需在Prompt里增加“OCR+材料分类”子任务,用Chain-of-Thought先让模型输出“材料完整性判断”,再进入政策问答主流程,防止“图像-文本”交叉幻觉。
- 对于可能出现的地方保护性差异(如“北京vs上海”政策冲突),可在System层植入“行政区划校验”变量,让模型先识别用户定位,再决定调用哪一套RAG切片,从而把“地域漂移”风险前移到Prompt内部解决,而非事后规则修补。