SuperSonic快速上手:3步让业务同事用自然语言查数据
【免费下载链接】supersonicSuperSonic is the next-generation AI+BI platform that unifies Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms.项目地址: https://gitcode.com/GitHub_Trending/su/supersonic
周五下午,运营在群里丢来一句:"上周各页面的访问次数和访问人数分别是多少?"按老流程,这个问题要等数据工程师排期写SQL。SuperSonic 是一个开源的 Chat BI + 语义层(Headless BI)平台,专门解决这类"业务要数、工程师写SQL"的等待,让业务方直接开口提问就能拿到图表。
它是什么 & 30秒跑起来
SuperSonic 把两件事放在同一个平台:业务方在问答界面用自然语言查数(Chat BI),分析工程师在语义层统一管理指标、维度和数据源(Headless BI),双方共用同一套口径,物理表不用改一行。它不需要复制或迁移数据,只在现有数据表之上建一层业务语义模型。
最短上手路径,5 步:
- 安装 Docker 与 docker-compose(本机需开放 9080、15432 端口)。
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/su/supersonic - 进入 docker 目录,执行
docker-compose up -d,拉起 Postgres(pgvector)和应用两个容器。 - 浏览器访问
http://localhost:9080,登录即可看到内置的"超音数"示例模型(PVUV 统计、用户部门)和"艺人库"模型。 - 打开 Chat 问答页,输入"访问次数按页面统计",第一次自然语言查数完成。
偏好本地构建的话,从 release 页下载发行包后执行assembly/bin/supersonic-daemon.sh start,同样访问 9080 端口。项目入口代码在launchers/目录,standalone 是 Chat + Headless 合并形态,chat 和 headless 也可拆成两个独立服务部署。
跟着一个场景走完全程
以问"按页面统计最近3天的访问次数和访问人数"为例,看一句自然语言在系统里经历了什么。
提问后,系统内部走的是 README_CN.md 描述的五个组件链路:模型知识库先从语义模型里抽指标、维度、同义词,定期建成词典和索引;模式映射器(Schema Mapper)在词典里匹配出"访问次数、访问人数、页面、最近3天"这些实体;语义解析器把它们组装成语义查询语句 S2SQL;语义修正器检查合法性并补全缺失条件;语义翻译器最后把 S2SQL 翻成能在物理表上直接执行的 SQL,比如自动算出s2_pv_uv_statis表上带日期过滤的聚合语句。关键在于,表连接、聚合这些复杂 SQL 不由大模型硬写,而是由语义层兜底,幻觉空间被压得很小。
结果以表格加图表呈现,下方还会给出追问推荐,比如"按部门看访问人数",点一下就能多轮下钻。拿到结果后有两个值得做的动作:点开查询信息核对生成的 S2SQL 和最终 SQL,确认口径符合预期;对答错的问题点踩反馈,问答记忆会把历史查询轨迹封装成 few-shot 样例回灌进提示词,问得越多,模型越懂你的业务。
核心能力拆解
自然语言查数怎么做
一句话:输入业务问题,秒级返回图表,全程不写SQL。什么时候用:运营、产品做日常取数,替代临时提SQL需求。最小示例:在 Chat 页输入"上周各页面的访问次数和访问人数",返回表格、图表和 S2SQL。它也内置了基于规则的语义解析器,演示、集成测试等场景不依赖 LLM 也能跑通。
语义模型怎么配
一句话:在 Headless 界面把"业务黑话"翻译成指标、维度和数据源。什么时候用:新业务域接入前,先配模型再放开提问。最小示例:在webapp/packages/supersonic-fe/src/pages/SemanticModel/对应的管理页面里,先建数据源指向物理表,再定义"停留时长"这类指标(带聚合方式)和"页面""部门"这类维度(时间维带日期格式),多个数据源在同一模型下通过关联键连接,跨表问题就能一次问出。
三级权限怎么控
一句话:数据集级、列级、行级,逐层收窄可见范围。什么时候用:不同部门共库但数据不能互看。最小示例:示例库里"页面"维度就标记了敏感等级;数据集可查看人按账号和角色配置,行级权限则可按数据内容(如区域、部门)过滤,业务方只能看到自己范围内的行。
Headless BI 开放 API 怎么接
一句话:把自然语言查数能力嵌进你自己的系统,而不只是网页对话框。什么时候用:内部数据产品想加"问数"入口。最小示例:Headless 模块暴露指标、模型、数据集等开放 API(定义见headless/api源码目录,服务端实现在headless/server),外部系统可用 API 拉取语义模型,或用自然语言参数直接发起查询,Chat BI 的解析链路源码在chat/server目录下可自行扩展。
按你的规模落地
| 规模 | 建议 | 关键点 |
|---|---|---|
| 小团队 | 直接 docker-compose 起 standalone,内置 H2 示例库先玩起来 | 配 3~5 个核心指标跑通流程;用benchmark/目录的脚本批量验证你的业务问题 |
| 中型部门 | 接入 MySQL / ClickHouse 数仓,建 1 个域管理十几个指标 | 指标别名配全,减少解析歧义;用evaluation/脚本对比不同模型效果 |
| 企业级 | 多域多模型、按部门隔离,拆 chat 与 headless 两个服务独立部署 | 三级权限 + 模型管理流程化;语义模型变更走版本管理,定期回归测试 |
常见坑 & 解法
- 现象:问的指标查不出来。解法:给指标和维度补上业务常用别名,让模式映射器能命中。
- 现象:LLM 解析偶尔跑偏。解法:打开规则解析器兜底,或在问答记忆里沉淀正确样例作为 few-shot。
- 现象:中文日期"上周""最近3天"理解不稳。解法:时间维度里明确日期格式(如 yyyy-MM-dd),并在提示样例里覆盖同类问法。
- 现象:跨表问题结果不对。解法:检查模型下数据源之间的关联键(join key)是否指向正确主键,示例里 PVUV 表与用户部门表就是用 user_name 关联的。
- 现象:大表查询慢。解法:高频指标改走预聚合表或视图,别每次都扫明细。
- 现象:容器起不来。解法:先确认 Postgres 健康检查通过再进 9080 界面,同时检查本机端口占用。
写在最后
SuperSonic 的价值在于把查数从"排队等SQL"变成"问一句出图",而指标口径统一带来的长期收益,比单次提效更值钱。随着 LLM 能力持续增强,自然语言查数会像查搜索引擎一样日常,语义层就是它可靠的地基。
【免费下载链接】supersonicSuperSonic is the next-generation AI+BI platform that unifies Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms.项目地址: https://gitcode.com/GitHub_Trending/su/supersonic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考