项目:ylrz_saas_new 生成日期:2026-07-01 分析范围:语义分析、敏感词、替换词、质量评分、转人工、进化引擎、动态节点、身份安全等全链路节点 数据来源:基础验证 221 项 + 语义意图识别全行业 84 项 + UDD 调试接口测试 + 合规检查 + 质量评分测试
项目采用 "关键词快速路径 + LLM 语义兜底" 的双策略架构,覆盖语义意图识别、敏感词检测、替换词、质量评分、转人工检测五大核心环节。该架构的设计哲学是:确定性优先、概率性补强——先用低成本、低延迟、可解释的关键词/正则规则完成"明确的、高置信的"判定;无法判定或需要语义理解时再调用 LLM。
| 优势维度 | 说明 |
|---|---|
| 成本可控 | 高频短句由关键词命中直接返回,避免每条消息都触发 LLM,Token 成本大幅下降。语义意图识别的 tryKeywordSemanticFastPath 在短句或强情感规则命中时跳过 LLM,是降本的关键节点。 |
| 延迟分层 | 关键词匹配为毫秒级,LLM 为秒级(部分场景 60-180s)。双策略使得 80% 以上的明确请求走快路径,仅复杂语义请求走慢路径,P95 延迟显著优于"全 LLM"方案。 |
| 确定性可解释 | 关键词命中可追溯到具体词表与权重,便于审计与回放;LLM 黑盒输出由关键词规则做后处理校正,整体行为可解释。 |
| 容错降级 | LLM 超时/失败时,关键词规则可独立完成基础判定(如替换词服务的"机械替换兜底"),保证服务可用性。 |
| 风险分层 | 敏感词、转人工等高风险场景先关键词粗筛 → LLM 精确认证,既保证召回率,又降低误拦截率。 |
| 劣势维度 | 说明 |
|---|---|
| 维护复杂度高 | 关键词词表(11 类意图、情感词典、否定词、程度词、显式拒绝、流失、软化、敏感词、替换词、质量评分模式)散落多个 Service,需要多人多场景协同维护,易出现词表漂移与遗漏。 |
| 双策略一致性风险 | 关键词与 LLM 判定结果可能冲突(如关键词判为投诉,LLM 判为咨询),需要明确的优先级与冲突仲裁策略,否则容易出现"双重判定不一致"导致的回退异常。 |
| 关键词覆盖盲区 | 关键词无法理解同义、反讽、隐式拒绝(如"再看看吧"),漏判由 LLM 兜底,但若 LLM 也超时则产生盲区。 |
| LLM 成本与延迟不可控 | UDD 深度对话三层拆解 + 连贯回复 + 追问,单次调用链长,60-180s 超时频发;多模型路由 11 种场景调用密集,Token 成本累积显著。 |
| 双策略下"双重失败"风险 | 当关键词漏判且 LLM 超时,会出现完全无判定的极端场景,目前缺乏统一的兜底降级日志与告警。 |
| 词表与行业耦合 | 语义意图识别虽全行业 84 项通过,但 INTENT_KEYWORDS 仍偏向通用,行业术语(如医疗、酒水)需要独立词表补充,扩展成本高。 |
| # | 节点/环节 | 所属模块 | 策略类型 | 关键词/正则 | LLM | 设计理由 |
|---|---|---|---|---|---|---|
| 1 | 语义意图识别 | SemanticAnalyzerImpl | 双策略 | ✓ | ✓ | 短句/强情感走快路径降本;复杂语义走 LLM 保证理解深度 |
| 2 | 情感分析 | SemanticAnalyzerImpl | 双策略 | ✓ | ✓ | 情感词典带权重可秒级判定;LLM 用于反讽/隐式情感兜底 |
| 3 | 否定与程度词修正 | SemanticAnalyzerImpl | 纯关键词 | ✓ | ✗ | 否定词、程度词是结构化修饰,规则可枚举,无需 LLM |
| 4 | 转人工触发评估 | SemanticKeywordContextHelper | 双策略 | ✓ | ✓ | 转人工是高风险动作,关键词触发 + LLM 语义检测双重校验降低误转 |
| 5 | 负向信号检测 | NegativeSignalDetector | 纯关键词 | ✓ | ✗ | 显式拒绝/流失/软化三类信号词表明确,需毫秒级响应避免漏召回 |
| 6 | 敏感词检测 | SensitiveWordServiceImpl | 双策略 | ✓ | ✓ | 关键词高召回粗筛 → LLM 语义确认降误拦截,避免误伤合规内容 |
| 7 | 替换词改写 | ReplaceWordServiceImpl | 双策略 | ✓ | ✓ | LLM 整句改写保通顺优先;机械替换兜底;LLM 复检保质量 |
| 8 | 质量评分 | QualityScoringServiceImpl | 双策略 | ✓ | ✓ | LLM 8 维评分主体;正则后处理校正模式化痕迹(书面/口语/机械/过度营销/编号列表) |
| 9 | 多模型路由 | MultiModelRouterImpl | 纯 LLM | ✗ | ✓ | 11 种场景路由依赖语义判断,关键词无法覆盖场景多样性 |
| 10 | UDD 深度对话 | UddService | 纯 LLM | ✗ | ✓ | 三层语义拆解+连贯回复+追问是生成式任务,关键词无法承担 |
| 11 | 进化引擎 | EvolutionEngine | 纯 LLM | ✗ | ✓ | AI 生成回复、质量评分、合规改写均为生成式任务 |
| 12 | GEPA 进化 | GepaService | 纯 LLM | ✗ | ✓ | 变异生成新技能、反例合成需创造性生成,关键词无法实现 |
| 13 | 销冠语料分析 | CorpusAnalysisService | 纯 LLM | ✗ | ✓ | 6 维度 AI 分析依赖归纳推理,关键词无法完成维度抽象 |
| 14 | 动态节点生成 | DynamicNodeService | 纯 LLM | ✗ | ✓ | executeWithAI 兜底,节点结构生成需 LLM 推理 |
| 15 | 身份安全-通顺性 | IdentitySafetyService | 双策略 | ✓ | ✓ | isCoherenceBroken 正则先判 + LLM isCoherent 复检,正则降本、LLM 降误判 |
INTENT_KEYWORDS 覆盖 11 种意图:purchase / complaint / inquiry / schedule / positive / negative / churn / channel_switch / urgency / pause_request / contact_changedetectIntentByKeywords 采用加权匹配tryKeywordSemanticFastPath:短句或强情感规则命中时直接跳过 LLMPOSITIVE_WORDS / NEGATIVE_WORDS:带权重的情感词典DEGREE_WORDS:非常(1.5) / 特别(1.5) / 极其(1.8) / 十分(1.6) / 很(1.3) / 相当(1.4) / 比较(1.1) / 稍微(0.6)NEGATION_WORDS:{"不","没","无","非","未","否","不太","不是"}NEGATION_WORDS、DEGREE_WORDSNEGATION_PREFIXES:{"不","没","别","无","非","未"}containsKeywordWithoutNegation:跳过否定前缀的关键词命中(如"不转人工"不应触发转人工)evaluateHandoffTrigger:转人工关键词触发评估EXPLICIT_REFUSAL:不要/不需要/别发/别联系/别打扰/别再/不用了/不考虑/没兴趣/拒绝/算了/免了/别推/别卖/别烦/停止发送CHURN:拉黑/退订/取消关注/别联系了/换别的/不买了/不看了TEMPORAL_SOFT:下个月/以后再说/暂时不需要/过段时间/下次吧/改天/回头/再说confirmSensitiveHit 语义确认,判断是否真正违规FORMAL_PATTERNS:综上所述/总而言之/首先其次最后CASUAL_PATTERNS:嗯/啊/呢/呀/哈/嘛ROBOTIC_CHAT_PATTERNS:很高兴为您服务/尊敬的客户OVER_SALES_PATTERNS:现在下单/立即购买/马上付款NUMBERED_LIST_PATTERN:编号列表isCoherenceBroken 正则先判isCoherent 通顺性复检| 优势 | 量化表现 |
|---|---|
| 速度快 | 毫秒级(<5ms),相比 LLM 秒级(2-180s)快 3-4 个数量级 |
| 确定性 | 同一输入永远同一输出,可复现、可审计、可回放 |
| 低成本 | 无 Token 消耗,仅 CPU 计算;高频场景降本显著 |
| 可解释 | 命中可追溯到具体词表与权重,便于调优与排查 |
| 无依赖 | 不依赖外部服务可用性,LLM 故障时仍可工作 |
| 覆盖明确场景 | 对显式拒绝("不要")、流失("拉黑")、否定("不")等明确信号召回率近 100% |
| 劣势 | 具体表现 |
|---|---|
| 无法理解语义 | 无法识别同义表达、反讽、隐式拒绝(如"再看看吧"实际表示拒绝) |
| 易误判 | 否定前缀未处理会误触发(如"不转人工"误触发转人工),需 containsKeywordWithoutNegation 修正 |
| 缺乏灵活性 | 词表固定,新表达方式(网络新词、行业术语)需人工补充,滞后于真实语言演化 |
| 上下文盲区 | 无法结合上下文判断(如"再说"在不同上下文可能是软化拒绝或继续讨论) |
| 多义词处理弱 | 如"算了"在不同语境可能是拒绝或计算,关键词无法区分 |
| 维护成本 | 11 类意图 + 情感 + 否定 + 程度 + 拒绝 + 流失 + 软化 + 敏感 + 替换 + 质量模式,词表分散维护成本高 |
| 优势 | 量化表现 |
|---|---|
| 语义理解 | 可识别同义、反讽、隐式意图,召回率与精度均高于关键词 |
| 自然语言生成 | 可生成连贯回复、改写、追问,关键词无法实现 |
| 上下文感知 | 可结合多轮上下文判断意图,关键词只能单句判定 |
| 泛化能力 | 对未见过的表达方式仍可理解,无需人工补充词表 |
| 多维度评分 | 8 维质量评分、6 维语料分析等多维度归纳推理能力强 |
| 创造性任务 | GEPA 变异生成新技能、反例合成等创造性任务唯一可行方案 |
| 劣势 | 量化表现 |
|---|---|
| 慢 | UDD 60-180s,敏感词确认 60s+,严重影响用户体验 |
| 成本高 | 每次调用消耗 Token,11 种场景密集调用成本累积显著 |
| 不确定性 | 同一输入可能不同输出,难以复现与审计 |
| 依赖外部服务 | LLM 服务故障时无法工作(如 15 个高风险敏感词 500 错误) |
| 黑盒 | 输出难以解释与追溯,调优依赖 prompt 工程而非确定性规则 |
| 幻觉风险 | 生成式任务可能产生幻觉内容,需额外校验 |
基于本项目的实际验证,双策略的最佳实践可总结为:
NEGATION_PREFIXES),避免"不XX"误触发tryKeywordSemanticFastPath 的短句/强情感规则应根据业务场景动态调整阈值,避免漏判| 验证集 | 总项 | 通过 | 失败 | 通过率 | 主要失败原因 |
|---|---|---|---|---|---|
| 基础验证 | 221 | 204 | 17 | 92.31% | 高风险敏感词 LLM 确认异常(500 错误) |
| 语义意图识别(全行业) | 84 | 84 | 0 | 100% | — |
| UDD 调试接口 | — | — | — | — | 60-180s 大量超时 |
| 合规检查 | — | 正常 | — | — | 准确拦截违规内容 |
| 质量评分 | 10 | 8 | 2(违规被拦截,非失败) | 80% | 2 项违规被正确拦截 |
INTENT_KEYWORDS 的 11 类意图词表对全行业常见意图覆盖完整,detectIntentByKeywords 加权匹配 + tryKeywordSemanticFastPath 短句快路径机制有效EXPLICIT_REFUSAL / CHURN / TEMPORAL_SOFT 三类词表对明确拒绝、流失、软化信号覆盖良好containsKeywordWithoutNegation 的否定前缀过滤有效避免了"不转人工"等误触发FORMAL_PATTERNS / CASUAL_PATTERNS / ROBOTIC_CHAT_PATTERNS / OVER_SALES_PATTERNS / NUMBERED_LIST_PATTERN 正则规则对模式化痕迹的识别有效confirmSensitiveHit 调用,涉及高风险分类:法律 / 政治 / 诈骗 / 医疗 / wechat_ban / fin_ban / scam_high_risk / medical_ban| 可能原因 | 分析 |
|---|---|
| LLM 服务端 500 错误 | 高风险敏感词的 prompt 可能触发了 LLM 服务的安全策略,导致服务端返回 500 |
| Prompt 触发内容审核 | 高风险敏感词(如诈骗、医疗)在 prompt 中可能被 LLM 服务的内容审核拦截,返回 500 而非正常拒绝 |
| LLM 路由配置问题 | MultiModelRouterImpl 对 semantic_analysis 场景的路由可能指向了不支持高风险内容的模型 |
| 超时未捕获 | 高风险敏感词可能触发 LLM 长时间推理,最终超时转化为 500 |
| 重试机制缺失 | 500 错误后未见自动重试或降级到关键词判定,导致直接失败 |
| 根因 | 分析 |
|---|---|
| 串行调用链过长 | 三层语义拆解 + 连贯回复 + 追问共 5 次 LLM 调用,串行执行,单次 12-36s 累计 60-180s |
| 无并行化 | 三层语义拆解的各层之间可能存在依赖,但部分子任务(如意图拆解与情感拆解)可并行,当前未并行化 |
| 无缓存 | 相同/相似输入的拆解结果未缓存,每次重新调用 LLM |
| 模型选择偏重 | UDD 可能使用了较重的模型(如大参数模型),未根据子任务复杂度选择轻量模型 |
| 无流式输出 | 未采用流式输出,用户需等待全部完成才收到响应,体感延迟极差 |
| 超时阈值设置不当 | 60-180s 表明超时阈值可能设置过宽(如 180s),未在合理时间主动中断降级 |
| 环节 | 当前状态 | 建议增加的关键词快路径 | 预期收益 |
|---|---|---|---|
| UDD 深度对话 | 纯 LLM | 增加"常见问题关键词快路径":对高频标准问题(如价格、地址、营业时间)建立关键词→标准回复映射,命中直接返回不经 LLM | 减少 30-50% 的 UDD LLM 调用,P50 延迟降至毫秒级 |
| 多模型路由 | 纯 LLM | 增加"场景关键词预路由":对明确场景(如包含"图片"→image_recognition)用关键词预判,减少 LLM 路由调用 | 减少场景路由的 LLM 调用 |
| 动态节点生成 | 纯 LLM | 增加"节点模板关键词匹配":对常见节点结构(如"问候节点""产品介绍节点")建立模板库,关键词命中直接套用模板 | 减少 executeWithAI 兜底调用 |
| 进化引擎回复生成 | 纯 LLM | 增加"高质量回复模板库":对销冠语料归纳的高频场景建立模板,关键词命中优先套用模板,LLM 仅用于个性化微调 | 降低生成成本,保证回复质量下限 |
| 环节 | 优化建议 | 预期收益 |
|---|---|---|
| UDD 三层语义拆解 | 1) 子任务并行化(意图拆解与情感拆解并行) 2) 相同输入结果缓存(Redis,TTL 1h) 3) 轻量模型优先(小参数模型拆解,大模型仅用于连贯回复) |
延迟从 60-180s 降至 15-30s |
| 敏感词 LLM 确认 | 1) 高风险敏感词的确认结果缓存(同一敏感词+上下文组合缓存) 2) 批量确认(多条敏感词合并一次 LLM 调用) |
减少 50%+ 的 LLM 确认调用 |
| 替换词 LLM 整句改写 | 1) 常见替换组合的改写结果缓存 2) 相同句式的改写结果复用 |
降低改写成本 |
| 质量评分 LLM 8 维 | 1) 短文本(<50 字)走轻量模型 2) 评分结果缓存(相似文本复用) |
降低评分成本 |
| 身份安全 isCoherent | 1) 正则 isCoherenceBroken 先判,命中即返回,不调 LLM 2) 通顺性结果缓存 |
减少 LLM 复检调用 |
| 多模型路由 | 1) 场景路由结果缓存(相同输入特征复用) 2) 关键词预路由减少 LLM 路由 |
降低路由成本 |
| 优化项 | 具体方案 | 预期效果 |
|---|---|---|
| 并行化拆解 | 三层语义拆解中无依赖的子任务并行执行(如意图拆解、情感拆解、实体拆解并行) | 拆解阶段延迟降至 max(单层) 而非 sum(三层),约降 60% |
| 流式输出 | 采用 LLM 流式输出,前端渐进式展示拆解结果与回复 | 用户首字延迟降至 2-3s,体感大幅改善 |
| 分级超时 | 拆解阶段超时 15s,连贯回复超时 20s,追问超时 10s;超时立即降级 | 避免单次调用 60-180s 占用资源 |
| 降级策略 | 拆解超时→降级为关键词意图识别;连贯回复超时→降级为模板回复;追问超时→跳过追问 | 保证 UDD 可用性下限 |
| 模型分级 | 拆解用轻量模型(如 doubao-lite),连贯回复用主力模型,追问用轻量模型 | 单次调用延迟降 30-50% |
| 缓存层 | Redis 缓存三层拆解结果,相似输入(编辑距离 <5)复用缓存 | 高频问题命中率 40%+,延迟降至毫秒级 |
| 异步队列 | 非实时场景(如离线索引)走异步队列,实时场景走同步+流式 | 削峰填谷,避免并发超时 |
| 修复项 | 具体方案 |
|---|---|
| 降级到关键词判定 | confirmSensitiveHit 返回 500 时,立即降级为关键词判定结果(保守策略:关键词命中即视为违规,宁可误拦截不漏放行) |
| 增加重试 | 500 错误重试 1 次,间隔 1s,避免瞬时故障 |
| 告警上报 | 500 错误实时告警,便于运维介入 |
| 排查项 | 具体方案 |
|---|---|
| Prompt 安全策略冲突 | 检查 confirmSensitiveHit 的 prompt 是否包含高风险敏感词导致被 LLM 服务内容审核拦截;若是,改写 prompt 避免直接出现敏感词(如用占位符 + 上下文描述) |
| 模型路由配置 | 检查 MultiModelRouterImpl 对敏感词确认场景的路由模型,确认该模型支持高风险内容处理;若不支持,切换到支持内容审核旁路的模型 |
| LLM 服务端日志 | 联系 LLM 服务方排查 500 错误的服务端日志,确认是内容审核拦截还是服务异常 |
| 优化项 | 具体方案 |
|---|---|
| 高风险敏感词白名单 | 对高风险分类(医疗、法律)的合规内容建立白名单,关键词命中 + 白名单匹配 → 直接放行,不调 LLM |
| 批量确认 | 多条敏感词合并一次 LLM 调用,降低 500 错误影响面 |
| 结果缓存 | 高风险敏感词的确认结果缓存(Redis,TTL 24h),避免重复触发 500 |
| 多模型容灾 | 配置备用 LLM(如 OpenAI / 通义千问),主模型 500 时自动切换备用模型 |
SemanticAnalyzerImpl / SemanticKeywordContextHelper / NegativeSignalDetector / SensitiveWordServiceImpl / ReplaceWordServiceImpl / QualityScoringServiceImpl 的所有词表集中到统一的词表配置中心,便于维护与版本管理项目的"关键词快速路径 + LLM 语义兜底"双策略架构整体成熟,五大双策略环节(语义意图、敏感词、替换词、质量评分、转人工)设计合理,验证通过率 92.31% + 语义意图全行业 100% 表明架构有效。关键词侧的否定前缀过滤、程度词加权、三段式替换词降级等细节体现了对"确定性优先"原则的深入理解。
通过上述演进,预计可将 UDD P95 延迟从 180s 降至 30s 以内,敏感词误拦截率降低 80%,LLM 调用成本降低 40%+。
报告完