You need to enable JavaScript to run this app.
导航
最佳实践:智能分析数据查询链路逻辑说明
最近更新时间:2025.11.07 14:21:22首次发布时间:2025.11.07 14:21:22
复制全文
我的收藏
有用
有用
无用
无用

本文为您概要介绍智能分析Agent在进行数据查询时的主要链路节点,和对应节点上的要点说明。

通用问数链路

使用智能分析Agent进行数据查询时,智能体会基于您的提问进行图表查询并返回给您最终的查询结果,在智能体的底层数据查询链路大致流程如下。
Image

  1. 智能体会基于您的提问,通过NL2SQL,生成数据查询SQL query。
  2. 智能体会基于您配置的知识、数据集、Prompt(含系统Prompt)进行知识召回,然后选择需要查询数据的表,并调用大模型工具对数据查询SQL进行改写、执行。
  3. 最终返回数据查询结果。

在通用问数链路中:

  • 问数链路高度依赖ANSI_SQL工具的调用。
  • 多数场景下,只需要调用一次ANSI_SQL工具;React范式下,React的过程可能会由模型判决,是否继续触发SQL工具调用。
  • 一次完整的React过程,如果首次SQL调用结果就不够准确,则整个链式过程通常也就质量不高。

多路并行链路

引入多路并行的原因

大模型在请求与响应的交互过程中,幻觉是客观存在的固有问题,会影响数据查询输出内容的准确性。
采用多路并行生成策略,可针对同一用户请求,同步触发多路径的模型推理过程,得到多个独立的候选输出结果,由智能体对候选结果进行投票择优,返回最优结果,以提高数据查询结果的准确性。

多路并行的问数链路流程

如果您打开了多路并行的开关,则每次进行数据查询时,原先单一的通用问数链路会默认变更为同时触发了三路问数链路,大致流程如下图所示。
Image

  1. 智能体会在三路链路中均开始执行数据查询任务,并对首次SQL执行结果进行投票,基于多路择优决策逻辑选出其中最优的结果。
  2. 如果数据查询任务涉及多次SQL执行,则首次SQL执行结果中:
  • 最优的链路会继续后续SQL任务执行。
  • 其他链路不再执行。
  1. 最终返回多链路中最优的数据查询结果。

在多路并行的链路中:

  • 默认会开启3路数据查询链路。
  • 投票择优发生在第一个SQL执行的过程:
    • 首次SQL执行结果不够准确的话,通常整个链路的质量也不会太高,因此需优先保障首次SQL的执行结果。
    • 首次SQL执行时,上下文内容较少、并发较少,投票择优性价比高。
    • 通常大部分的问数也只会执行一次SQL。
  • 多路择优决策逻辑基于兼容性矩阵,详情如下文所示。

多路择优决策逻辑

基于兼容性矩阵,分 3 步完成决策,最终输出 VotingResult。

(1)全连通(is_all_equals )➡️ 先判断 “谁能代表谁”

  • 目标:判断所有结果是否 “相互兼容”(强连通);
  • 实现:用 Floyd-Warshall 算法计算节点间的双向可达性
  • 结论:若所有节点两两可达,判定为 “全连通”,直接返回默认主流索引(0)。

(2)主流挖掘(find_major_index )➡️ 打 “表” 记录

  • 核心逻辑:“被最多结果连通的节点,就是主流”;
  • 实现:统计矩阵每列的 1 的个数,计数最大的列对应的索引即为 major_index(主流结果索引)。