跳到主要内容

JimuChatBI 介绍与建模配置

本文面向管理员,讲解 JimuChatBI 的功能与建模配置。如何把模块集成到项目,见 JimuChatBI 快速集成;业务用户如何提问取数,见 JimuChatBI 问数对话使用

1. 功能介绍

JimuChatBI(积木问数 / Chat2BI) 是积木报表的对话式 BI(自然语言问数)模块。业务人员不用懂 SQL、不用画报表,像聊天一样提问,AI 即自动理解、生成查询、取数,并以表格 + 图表 + 一句话洞察返回。

核心能力:

  • 自然语言取数:0 SQL 学习成本
  • 口径可视化调整:直接切换指标 / 维度,改完即时重算
  • 多种输出:表格、图表、智能洞察、可查看 SQL
  • 结果可沉淀:一键另存报表 / 加入大屏 / 导出 / 生成报告
  • 企业级安全护栏:访问授权、敏感词、行级 / 列级权限、敏感度分级
  • 术语映射:业务口语、简称、近义词对齐到精确口径

JimuChatBI 以独立 JAR 形式提供,像积木报表一样可快速集成到 Spring Boot 2 / Spring Boot 3 项目中,集成步骤见 快速集成。集成后访问入口为 /chat2bi/index(上下文路径取决于宿主应用)。本文以内置「保险分析域」示例数据演示。

2. 核心概念与整体流程

配置遵循"由下而上"的链路,理解 5 个概念即可掌握全貌:

概念说明
数据源数据库连接,数据从这里读取。可复用积木报表数据源或单独新增
AI 数据表库表的元数据 + 业务描述,并控制哪些表对 AI 可见(描述越清晰,问数越准)
数据域(语义建模)问数的语义边界:注册表、配关联、主题、术语与权限
对话助理面向用户的问数机器人,绑定一个数据域后上线
对话用户与助理的多轮问答记录
配置数据源  →  维护 AI 数据表  →  语义建模(数据域)  →  创建对话助理  →  用户对话问数
(连数据库) (/字段描述) (注册表/关联/术语/权限) (绑定域/上线) (自然语言提问)

前 4 步由管理员完成(本文第 4~7 章),最后一步由业务用户使用(见 问数对话使用)。集成部署步骤另见 快速集成

3. 界面总览

顶部 5 个模块对应完整链路:

模块用途使用者
问答对话提问、查看结果业务用户
助理管理创建 / 上下线助理管理员
语义建模数据域:表 / 关联 / 主题 / 术语 / 权限管理员
AI 数据表维护库表描述与 AI 可见范围管理员
数据源新增 / 测试数据库连接管理员

建模配置分四步:数据源 → AI 数据表 → 语义建模 → 助理,下面依次说明。

4. 配置数据源

进入 「数据源」,管理可访问的数据库连接(页面也会列出积木报表的「报表 / 大屏」数据源,仅可只读引用与测试)。

点击 + 新增数据源,填写连接信息:

字段说明
数据源名称必填,便于识别
数据库类型必填,切换后自动带出驱动类
JDBC URL必填,如 jdbc:mysql://host:3306/db?useUnicode=true&characterEncoding=utf8
用户名 / 密码数据库账号(编辑时密码留空表示不改)

支持类型: MySQL、TIDB、Oracle、SQLServer、MariaDB、PostgreSQL、达梦、人大金仓、神通、DB2、Hsqldb、Derby、Doris、SQLite。

保存前先点 「测试连接」 验证。密码以 AES 加密存储,不会明文落库。

5. 维护 AI 数据表

进入 「AI 数据表」,维护库表结构、业务描述并控制对大模型(LLM)的可见范围。描述越清晰,问数越准。

左栏(数据源 + 表清单): 切换数据源 → 点 「重新同步」 拉取库表 → 可按表名过滤、按 LLM 可见性筛选;勾选后可批量设为可见 / 不可见(只有"可见"的表才参与问数)。

右栏(表详情): 点击左侧表查看详情:

  • 表 / 字段 AI 描述:用业务语言描述表和字段(如 cust_level → "客户等级")
  • 关联关系:维护本表与其他表的外键关联,供跨表问数

把字典字段(性别、状态码等)也描述清楚,AI 取数与码值翻译会更准。

6. 语义建模(数据域)

进入 「语义建模」,以数据域为单位组织问数语义。

点击 + 创建数据域,填名称、描述,并选择读取数据的数据源(不选则用应用默认库):

进入数据域后有 5 个子页:表注册 / 关联管理 / 查询主题 / 术语管理 / 权限管理

6.1 表注册

把数据源的表注册进来,并定义字段角色。

点击 + 注册表,两种方式:

  • 📋 选择表:从已有库表选择

  • ⌨️ SQL 定义:写 SQL 作为"虚拟表",点「解析字段」自动识别结果列(适合预聚合、跨表加工)

注册后点 「编辑字段」 逐字段配置:

配置项说明
类型🔑 主键 / 📌 筛选-分组(维度)/ 📊 数值指标(度量)
聚合数值指标的聚合:SUM / AVG / MAX / MIN / COUNT
显示名称业务别名,提问与展示都用它(premium → "保费")
字典编码关联字典翻译码值(sex → 显示"男/女")
启用关闭则不参与问数

字段类型 AI 自动识别、可手动调整。维度用于分组筛选,数值指标用于聚合——分类准确,结果才正确。

数据域是问数的封闭边界(重要):助理只能查询其绑定数据域内已注册且启用的表,AI 不会自动去扫描或使用数据域之外的库表。因此当用户的问题涉及未注册进本域的表时,助理将无法取数(或提示"该数据域未配置数据表")。需要扩大可问范围时,回到本页 + 注册表 把相关表加入数据域即可。
这是为保证口径可控、结果可信的有意设计:与"让 AI 自由扫描全库、自动匹配表"的开放模式不同,JimuChatBI 用"先建模、再问数"把 AI 约束在你认可的表与字段范围内。

6.2 关联管理

配置多表 JOIN,让 AI 能跨表取数(如"客户的保单明细")。

点击 + 添加关联,选左表、右表及关联字段。支持列表 / 图谱两种视图。

6.3 查询主题

把一组常用字段打包成主题,聚焦特定分析范围。

点击 + 创建主题,填名称、描述,勾选字段(可跨表),设为已发布 / 草稿。已发布主题在绑定该域的助理中自动可用。

6.4 术语管理

把业务口语、简称、近义词映射成精确口径。

点击 + 创建术语,配置名称、近义词、描述,以及应用为

  • 仅释义:只做名词解释,不改口径
  • 时间口径:把时间范围设为指定值(近 10 天 / 本月 / 本季度 / 今年)
  • 数据筛选:追加 WHERE 条件(如 product_type IN ('寿险','健康险')

术语注入 AI 提示词、实时生效。配好"核心险种 = 寿险/健康险"后,用户问"核心险种的保费"会自动追加过滤。

6.5 权限管理(安全护栏)

数据域级的多层安全控制。

配置块作用
访问授权授权可访问本域的角色 / 用户(「管理员」为全权角色,不受限制)
敏感词过滤命中敏感词即拒答、不取数,支持内置分类(字典 c2b_sens_*)与自定义词
行级数据权限按角色限定可见数据范围,支持动态值(按登录用户过滤)
列级权限 / 脱敏按角色对字段隐藏脱敏
字段敏感度分级高→隐藏、中→脱敏、低→可见,可在列级权限按角色覆盖
设为公开公开后所有用户可用低 / 中敏感资源(高敏字段仍需授权)

强制只读、超时、行数上限、审计、SSTI 防护等执行安全策略为系统级统一配置(【系统管理 · 安全策略】),不在单个数据域内设置。

7. 创建对话助理

进入 「助理管理」,点 + 创建助理,4 步向导完成:

  1. 基本信息:头像、名称、描述、欢迎语
  2. 绑定数据域:选可查询的数据域(域下已发布主题自动可用)
  3. 对话设置:配推荐问题(可「AI 生成」)、开关展示 SQL
  4. 预览发布:确认后点 「发布上线」

上线后助理出现在「问答对话」列表中,卡片上可随时编辑 / 对话测试 / 删除。助理上线后,业务用户即可进入问答对话取数,详见 问数对话使用

8. 让问数更准 · 最佳实践

  • 补全 AI 描述:给表和字段写清晰描述,提升准确率最有效
  • 分清维度与指标:分组字段设"筛选/分组",可聚合数值设"数值指标"并配聚合方式
  • 配好表关联:跨表问数前务必在「关联管理」配 JOIN
  • 善用术语:把行业黑话、简称定义成术语
  • 配字典编码:让码值字段显示为可读文本
  • 收敛可见表:只放开需要的表,减少噪音

9. 常见问题

问题解决
提示"AI 模型未配置"参考 快速集成 · 配置 AI 大模型 补充 jeecg.jmreport.ai 配置
无法连接数据源在「数据源」用"测试连接"逐项排查
助理列表为空到「助理管理」创建并发布上线
取数结果不对完善 AI 数据表描述、校正字段类型、补充术语
问了数据域之外的问题,助理答不了数据域是封闭边界,只认已注册且启用的表;到「语义建模 · 表注册」把相关表加入本域
跨表查询失败在「关联管理」添加 JOIN
SQL 虚拟表无法执行在表注册重新「解析字段」并检查 SQL
用户看到不该看的数据在「权限管理」配置访问授权与行 / 列级规则
提问被拒答检查「权限管理 · 敏感词过滤」

10. 设计理念:为什么 JimuChatBI 选择"建模优先"

很多人初次接触对话式 BI,会期待"接上数据库、什么都能问"。但 JimuChatBI 刻意选择了先建模、再问数的路线。 这一节说明背后的两种范式、各自优劣,以及我们的选型原因——理解它,能帮你更好地用对产品。

10.1 对话式 BI 的两种范式

业界做自然语言问数,大体有两条路:

范式做法代表诉求
开放式 · 全库自动匹配不预先配置,AI 直接扫描整库,按表/字段名和注释自动挑表生成 SQL"什么都能问,零配置"
建模式 · 受控问数(JimuChatBI)先由管理员做语义建模(注册表、配口径、术语、权限),AI 只在认可的范围内取数"数字可信、可治理"

10.2 两种范式各自的优势

开放式(全库自动匹配)的优势:

  • 零配置、开箱即用:接上数据库就能问,无需建模
  • 覆盖面广:任何表、任何问题都能尝试作答
  • 适合探索:临时取数、摸底"库里大概有什么"很顺手

建模式(受控问数)的优势:

  • 口径可控:指标、维度、聚合方式、字典翻译都经人工建模,AI 不会乱算
  • 结果可复现:同一问题走同一口径,答案稳定,可放心写进汇报
  • 企业级安全:访问授权、行级/列级权限、脱敏、敏感词、敏感度分级——开放式无法做到
  • 业务语言对齐:术语映射把行业黑话、简称对齐到精确口径
  • 答错率低、可信:边界清晰,"有把握才答"

10.3 为什么我们选"建模优先"

JimuChatBI 面向企业、面向业务用户,因此把"建模优先"作为产品主线,原因有四:

  1. 企业 BI 的第一诉求是"数字可信",不是"什么都能问"。 一个可能算错的数字比"暂时答不了"更危险—— 错数字会被当真、被写进决策;答不了用户还会去核实。受控问数的"有把握才答",是 BI 该有的诚实。
  2. 安全与合规是硬约束。 权限边界、数据脱敏、审计在企业里不是可选项;开放式"AI 自由扫全库" 天然无法承载行级/列级权限,存在越权看数风险。建模式把安全护栏内建到数据域里。
  3. 结果要可复现、可解释。 建模后口径固定,每次问数有据可查(可查看 SQL),方便排错与信任沉淀。
  4. 与行业方向一致。 成熟的对话式 BI 普遍走"语义层/指标层"路线,正是因为大家都验证过: 全库自由 NL2SQL 在生产环境难以稳定可靠。

一句话总结:JimuChatBI 用"先建模"换"可信"——划定一个你认可的语义范围,在范围内把准确率、安全性、

可复现性做到位。这不是限制,而是企业级 BI 的正确取舍。

10.4 那"建模成本"会不会太高?

建模优先的代价是前期配置,但产品已用几处设计把成本压到最低,首次建模通常十几分钟即可上线一个助手

  • AI 自动识别字段类型(维度/指标/主键),管理员只需校正
  • AI 描述、推荐问题可一键生成
  • 数据源/表可复用积木报表已有配置
  • 建议遵循最佳实践:先放开少量核心表、配好描述与关联即可起步,按需再扩。

当用户问到数据域之外的问题时,助理会明确提示超出范围(而非给出不可靠的猜测)。

如果某类问题被频繁问到,按 6.1 表注册 把相关表纳入数据域即可——让数据域按真实需求逐步生长