AI 问数与数据预警
报表中心提供两项智能能力:用自然语言生成 SQL(NL2SQL)降低数据集编写门槛,以及对数据集聚合值做阈值监控并自动通知(数据预警)。
AI 问数(NL2SQL)
在数据集编辑页(SQL 类型)点「AI 问数」,用自然语言描述你想查的数据,系统调用配置的 AI 服务商生成一条只读 SQL,自动填入 SQL 编辑框,确认/微调后即可试跑保存。
使用步骤
- 数据集选 SQL 类数据源,点「AI 问数」。
- 输入需求,如「按部门统计本月订单金额,从高到低」。
- 点「生成 SQL」,结果写入 SQL 框。
- 点「试跑预览」验证,必要时手动调整。
安全与边界
- 生成的语句强制为只读 SELECT/WITH,服务端二次校验拦截任何写操作(INSERT/UPDATE/DELETE/DROP…)与多语句。
- 提供给 AI 的库表上下文已剔除敏感表与敏感列(用户密码、令牌、密钥、各类凭据配置等),降低敏感数据暴露面。
- 依赖系统已配置默认 AI 服务商(见 AI 能力 / AI 服务商配置);未配置时会提示。
AI 仅用于「生成 SQL 草稿」,最终执行仍走数据集的只读取数通道,可放心使用。
数据预警
数据预警对某数据集的聚合值按阈值监控,触发时通过邮件 / 站内信通知。在「报表中心 → 数据预警」(/report/alerts)管理。
新建预警规则
| 字段 | 说明 |
|---|---|
| 名称 | 规则名称 |
| 数据集 | 被监控的数据集 |
| 聚合方式 | sum / avg / max / min / count / first |
| 监控字段 | 聚合的列(count 可不填) |
| 运算符 | > ≥ < ≤ = ≠ |
| 阈值 | 触发比较的数值 |
| 评估 Cron | 定时评估表达式(留空=仅手动) |
| 分组维度 | 可选;按该字段分组聚合,任一组命中阈值即触发(如「任一部门人数 > 100」),通知列出命中组明细 |
| 通知通道 | 邮件 / 站内信 / Webhook(企微、钉钉机器人或通用 JSON 端点,按域名自动适配报文)(可多选) |
| 收件人 | 邮箱(逗号分隔);站内信推给创建者;Webhook 需填机器人地址 |
| 静默期(分钟) | 持续触发时,距上次通知不足该时长不重复通知,防刷屏;0=每次触发都通知(默认 60) |
| 恢复通知 | 开启后,从触发恢复正常时发送一条恢复通知 |
例:监控「未支付订单数」数据集,count > 100 时告警。
评估与通知
- 定时评估:配置 Cron 后,定时任务每分钟巡检到期规则,自动取数 → 聚合 → 比较,触发即通知。
- 手动评估:列表点「评估」立即跑一次,返回实际值与是否触发。
- 通知风暴防护:新触发(未触发 → 触发)立即通知;持续触发期间按「静默期」限频;触发 → 恢复时按需发送恢复通知。
- 列表展示最近触发状态、最近实际值与评估时间。
约束
预警是无用户上下文的全局评估,因此绑定的数据集不能使用 ${__userId} 等数据权限变量、也不能含必填参数(保存时拦截),否则会因缺少上下文导致漏报/误报。请为预警准备「对所有人一致」的数据集。
权限
| 操作 | 权限码 |
|---|---|
| AI 问数 | report:dataset:create |
| 预警查看 / 评估 | report:alert:list |
| 预警新增 | report:alert:create |
| 预警编辑 | report:alert:update |
| 预警删除 | report:alert:delete |