|
感谢各位数据从业者对 Aloudata Agent 首秀直播的深度参与!我们针对直播的 85 个提问中进行了精选浓缩后认真回复了 36 问,涵盖核心功能解读、应用实践及技术细节答疑。
希望对您有所帮助。
逻辑模型(DWD 层明细事实表与维表的关联关系)、指标元数据信息(包括指标名称、计算口径、管理属性等相关信息)、维度元数据信息(维度、维度值等相关信息)和指标血缘关系。
那么多的指标与信息大模型是如何匹配到的?指标准确性如何保障?如何去规避大模型幻觉的问题? 如何做到用户的指标查询需求翻译成查询语义层的请求参数呢?MQL 到 SQL 的映射是具体如何生成? 当用户提出问题时,Agent 首先判断用户意图,例如区分是查询指标口径、获取数据还是生成综合分析报告。
随后,通过向量检索、ES 文本检索以及 KV 关联指标检索等多路召回技术高效检索指标语义层沉淀的指标元数据信息、维度元数据信息、指标血缘关系和逻辑模型关联关系,确保指标与维度的精准召回。
MQL 包含具体的指标、维度、筛选条件信息等,指标语义层对指标进行了要素化组装定义,基于指标语义引擎能力,将指标查询要素的结构与 SQL Query 的结构对齐,实现 MQL->SQL 的自动生成,确保 SQL 翻译的 100% 准确,并通过物化加速与智能路由技术执行查询。
大模型自己本身具备一定的知识,有时候会抽风似的不看上下文,仅凭自身的知识强行生成错误的 SQL。这个问题如何解决? MQL(Metrics Query Language)的本质是对指标平台语义层进行指标查询的 API。包括用户问题涉及的基础度量(基础指标)、时间限定、业务限定(静态或动态维度筛选)、衍生方式(如排名、占比、同环比等)。 MQL 包含基础度量、维度和筛选条件、统计周期、衍生方式四种要素。例如,下面是针对问题:4月一级渠道的童装销售金额及年同比的 MQL {"dimensions":["first_channel"],"metricDefinitions":{"童装销售金额":{"refMetric":"retail_amt"},"童装销售金额年同比":{"refMetric":"retail_amt","indirections":["sameperiod__yoy__growth"]}},"timeConstraint":"DateTrunc([metric_time],\"MONTH\")=DateTrunc(Cast(\"2025-04-0100:00:00\",\"Timestamp\"),\"MONTH\")","filters":["[product_sc_type]=\"童装\""]}可以同一个问题里问两个指标吗?这两个指标来自于不同的表和数据源? 一次性查询多个指标,是生成多个 MQL 查询,单独查询展示?可以一次性查询多个指标,放在一个表格里展示吗? 用户输入的意图较为模糊,直接判断用户要的是某个指标进行查询,准确度怎么样? Aloudata Agent 会对开放式问题进行启发推荐,收窄意图。 实现比较好的智能分析 Agent 的效果要有哪些前提?比如数据归集完整清晰、知识库完备?业务域数据治理定义、口径、指标标准等? 能分别聊一下做明细宽表和搭建指标定义模型的优缺点么? 知识库一方面包含明细级指标语义层,包括指标元数据、维度元数据、指标血缘关系和模型关联关系另一方面,知识库也可以沉淀企业黑话、常规术语和分析思路。 MQL 对于子查询如何实现呢,比如碰到环比、同比数据,需要使用 with、case when 以及更多的子查询场景? Aloudata CAN 指标平台内置的函数体系包含上述计算逻辑,API 支持该类查询调用。 如果数仓里面除了日度指标还有聚合指标,如近 30 天 XX 均价。如果问 3 月份 XX 均价。语义层怎么判断,还是说剔除这类指标? Aloudata CAN 指标平台支持多次聚合类指标定义和查询,虽然只提前定义了比如客单价的指标,用户问的时候,可以基于多次聚合类语义定义能力,快速衍生出“近 30 天日均客单价”的指标,大大降低指标语义的前期准备工作。 指标口径比较复杂,需要多张事实明细表关联后处理,这类场景怎么解决? 指标定义和梳理谁来完成?用户是否需要熟悉业务数据,或者数据结构,或者是数据逻辑? 问数派生指标是什么场景会触发调用,而且派生指标模型可能很难理解,怎么保证筛选准确? 对于没有 SQL 基础的用户,他怎么知道查出来的指标是否是自己想要的? 如果需要做多角色权限的控制,那么在设计数据库和知识库的时候,应该提前做哪些数据分区的准备吗? 可以在指标平台进行数据行列权限的配置,执行查询 SQL 的时候会自动进行权限校验。 可以从几个方面来区分问题的复杂度:
问题的类型:简单问数、复杂的指标归因、综合分析报告等;
单一问题还是多问题:用户的一个对话中是只有单个问题,还是包含多轮对话;
问题中指标计算逻辑的复杂度:比如,只是简单的求和,还是有多层加工逻辑(如先求和再求平均再做排名之类)。
指标结果是通过明细表和维度表关联聚合先计算出来的吗? 用过程中,这个指标数据存储在哪里。是回传到连接的库还是会缓存在 Aloudata 里? 归因是模型的总结,还是你们有 COT 的分析思路? Aloudata Agent 是集语义理解和知识问答于一体吗,还是先小模型理解语义,然后再调用大模型回答? ReAct 的架构是通过大模型来进行复杂问题拆分,还是通过业务逻辑代码进行复杂问题 ReAct 的? Aloudata Agent 充分利用大模型的推理能力,通过 COT 和 React 来进行任务规划与拆解,不需要提前通过 Prompt 来维护复杂问题的拆分思路。 基于 ReAct 架构如何解决上下文长度超限的问题? 我们通过 Tools 和 ReAct 拆分子任务进行了特殊处理,尽可能规避 Tokens 过长的限制。 请问 toB 的场景下,我看都是按单个模型查询的,如果不先选择模型而是通用提问会不会查不出来或者性能不好? Aloudata Agent 本身是多 Agent 协同机制,会根据意图解析调用不同的 Agent 和大模型执行各类子任务。 业务看到的数据都是从最细粒度生成,那怎么保证查询性能? Aloudata CAN 指标平台内置物化加速策略,针对大数据量、高复用性的指标和维度可以配置物化加速方案;
系统根据加速配置自动生成预计算表与任务,无需人工干预;
业务在问数的时候,系统会自动进行查询路由改写,自动匹配到最优的物化表;
对于用户来说不用再关心底下的表和字段,只需从业务视角关注从哪些指标和维度角度看数。
如果生成的查询会造成全表扫描,可能把数据库拖死,有拦截机制吗? Agent 要落地于企业的话,那企业内是否一定要至少有一个 OLAP 数据库呢? 我们基于场景和大模型的特性,考虑到 ROI,采用了模型组合。
在指标检索场景,我们使用的是 Qwen 2.5 72B 模型,开销比较小;
如果是复杂问题,我们使用的是 DeepSeek V3 模型,基于推理模型自动进行任务拆解。
当然在客户场景中,我们可以开放对接更多模型,综合考虑成本和性能的平衡调用不同模型处理不同任务。
提问的时候,可以指定指标或业务分类吗?只针对某个特定的业务领域来提问和回答? 对业务来说,和传统的 BI 有什么区别呢?Aloudata Agent 未来可以直接替代传统的 BI 系统吗?
|