Nora问答错误排查

每个AI员工有着各自不同的逻辑,本篇文章介绍下Nora(最通用的问答AI员工)在遇到结果不符合预期时,如何排查以及调整。

Nora的核心逻辑

Nora的完整流程如下:

排查步骤

当出现的结果和预期不相符或者报错时,按照以下步骤进行排查:

前置检查:问答持续 loading 转圈

如果问答结果一直处于 loading 状态(持续转圈),首先需要检查 Embedding 模型是否正常运行

检查方法

进入 业务建模 -> 数据管理 -> 学习所有数据,查看学习进度。重点关注最后的 Embedding 阶段是否正常完成。

  • 如果 Embedding 阶段报错或卡住,说明 Embedding 模型可能配置错误或服务异常,需要检查:

    • Embedding 模型服务是否正常运行
    • 模型配置(如 API Key、模型名称)是否正确
    • 网络连接是否正常
  • 只有当 Embedding 阶段正常完成后,问答功能才能正常工作。

第一步:检查标准化后的提问是否正确

首先查看 Nora 给到 Data Query(Alisa) 工具的标准化后的提问是否正确。

查看位置:Data Query(Alisa)工具的参数以及结果卡片的标题中可以看到。

第二步:根据 Data Query(Alisa)工具的表现分类处理

情况一:标准化后的提问不正确

这是 Nora 大模型问题标准化的问题,可能的原因:

  • 问题本身表述不清或有歧义
  • 需要调整提示词(Prompt)来引导大模型更好地理解问题。调整位置:AI员工市场 -> 进入管理后台 -> 编辑Nora -> 人物设定,在里面修改系统提示词。

如果是字段模糊匹配这类固定改写场景,可以参考:字段模糊查询场景解决方案

情况二:标准化后的提问正确,但工具展示了报错

如果看到报错信息或显示 参数: {"question": xxx},点击这张卡片进行展开,可以看到具体报错原因。

此时问题出在 Alisa/SQL 层面。如果出现 unknownWords 标签,说明有一些措辞在数据库/向量库中无法匹配。可以通过添加同义词配置属性匹配正则表达式等方式进行处理。

如果以上方式无法解决,此时的信息较少,可以联系技术人员进行技术支持。本产品也会持续更新,开放更多信息以供查错。

情况三:工具展示了数据卡片,但数据不对

点击数据卡片右上角的 debug 按钮进行排查。

检查分词

在 debug 页面中,重点查看分词部分,主要关注以下两列:

列名说明
原文原始提问中的词
标准化系统知识库匹配到的词

首先检查标准化后的词是否理解正确:

  • 如果理解正确但结果错误:这是一个 Bug,可以直接联系技术人员进行处理。
  • 在大多数情况下,数据不对是因为分词不正确,继续往下排查。

分词不正确的原因及处理

分词不正确主要有以下原因:

1. 建模错误

常见问题包括:

  • 缺少 Schema
  • 事件和实体之间的连接错误
  • 属性的类型配置错误
  • 表或者属性的【参与问答】被关闭

2. 关键词映射错误

系统中,每个词会映射到系统内的关键词。系统内的关键词由以下部分组成:

  • 内置关键词
  • 表结构
  • 数据枚举值
  • 自定义指标
  • 自定义术语
  • 全局同义词

排查方法

如果发现某一个关键词匹配错误(尤其是被匹配到了另外一个表里),在确保**【业务建模】 -> 【学习所有Schema】**的情况下,说明该关键词在需要的 Schema 里不存在。

可以检查以下内容:

  • Schema 的名称
  • 属性名称
  • 数据库里的枚举值

适当添加同义词以保证正确匹配。

第三步:通过 API 调用获取详细 Debug 信息

如果上述方式都无效,可以通过调用 API 的方式(建议使用 APIFox、Postman 等工具)来输出更多 debug 信息。

curl 示例

curl --location --request POST 'http://localhost:13000/api/agent:chat' \
--header 'Authorization: Bearer ${TOKEN}' \
--header 'X-SPACES: default' \
--header 'Content-Type: application/json' \
--data-raw '{
    "messages": [
        {
            "role": "user",
            "content": "销售额前十的产品",
            "agent": "alisa"
        }
    ],
    "stream": false,
    "debug": true
}'

关键参数说明

参数说明
Authorization: Bearer ${TOKEN}JWT Token,用于身份认证
X-SPACES: default当前空间标识
stream: false必须为 false,debug 模式仅支持非流式响应
debug: true开启 debug 模式,返回详细信息
messages[].content你的问题内容

通过这种方式,你可以获得完整的执行过程信息,包括 Logicform 生成、SQL 执行等详细日志,便于定位问题根因。