上一篇我们聊了 LLM 语义路由用模型本身做意图分类告别了关键词硬匹配的三种陷阱。不少同学问那到底什么时候用关键词、什么时候上 LLM只用 LLM 不是更香吗其实我在真实项目里踩过这个坑——把所有意图判断都扔给 LLM上线三天客服系统崩了日均 10 万次意图识别请求光这一个环节的 API 费用每月烧了 8 万元延迟还高达 800ms。后来换了分层方案费用降到 3000 元延迟压到 60ms。意图识别不是选最强的技术而是在对的位置用对的方案。这篇我把生产环境里用过的五种设计全部拆开讲每种给你代码 决策口诀最后一张决策树帮你直接对号入座。01 关键词匹配最快的那把刀但只能切直线关键词匹配是意图识别里最古老的方案也是很多人最先放弃的方案。放弃得太早了。它的本质就是一张触发词 → 意图的映射表// keyword-intent-matcher.tsconstintentKeywordsRecordstringstringorder_query订单物流快递发货到货运单refund_request退款退货退钱申请退要退complaint投诉不满意太差了骗人垃圾product_inquiry价格多少钱有没有规格参数functionmatchKeywordIntenttext: stringstringnullforconstofObjectentriesifsome(kw) includesreturnreturnnull// 没有命中交给下游处理consolelogmatchKeywordIntent我的订单还没发货啊// order_query ✅consolelogmatchKeywordIntent这个多少钱// product_inquiry ✅consolelogmatchKeywordIntent我想买个东西// null — 关键词方案的天花板延迟 1ms。准确率高频确定意图 95%。问题也很明显用户说帮我看看这个东西多久能到没有订单快递这些词就会漏掉。它处理不了任何口语变体。什么时候用高频确定意图退款、查单作为第一层过滤先把 30% 的明确请求快速处理掉不要单独使用。决策口诀词汇映射清晰 对速度极端敏感 → 关键词先上02 正则 规则引擎给关键词装上上下文很多同学觉得关键词不够用就直接跳到 ML 模型。其实中间有一层被低估了——正则加规则引擎。它比关键词多了两个能力位置感知和组合逻辑。// rule-engine-intent.tsconstintentorder_status_querypatterns/我的(订单|包裹).*(到了|在哪|多久)//(查|看看).*(物流|快递)/combinatoranyasconstintentcomplaint_hardwarepatterns/(不能用|用不了|坏了)//(产品|设备|手机)/combinatorallasconstnegativePatterns/怎么用/// 排除教程问题functionmatchRuletext: stringstringnullforconstofconstpatternsfilter(p) testconstnegativePatternsfilter(p) testiflength0continueconstcombinatoranylength0lengthpatternslengthifreturnintentreturnnullconsolelogmatchRule我的快递到哪了// order_status_query ✅consolelogmatchRule手机用不了了// complaint_hardware ✅consolelogmatchRule手机怎么用// null负样本过滤 ✅比关键词覆盖了更多口语表达延迟仍然在1~5ms之内。但规则会膨胀。意图从 10 个增长到 50 个后规则文件膨胀到 2000 行相互冲突维护成本直线上升。我见过一个团队维护了 1 万行规则最后谁也不敢动了。决策口诀意图 20 个 表达有规律可循 → 规则引擎03 Embedding 分类器从字面升级到语义当意图数量超过 20 个、口语表达差异大规则就撑不住了。上向量分类器。核心思路把每个意图的示例句子 Embedding 成向量用户输入也 Embedding找最近邻。每个意图只需 5~10 条示例就能处理大量口语变体。// embedding-intent-classifier.tsimportOpenAIEmbeddingsfromlangchain/openaiclassEmbeddingIntentClassifierprivatenewOpenAIEmbeddingsmodeltext-embedding-3-smallprivateintentsArrayintentstringembeddingsnumberasyncbuildexamples: Array{ intent: string; texts: string[] }forconstofconstawaitthisembedderembedDocumentsthisintentspushasyncclassifytext: string, threshold 0.75constawaitthisembedderembedQueryletintentnullasstringnullscore0forconstofthisintentsforconstofconstcosineSimilarityifscorereturnscoreintentnullscorescoreconstnewEmbeddingIntentClassifierawaitbuildintentorder_querytexts我的快递到哪了订单什么时候发货帮我查一下物流intentrefundtexts我要退款这个不想要了怎么退申请七天无理由// 没有订单词照样命中 ✅consolelogawaitclassify包裹现在在哪个城市// { intent: order_query, score: 0.87 }consolelogawaitclassify我想取消这笔购买// { intent: refund, score: 0.81 }五种方案对比方案延迟准确率意图数上限冷启动样本关键词 1ms高确定意图无上限0正则规则1~5ms中高~20 个0Embedding 分类30~80ms高语义泛化~200 个每意图 5~10 条小模型 Fine-tune10~30ms中高~500 个每意图 100 条LLM 自路由400~1200ms最高zero-shot无上限0决策口诀意图 20~200 个 口语差异大 有少量示例 → Embedding 分类器04 小模型 Fine-tune数据够了这才是生产主力当每个意图积累了 200 条标注样本小模型 fine-tune 是性价比最高的方案。算一笔账日均 10 万次意图识别GPT-4o-mini 约 90 美元/月、延迟 200600ms自托管 BERT 约 40 美元/月、延迟 1030ms。成本省 55%速度快 10 倍。在 LangGraph 里把小模型封装成 Runnable直接插进路由节点// small-model-in-langgraph.tsimportRunnablefromlangchain/core/runnablesimportStateGraphAnnotationfromlangchain/langgraphimportHfInferencefromhuggingface/inferenceclassSmallModelClassifierextendsRunnablestringintentstringconfidencenumbercustomintentprivatenewHfInferenceenvHF_TOKENconstructorprivate modelId: stringsuperasyncinvoketext: stringconstawaitthishftextClassificationmodelthismodelIdinputsreturnintentlabelconfidencescoreconstStateAnnotationAnnotationRootuserInputAnnotationstringdetectedIntentAnnotationstringconfidenceAnnotationnumberconstnewSmallModelClassifieryour-org/intent-bertconstnewStateGraphStateAnnotationaddNodeintentRouterasyncconstawaitinvokeuserInput// confidence 0.8 → 标记为 uncertain触发 LLM 兜底returndetectedIntent0.8uncertainaddNodeorderHandleraddNoderefundHandleraddNodellmFallbackaddEdge__start__intentRouteraddConditionalEdgesintentRouter(s) order_queryorderHandlerrefund_requestrefundHandlerdetectedIntentllmFallbackcompile决策口诀数据量 200 条/意图 高并发 成本敏感 → 小模型 Fine-tune05 LLM 自路由zero-shot解锁无标注和模糊意图LLM 自路由最大的优势是zero-shot——不需要标注数据一段描述即可定义新意图上线成本极低。// llm-intent-router.tsimportChatOpenAIfromlangchain/openaiimportfromzodconstorder_query用户询问订单状态、物流进度【不包括】修改地址refund_request用户要求退款、退货、取消订单complaint用户明确表达不满【不包括】产品使用疑问product_faq用户询问产品规格、功能、使用方法other以上均不符合constIntentSchemaobjectintentenumorder_queryrefund_requestcomplaintproduct_faqotherconfidencenumberreasoningstringasyncfunctionllmRouteinput: stringconstnewChatOpenAImodelgpt-4o-minitemperature0withStructuredOutputIntentSchemaconstObjectentriesmap([k, v]) - ${k}: ${v}join\nreturninvokerolesystemcontent你是意图分类器判断用户输入属于哪个意图\n${list}roleusercontent// 模糊表达也能识别 ✅constawaitllmRoute我那个东西好久没消息了// { intent: order_query, confidence: 0.85, reasoning: 暗指购买物品的追踪 }LLM 路由的死穴是高并发QPS 50 时平均延迟 280ms 还行QPS 200 时已经到 820msQPS 500 时超时率 15%。而 Embedding 分类器同等场景下 QPS 500 延迟只有 45ms。决策口诀新意图快速上线 模糊语义 流量 1k QPS → LLM 自路由06 分层架构生产环境的组合拳五种方案不是互斥的而是分层叠加的。生产环境永远用分层把 80% 流量在 Layer 1/2 拦截只放 10% 给 LLM// layered-intent-recognizer.ts/** * 四层漏斗 * Layer 1: 关键词 1ms 命中 ~35% * Layer 2: 规则引擎 1~5ms 命中 ~20% * Layer 3: Embedding 30~80ms 命中 ~35% * Layer 4: LLM 兜底 400~800ms 命中 ~10% */classLayeredIntentRecognizerasyncrecognizetextstringPromiseintentstringlayernumberconstmatchKeywordIntentifreturnintentlayer1constmatchRuleifreturnintentlayer2constawaitthisembCLFclassifyifintentscore0.75returnintentintentlayer3constawaitllmRoutereturnintentintentlayer4分层后实测收益客服系统日均 10 万次请求指标纯 LLM 方案分层方案月均 API 费用~8 万元~3000 元平均延迟800ms60msP99 延迟2100ms280ms准确率94%93%基本持平监控建议Layer 4 命中率 20% 时把热点意图下沉到 Layer 3 的示例库中。不要等到崩了再改架构。07 常见坑那些把系统搞崩的决策失误坑 1全量 LLM流量一高就崩见过最多的错误。开发时日均 1000 请求没问题上线后流量翻 100 倍费用和延迟双双爆炸。先建分层再把热点意图逐步下沉。坑 2Embedding 示例质量比数量更重要50 条杂乱示例 → 80% 准确率8 条精心挑选示例 → 91% 准确率。少而精 多而杂示例要覆盖边界 case而不是重复说同一件事。坑 3忘记处理意图缺失Out-of-Scope分类器强行拉到最近的意图用户说了业务外的话回复驴唇不对马嘴。解法每个分类器都加置信度输出低于阈值返回out_of_scope触发 fallback 到 LLM 或人工。坑 4LLM 路由 prompt 太宽泛意图描述里的「不包括」比「包括」更重要。complaint: 用户不满意太泛要写成complaint: 用户明确表达对产品/服务的负面评价【不包括】询问使用方法时的困惑。坑 5一级和二级意图用同一套方案一级意图查订单 vs 退款用 Layer 1/2 就够了。二级意图查订单 → 查物流/改地址/催发货需要语义理解。分层架构里也要再分层——粗粒度快速分细粒度精准分。总结这篇我们把意图识别的五种方案从头到尾拆解了一遍关键词匹配是第一道门 1ms先把 30% 的高频确定意图在这里拦住别嫌它土规则引擎补口语盲区意图 20 个时的最优解组合逻辑 否定条件让覆盖率翻倍Embedding 分类器是分水岭5 条示例就能上线语义泛化解锁所有口语变体小模型 Fine-tune 是生产主力数据够了就上10 倍速度、50% 成本优势封装成 Runnable 无缝接入 LangGraph分层架构才是最终答案把 80% 流量在 Layer 1/2 拦截LLM 只做最后 10% 的兜底费用降 97%学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】