跳到主要内容

常见问题

使用相关

数据查询失败

排查思路:

  1. 检查SQL 生成是否出错,包括:SQL 语法是否错误、SQL 中表名和字段名是否跟数据集中一致。
  2. 检查「智能体详情 - 基础配置」,数据集表名中是否有空格和特殊符号。对大模型来说,空格和特殊符号非常难理解,容易生成出错,建议这里把相关空格和特殊符号去掉,再来看生成 SQL 是否会出错。
  3. 检查表名和字段名是否出现重名现象。目前查询 SQL 中如果表名和某字段名一致,会导致 BI 侧 SQL 查询报错。
  4. 检查接口报错,排除 SSO 配置问题。

  • 出现原因:由于 Data Agent 依赖 SSO 获取用户 cookie,当运维配置错误的 SSO 数据,会出现 cookie 获取失败,最终表现在 SQL 执行上,是无法执行的
  • 解决方法
    • 如果用的 data_synapse 是 2.2.0 版本之前,如果该用户没有 sql 中对应数据集的权限,会导致 sql 查询失败,需要升级到>=2.2.0 的版本(该版本只要有智能体权限都可以进行问数),或者给该用户授权相关的数据集权限
    • 确认用户提供的 SSO 是 private_key,不是 public_key,如果提供错误需要重新生成插入 SSO
    • 需要运维检查 SSO 编码的数据库数据是否插入到 pg 的 SSO 这张 table 中,如果未插入,请重新插入
    • 需要运维自身检查生成,生成的 sso token 数据是否标准,domain_id 和 user_id 的 base64 解码后是否没有带空格或者回车(如果使用命令行有可能会出现空格的情况),如果存在问题,请修复后再插入

在「管理中心 > 企业配置 > 企业视觉 > LOGO 与外观 > LOGO 与名称」界面,取消勾选「显示」按钮。

权限相关

无法进入 Data Agent 后台

请检查「管理中心 > 用户管理 > 角色」配置中,用户是否有「ChatBI 编辑」权限。

无法看到问数入口/智能体

  • 针对无法看到问数入口的问题,请检查「管理中心 > 用户管理 > 角色」配置中,用户是否有「ChatBI 查看」权限。

  • 针对无法看到提问智能体的问题,请按以下步骤检查:

    1. 检查智能体是否已经启用。
    2. 检查问数用户是否有当前智能体的使用者权限。

Data Agent 后台缺少权限管理模块

针对无法看到权限管理模块的问题,请检查「管理中心 > 用户管理 > 角色」配置中,用户是否有「ChatBI 授权」权限。

无法进行提问

当前端报错为「当前提问余额不足,请联系管理员」时,请联系观远数据客户成功经理进行充值。所有客户环境默认额度为 5000 个问题,对合作客户会调整约定额度。

准确性问题排查

除产品报错外,我们会收到用户以下几类问题。

数据查询错误

Data Agent 回复的数据结果,不是用户想要的

  1. 了解用户想要的数据结构和口径定义,明确出错内容

    1. 查询无数据:优先检查 SQL 生成是否正确(重点看表名、字段名是否与数据集维护一致),如 SQL 查询逻辑正确,则按照该逻辑前往数据集进行筛选检查,看数据源中是否有数据。

    2. 缺少时间范围指定:如用户问句中,对时间的定义比较模糊(例如,提问为 " 最近销量怎么样 "),需检查通用知识中是否已定义「最近」的含义。如没有相关知识定义,需要先前往业务知识库 - 通用知识进行补充。

    3. 聚合维度错误、指标选取错误:如用户问句中,没有明确的维度信息(例如,指定 SKU、地区、店铺等等),需检查业务知识库是否有相关知识、样例集是否有问题 +SQL 对对当前问题及回答进行了定义。

      1. 业务知识库示例:当用户问到<...>时,请根据组织代码字段关联组织数据集和日报表数据集,汇总组织层级值为 3 的所有组织,包含子组织,按组织代码和组织名称汇总所有出勤工时
      2. 样例集示例:
        问题:2023 年 3 月某品牌商超渠道的人群资产分布情况
        查询 SQL:```SELECT 人群资产类型 AS 人群资产类型, COUNT(DISTINCT 消费者唯一标识) AS 人数 FROM 会员表 WHERE 归属渠道 = '线下 ' AND 品牌 = '雪颂兰 ' AND CAST('2023-03-31' AS DATE) BETWEEN TO_DATE (开始时间) AND TO_DATE (截止时间) GROUP BY ` 人群资产类型 ````
      3. 指标生成错误:检查当前回复中的指标,是不是在业务知识库/样例集中已有口径定义。如果没有,需先在业务知识库/样例集中进行定义补充。
  2. 查看运维日志,检查当次问答过程中,是否召回了相关知识,如知识已维护、实际未召回,请联系观远进行处理。

    说明

    通用知识每次会话都会召回,不在运维日志中展示。

  3. 如以上步骤无法解决,请联系观远进行处理。

可视化生成错误

指定生成某种图表类型,生成结果为表格/没有生成可视化图表,直接生成表格

  1. 请检查 BI 当前版本,是否为 7.0 及以上版本。在 6.6 版本中,「指定可视化图表」能力不生效。
  2. 请检查当前表格数据结构,是否能转换为 BI 可视化图表。例如,如果返回数据结构为维度 - 时间、维度 - SKU、指标 - 销售额,本身该图表无法在 BI 渲染为柱形图,属于正常现象。
  3. 如以上步骤无法解决,请联系观远进行处理。

智能体使用 Q&A

  1. Q:如何提升问答的准确率?

    1. 确保提问符合有效提问的基本结构,时间/条件/指标清晰明确、避免歧义
    2. 确保数据质量,避免数据脏乱差而增加知识维护难度
    3. 根据需要问答的问题清单,针对性添加知识(通用知识、业务知识、样例集)
  2. Q:在「测试」中添加提问是否可以提升准确率?

    不能。「测试」功能仅仅是批量验证问答效果,用于评估问答准确性

  3. Q:复杂的同类知识逐条维护更好还是放一起维护更好?有的长知识可以学习到,有的不可以

    业务知识建议逐条维护,避免将没有关联的业务知识放在同一条里

  4. Q:知识库编写表达千人千面,为了减少其他人的阅读理解成本,是否有推荐的统一的格式?例如 Markdown 语法等

    知识库没有强制格式要求,类似于 prompt 描述,满足逻辑明确、表述清晰的要求即可。例如:" 提问涉及 xxx 时,默认查询/显示/计算……"、" 提问涉及 aaa, bbb, ccc,指的都是 字段1"、" 提问涉及 aaa, bbb, ccc,指的都是相同概念:字段2= xxx"、" 指标名称 = 具体计算公式 "

  5. Q:知识库内容丰富后,如何快速定位到需要修改的知识?如何识别新增知识和历史的知识之间的冲突?

    是否需要添加知识,取决于问答效果。知识库增/删/改,建议优先测试问答效果,当有提问无法满足时(知识缺失/错误/冗余),自然能明确是否需要以及对应增/删/改的内容,「业务知识」支持搜索快速找到包含关键词的知识,新增知识前可以先搜索进行参考

    |400

  6. Q:如何模糊匹配命中正确的字段,例如:查询字段名相近,或者枚举值相近的字段时,且无法 100% 枚举(枚举量庞大),如何准确选取字段取值?

    1. 首先确认是否完成枚举值学习(基础配置 - 数据集 - 展开 或 查看运维日志是否有 Value example)
    2. 其次,优先让大模型根据提问包含的专有名词,直接自主找到对应的值,如与枚举值完全相同仍查对需要记录 bad case,不完全相同的建议通过模糊匹配的方式引导大模型,参考以上 临时解决方案 的业务知识

  7. 从大类、中类、小类,系列、子系列等中选对正确的字段是否只能触发反问让业务去选自己需要的字段?是否有其他方案建议?

    1. 如果提问包含的名词,在多个字段中都有 完全相同 的枚举值,只能通过反问让用户选择。例如 大区城市 的字段枚举值都是地级市,需要添加业务知识:" 当用户提到<城市名>时,请让用户明确提问中的城市名,具体是指 城市 还是 大区。"
    2. 如果不同字段的枚举值并未完全相同,那么建议明确查询标准,哪些专有名词指的是 字段1,哪些指的是 字段2。例如:" 提问涉及 aaa,bbb,ccc,指的都是 大类,涉及 ddd,eee 指的都是 系列。"

如何获取日志给到观远进行问题排查

用户在「管理中心 > 运维管理 > 运维日志」模块,可下载 Data_Synapse 服务日志给到观远侧进行问题排查。如用户为对接私有化大模型客户,则需同时下载提供 Data_Mind 服务日志给到观远侧。

典型问题排查

错误的数据集或列使用

如果 ChatBI 试图从错误的数据集中提取数据,或对错误的列进行分析,您可以通过以下方式调整数据:

  1. 提供清晰准确的描述:检查您的数据集及其关联的元数据,以确保使用的术语(主题关联数据集的表名、列名等)与用户在提交问题中使用的术语相匹配。如果不匹配,请完善描述或添加一条业务知识,将数据集中使用的术语映射到问题中使用的术语。

  2. 添加示例查询:提供 ChatBI 可以用来学习的示例 SQL 至样例集(原错题集)中。

  3. 从主题中移除数据集或列:有些数据集可能包含重叠的列或概念,这使得 ChatBI 难以知道在响应中使用哪些数据。如果可能,移除不必要的或重叠的数据集或列。您可能需要创建另一个数据集并关联到此主题,其中只包含必要的列。

错误的过滤条件

生成的查询通常包括一个 WHERE 子句,根据特定值过滤结果。因为 ChatBI 无法看到实际数据,所以它可能会将 WHERE 子句设置为过滤错误值。例如,它可能试图匹配名称“中国”,而数据集的内容是英文,如“China”,对于这种情况,尝试以下策略:

在此数据集列注释中加说明:如果列值集合相对较小,请枚举每个列描述的有效字符串。有时,对于常见的枚举,说“使用三个字母的国家 ISO 代码”而不是列出每个值就足够了。

错误的表连接

主题可能不知道应该如何将不同的数据集连接在一起,您可以在通用业务知识中,用语言描述如何将两张表关联在一起, 例如:使用 小票订单明细表货号 关联 商品维表

错误的指标计算方式

指标的计算和汇总方式可能非常复杂,ChatBI 由于不理解的其中的业务细节,从而产生了错误的 SQL,可以尝试实施以下一种或多种解决方案:

  1. 如果您的指标是从基础数据集聚合的,请提供计算每个汇总值的示例 SQL 查询。

  2. 如果您的指标,已经预先计算并存储在聚合数据集中,请在数据集注释和通用知识中说明这一点,如果该表中的指标可以进一步汇总,请指定每个指标的合法聚合。

  3. 如果您试图生成的 SQL 非常复杂,请尝试创建聚合相关指标后的数据集,并关联到本主题。

被忽略的业务知识

即使您已经在注释中,解释了您的数据集和列,并提供了业务知识说明,您的主题可能仍然没有正确使用它们,尝试以下一种或多种策略:

  1. 提供正确使用您的示例查询(在样例集(原错题集)中)。示例查询特别有效,可以教会您的主题如何使用您的数据。

  2. 基于您现有的数据,构建更加简化(聚合层次更高)的数据集。

  3. 审查您的样例集(原错题集)和业务知识,删除不相关的内容并检查业务知识间是否有冲突来聚焦主题。

  4. 尝试开始新的聊天,一个会话中之前的问答可能会影响后续问答的回复质量,您可以开启一个新的会话,这将清空上下文,为您提供一个新的起点。

业务知识的一致性问题

在维护 ChatBI 主题时,可能会遇到业务知识的冗余、过时、不一致。这种情况通常发生在主题中维护了多条业务知识,这些知识在某些情况下是相互矛盾的,导致 ChatBI 在生成 SQL 语句时产生错误,以下是一些可能导致这种情况的原因以及相应的行动建议:

  1. 数据来源不一致:如果主题中的数据来自多个不同的数据源,而这些数据源在某些字段的表示上存在差异。例如,零售公司的销售数据和库存数据分别来自两个不同的系统,销售系统中的“产品 ID”和库存系统中的“产品 ID”虽然代表相同的产品,但使用了不同的编码规则。这时就需要您进一步澄清业务知识,在 ChatBI 中明确定义两个“产品 ID”字段的转换逻辑与映射关系。

  2. 业务规则变化:随着业务的发展,某些业务规则可能会发生变化,但旧的业务知识没有及时更新,导致冲突。例如公司决定从 10 月 1 日起将退货商品的处理规则从“按原价退款”变更为“按购买价格的 90% 退款”,但 ChatBI 中的业务知识没有及时更新。这时就需要您在 ChatBI 中添加新的业务知识,明确指出退货规则的变化,并指定生效日期。

  3. 知识表述不明确:如果业务知识表述不够明确,ChatBI 可能无法准确理解其含义,从而在不同情况下产生不同的解释。比如在 ChatBI 中,业务知识中虽然描述了“客户留存率”,但没有明确指出计算留存率的具体方法,比如是基于时间周期还是基于交易行为。这时就需要您明确定义留存率的计算方法,并在 ChatBI 中更新这一定义。

  4. 数据模型复杂:在复杂的数据模型中,相同的业务概念可能通过不同的数据表和字段来表示,如果没有明确的映射关系,就可能导致 ChatBI 在生成 SQL 语句时产生错误。比如公司的销售数据存储在多个表中,包括“销售订单表”、“销售退货表”和“促销活动表”,这些表中都有“销售金额”字段,但计算方式各不相同。 这时就需要您在 ChatBI 中明确指出不同情况下“销售金额”的来源和计算逻辑。

  5. 业务数据的多义性:在业务沟通和数据表达中,相同的术语可能有不同的含义,这种多义性可能会导致误解和数据混淆。比如在生产部门, “新产品”可能指的是过去一年内发布的任何产品,而在运营部门,“新产品”可能指的是当前季节推出的产品。针对这类“同名不同义”的问题,需要您在 ChatBI 中定义“生产部门新产品”和“运营部门新产品”两个术语,并为每个术语设定时间范围。必要时,ChatBI 会通过反问来要求您澄清目前的上下文来环境,基于您的回复来生成更准确的回答。