10分钟快速快速体验一个Demo项目
- 本教程主要内容是通过现有MySQL数据库,在ChatBI中快速体验Demo项目的实施流程,涵盖数据库连接、数据建模、问答测试等重要步骤演示。
- 我们提供含Demo数据的MySQL数据库,您可直接连接并使用其中数据,快速体验整个实施流程。
目录
1. 基础概念
1.1 什么是数据建模?
数据建模是将数据库中的信息整理成"分析地图"的过程,目的是让BI软件理解数据间的关系,辅助生成报表和图表。
1.2 实体、事件、ER模型的区别
| 概念 | 通俗解释 | 例子 |
|---|---|---|
| 实体 | 要分析的"东西" | 客户、产品、订单 |
| 事件 | 实体之间发生的"动作" | 客户下单、产品出库 |
| ER模型 | 展示实体和关系的"地图" | 客户→订单→产品的连接关系图 |
2. 数据库连接
2.1 连接前需要准备什么?
- 数据源:DEMO-TEST
- 数据源类型:MySQL
- 是否只读:是
- 主机名/IP地址:139.224.53.201
- 端口:3306
- 数据库名称: demo-test
- 用户名: read_user
- 密码: myread

点击确定后需测试连接,顶部会显示连接成功。接下来即可开始建模工作,文档后续将以该数据库为例进行建模演示。
3. 建模操作
3.1 数据库选择表格
3.1.1 点击选表

3.1.2 点击数据库中的表

目前展示的是默认数据库中的所有表,若数据来自不同库,需在顶部栏输入其他数据库名称。确定所需表格后,点击 创建schema。
3.2 数据建模
3.2.1 建模方法论
本系统在三范式建模或雪花模型(维度建模)下可获得较好的问答效果,同时能降低ETL工作量,其中三范式建模效果最佳。建模案例如下:

关于三范式建模或雪花模型的相关文章,可点此查看。
除上述两种建模方式本身的要点外,还需注意以下内容:
要点一:一个概念尽量只存在于一处
举例:北京、上海等地理位置信息,可统一存储在一张地理位置表中,其他表通过外键关联到此表,而非在每张表中单独设置地理位置字段。
要点二:数据尽量清洗干净
举例:若企业数据中某子公司名为【北京】,会与地理位置【北京】产生冲突。当用户询问"北京今年业绩"时,系统会出现歧义(虽会二次询问用户意图,但会影响体验)。
以下为具体操作示例。
3.2.2 示例
在数据库管理界面选择需建立的实体表后,主要工作步骤如下:
为实体表选择语义模型
| 字段 | 解释 |
|---|---|
| ID | 主键,代表数据在表中的唯一性。实体类型的Schema必须包含ID属性;事件类型的Schema可包含或不包含 |
| 时间戳 | 事件类型的Schema必须包含该字段,代表事件发生时间(精确到秒);实体类型的Schema不应包含此类型数据 |
| 名称 | 仅实体类型的Schema会出现,代表可通过名称查询某行数据(如人的姓名) |
| 分类 | 代表筛选维度,通常对应表中的多行数据(如性别分为男性和女性) |
| 实体 | 连接其他实体表的字段(外键),需填写ref配置项 |
| 字符串 | 基础类型,仅用于页面显示,系统不学习其内容,无法通过问答交互 |
| 数字 | Double类型 |
| 整数 | Int类型 |
| 货币 | 底层为double类型,支持问答中的货币转化(如默认单位为人民币,可自动转化为美元查询) |
| 百分比 | 底层为double类型,标识不可加性,UI以百分比形式显示 |
| 序号 | 底层为Int类型,影响实体返回顺序(值越小越靠前) |
| 布尔值 | Boolean类型 |
| 日期时间 | DateTime类型(系统无Date类型,均以DateTime存储) |
| 图像 | 底层保存图片URL,UI会显示图片 |
| 文件 | 底层保存文件URL,UI支持下载 |
操作说明
表中的ID和名称会分别对应数据库表的字段名和注释。需根据表的实际业务含义,为每个字段选择对应的语义模型,并为实体表添加同义词(帮助AI大模型准确定位字段或实体,提高问答准确性)。

实体表创建完成后,可在数据总览界面查看实际效果和检查数据:

为事实表选择语义模型
需通过产品、店铺等字段连接实体表,将语义类型设为"实体"并选择相应实体:

建立完成后,可运行建模检查、查看ER图,并检查数据:

事实表中关联的字段原本为ID,关联后会自动显示名称,可点击查看明细;若未显示明细,需检查字段对应关系:

模型搭建完成后,接下来制作自定义指标"达成率(销售额/目标额)"。
自定义指标
- 进入系统设置页面

- 选择指标所在的schema(表),设置指标名称、同义词,以及是否可加、是否发布。
本教程指标为跨事实表指标,门店选择任意即可;若涉及专家模式中的默认条件,需选择带有默认条件的表作为指标的schema。
- 点击代码列的"点击修改"按钮,系统提供基于问答模式的指标设置,通过简单语言定义即可。

确定后点击保存,若保存失败,说明系统无法理解"销售额""目标额"的含义,需检查字段名及其同义词,确保可在问答中被成功解析。
现在整体的建模环节已经基本完成,记得回到业务建模界面点击重新学习所有表

等待1分钟左右学习,完成后即可进入问答测试环节。
4. 问答测试
4.1 问答示例
为保证数据查询准确性,本产品的问答方式需遵循"维度+指标"公式。示例如下:
- 今年各门店的达成率

其他问答示例: 2. 上季度销售额门店top5 3. 3月份女士羊绒衫销售额 4. 去年女装的销售额 5. 销售额最高的门店各产品销售额占比
4.2 问答效果及处理方式
以问题2为例:

若结果正确且问题被大模型完全识别(未识别内容会标记为红色),可添加到测试用例(仅logicform),方便后续改动后检查:

如果问答方式变一下,用到我们没有设置好的指标,未识别的语言会标红,这时你需要去点击侧边的查看sql,里面分别有sql、logicform,以及我们大模型是如何分词的:

一般情况下,标红的情况是大模型没有找到建模中相应的指标,需要去完善同义词。数据错误去检查sql和logicform。
4.3 测试用例检查
在建模过程中,很多细节很难一次性全部完善,为了判断我们原有的相关问题是否发生变化,我们可以一键运行测试用例去检查之前的测试用例,去检查一些实际的问题。来到页面点击运行测试用例,并且查看结果:

这里我故意制造了一些麻烦,我们可以看到改动后出现了logicform不匹配的问题:就是logicform发生变化就会显示红叉:

我们就可以点击红叉进去检查logicform发生了什么变化:

明显左右两边的logicform对不上了,并且右侧还有error报错,这个时候就需要去检查建模了。
如果说这个右边的新logicform在客观判断下是正确的,点击重新生成,即可更新测试结果:

这样测试的完整流程就结束了。