复合提问需先启用语义解析增强,再按意图类型拆分并独立向量化检索:事实型如“Q3销售数据”转为“销售额 sum Q3 all_regions”,对比时序型如“华东区投诉率是否上升”转为“客户投诉率 Q3 Q2 >”,两向量并行检索。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当用户在火山引擎云搜索或RAG服务中输入“查一下Q3销售数据,顺便看看华东区客户投诉率有没有上升”,这类含多个意图的复合提问,系统若直接向量检索,会因语义混杂导致召回率骤降——向量空间里,“销售数据”和“投诉率”距离过远,模型无法同时锚定两个焦点。
先识别问题类型:区分事实型、对比型、时序型
打开云搜索控制台 → 进入「查询分析」标签页 → 点击右上角「启用语义解析增强」开关。该功能默认关闭,【不开启则后续所有拆分规则均不生效】。
系统自动对输入句进行依存句法分析,将“Q3销售数据”标记为【事实型查询】(目标是获取具体数值或报表),将“华东区客户投诉率有没有上升”标记为【对比型+时序型混合查询】(隐含与Q2或去年同期的比较动作)。
注意:若原始提问含“是否”“有没有”“变没变”等词,必须触发时序对比解析;若仅含“多少”“什么”“列表”,则归为纯事实型。
按意图粒度切分:用分号/逗号/连词作为硬切点
方法一:人工预设分隔符规则(适用于API调用场景)
在请求体中设置参数 "split_by_punct": true,系统将优先按中文分号(;)、顿号(、)、逗号(,)切割,但会跳过引号内标点。例如:“销售额;客户数;投诉TOP3城市”→ 拆为3个独立子查询。
方法二:动词驱动切分(适用于对话式RAG)
启用 verb_split_mode 后,系统识别主谓结构断点:“查一下A”和“看看B”被强制分离,因为“查”与“看”是两个独立动作动词,各自绑定宾语形成原子意图单元。
方法三:NER实体隔离(高精度场景必选)
在控制台「高级策略」中勾选「启用领域实体识别」,系统调用豆包大模型专属NER模块,将“Q3”识别为时间实体、“华东区”识别为空间实体、“销售数据”“投诉率”识别为指标实体。每个实体组合构成唯一可检索路径,避免“Q3华东区销售数据”被误匹配成“Q3华北区”。
重构检索向量:为每个子问题生成独立embedding
第一步:对“Q3销售数据”子句,注入领域提示词模板:
“请将以下查询转为标准BI指标口径:{原句} → 输出格式:[指标名] [时间维度] [空间维度] [聚合方式]”。经豆包模型重写后输出:“销售额 sum Q3 all_regions”。
第二步:对“华东区客户投诉率有没有上升”子句,触发时序对比模板:
“请提取对比基准:{原句} → 输出格式:[指标名] [当前周期] [对比周期] [比较运算符]”。模型输出:“客户投诉率 Q3 Q2 >”。
第三步:将两组标准化字符串分别送入豆包向量模型v2.4,生成两个独立向量。这两个向量不再拼接,而是并行发起检索请求——【拼接向量会导致语义坍缩,召回准确率下降超60%】。











