
第21篇:本地模板引擎:杜绝大模型幻觉的最后一道防线大模型最让人头疼的问题是什么?幻觉——一本正经地编造不存在的数据。在政务系统中,如果大模型把不存在的项目编号、错误的预算金额、虚构的附件名称写进答复,后果不堪设想。本文拆解 TemplateEngine 的设计哲学:大模型只负责选择 Skill 和提取参数,绝不参与答复文本生成。查询结果由本地模板函数填充,模板未找到时不输出原始 data 防止数据泄露,渲染失败时返回友好提示不暴露异常堆栈,用户数据通过_safe_str()做 HTML 转义防 XSS。从register()注册机制到render()三层安全防护,从_safe_str()的静态标签边界到模板函数的统一签名,完整拆解这道"杜绝幻觉的最后一道防线"。一、问题提出:大模型为什么会"瞎说"考虑这样一个场景:用户问智能助手"查看项目1的详情"。大模型分析意图后输出 JSON 指令{"action": "call_skill", "skill_name": "get_project_by_id", "params": {"project_id": 1}}。本地调用 Skill 从数据库查出项目数据,比如:{