第 09 课:调试、评估与生产化精讲

📅 2026/7/9 4:07:13
第 09 课:调试、评估与生产化精讲
第 09 课调试、评估与生产化精讲配套代码仓库https://gitee.com/wang-zeyong111/lang-chain-lecture本课定位能跑通 demo 只是开始。生产级 LLM 应用必须能调试、能评估、能监控、能回归测试、能控制风险。第 09 课把前面所有技术拉回工程现实如何知道系统真的变好了如何发现退化如何安全上线。学习目标建立 LLM 应用评估意识。设计最小评估集。理解 LangSmith tracing 的价值。掌握常见调试路径。建立生产化检查清单。一、为什么 LLM 应用难测试传统软件测试通常判断确定性输出。例如输入 11输出必须是 2。LLM 应用的输出具有概率性和开放性因此你要评估的不只是“代码有没有报错”还包括答案是否正确是否引用了正确来源是否拒绝回答资料外问题是否调用了正确工具是否过度调用工具是否泄露敏感信息延迟是否可接受成本是否可控prompt 改动后是否退化。二、最小评估集一个最小评估集至少包含正常问题边界问题无答案问题容易混淆的问题高风险问题工具调用问题多轮对话问题。每条评估样本建议包含{question:...,expected_keywords:[...],required_sources:[...],should_call_tools:[...],should_refuse:false}三、评估维度正确性答案是否符合事实和业务规则。完整性是否覆盖问题需要的关键点。引用准确性RAG 场景下答案是否引用了正确文档。拒答能力资料不足时是否承认不知道。工具调用质量Agent 是否调用了正确工具参数是否正确。安全性是否泄露敏感信息是否执行高风险动作。成本与延迟token 数、模型费用、响应时间是否可接受。四、规则评分与人工评分规则评分优点稳定便宜可复现适合 CI。缺点覆盖不了语义质量对措辞变化敏感。人工评分优点更符合真实体验能判断复杂语义。缺点慢贵一致性较差。生产中常用混合方式规则评分做基础回归人工或 LLM-as-judge 评估复杂质量。五、LangSmith tracingLangSmith 可以记录 LLM 应用的链路prompt 输入模型输出工具调用检索结果每步耗时token 使用错误信息。开启 tracing 后调试会容易很多。你可以看到问题到底出在prompt模型检索工具解析器Agent 路由。常用环境变量setLANGSMITH_TRACINGtruesetLANGSMITH_API_KEY你的KeysetLANGSMITH_PROJECTlangchain-course六、调试顺序当效果不好时建议按顺序排查用户输入是否正确进入系统prompt 变量是否填对模型参数是否合理检索结果是否相关工具是否被正确调用工具参数是否正确结构化输出是否校验通过历史消息是否太长或污染上下文是否缺少拒答策略是否有评估样本覆盖该失败案例。不要一上来就换模型。很多问题是检索、prompt 或工具描述造成的。七、生产化检查清单上线前至少确认API Key 不写入代码prompt 和模型配置可版本管理关键链路有 tracing有最小评估集RAG 有引用资料不足时能拒答工具有权限控制高风险动作有人审有错误兜底有超时和重试有成本和延迟监控有日志和审计有回滚方案。八、安全与合规LLM 应用常见风险prompt injection数据泄露越权检索工具误操作幻觉不当建议日志中保存敏感信息。防护措施权限过滤在工具和检索层做不只靠 prompt高风险工具加确认对输入和输出做安全检查对敏感字段脱敏记录审计日志建立人工审核流程。九、从原型到生产的路线先做最小可用 demo。建立 10-30 条评估样本。加 tracing观察失败链路。优化 prompt、检索和工具。加结构化输出和错误处理。加权限、日志和监控。小流量试运行。根据真实数据扩充评估集。再逐步放量。十、结课项目建议企业知识库客服 Agent内置或上传文档支持普通 RAG支持 Agentic RAG至少两个工具支持短期记忆输出结构化答案提供引用来源有 5 条以上评估样本记录耗时和失败原因。这个项目能覆盖 LangChain 的核心能力也是从学习走向实战的最好练习。十一、常见坑没有评估集只靠肉眼感觉调 prompt。每次失败都换模型忽略检索和工具问题。没有 tracing无法定位错误步骤。RAG 没有引用答案无法验证。工具没有权限控制。高风险动作没有人工审核。没有监控成本试运行后费用失控。十二、自测清单我能设计一个最小 LLM 应用评估集。我能列出 RAG 的关键评估维度。我知道 LangSmith tracing 能看到哪些信息。我能按顺序排查一个坏回答。我知道生产上线前必须检查哪些安全项。十三、课后练习为你的结课项目写 10 条评估样本。给每条样本设置 expected keywords 和 required sources。写一个规则评分函数。如果有 LangSmith Key开启 tracing 并查看一次运行链路。