supersonic

2025-12-28

ai

辛勤的蜜蜂永没有时间的悲哀。——布莱克

SuperSonic:把 Chat BI 和 Headless BI 真正“合体”的下一代 AI+BI 平台

这是一篇超级随意但尽量靠谱的介绍,先把官方话术抛出来:
SuperSonic 是“下一代 AI+BI 平台”,把 Chat BI(由 LLM 驱动)和 Headless BI(由语义层驱动)这两条主线整合到一个统一范式里。翻译成人话就是:

  • 让业务同学能“用自然语言聊天”查数、看图;
  • 让数据同学能“用语义层”去描述业务含义、规则和权限;
  • 两边不是各玩各的,而是“统一协作”,把 Text2SQL、语义理解、校正、权限控制等串起来,形成一个真正可落地的 AI+BI 生产线。

仓库主页:tencentmusic/supersonic
README(信息来源):README.md@master


为什么是“AI+BI”而不是“BI+AI”?

官方 README 的动机阐述非常直白:

  • 大语言模型(LLM)让 ChatGPT 一类的“自然语言问答”越来越强,但将人话转 SQL(Text2SQL/NL2SQL)在真实、大型场景下仍有可靠性挑战;
  • Headless BI 通过统一语义层,把“度量/维度/实体/取值”等数据语义抽象出来,辅以开放 API,给出稳定、可审计的查询语义;
  • SuperSonic 的策略是:把两条路打通——让“聊天问数”的 Text2SQL 和“语义层”的 Headless BI互相增强:
    • Chat BI 的理解和生成过程有上下文、记忆和语义约束(不是“裸 LLM”随便发挥);
    • Headless BI 的查询界面扩展到自然语言,降低业务门槛(不是“只给工程师用”的纯技能活)。

一句话总结:既要好用(Chat),也要靠谱(Semantic),而且统一在一起。


开箱即用:从“能问数”到“能上线”

官方列了不少“Out-of-the-box”特性,摘一些关键点:

  • 面向业务的 Chat BI 界面:直接用自然语言提问,系统返回“合适的图表”与“结构化结果”
  • 面向数据工程的 Headless BI 界面:定义业务语义、指标、维度与规则,沉淀“可复用的语义层”
  • 语义解析器(Semantic Parser):在规则基础上提升解析效率与质量(比如某些场景里比通用 LLM 更稳)
  • 自然语言增强:自动补全(Input auto-completion)、多轮对话(multi-turn)、查询后推荐(post-query recommendations)
  • 数据访问控制:三层权限模型
    • 数据集级(dataset-level)
    • 列级(column-level)
    • 行级(row-level)
  • 组件化设计(下面专门说)

架构与组件:把“聊天”与“语义”串起来

README 把核心组件拆得很清楚(各司其职):

  • Knowledge Base(知识库):从语义模型里周期性抽取模式信息,建立字典与索引,供问答时检索
  • Schema Mapper(模式映射器):把用户的自然语言里的“业务词”映射成语义层里的元素(度量/维度/实体/取值)
  • Semantic Parser(语义解析器):理解用户的问题,生成“语义查询声明”(不是直接 SQL,是一个语义表达)
  • Semantic Corrector(语义纠错器):验证语义查询的有效性并在必要时纠偏(同时结合规则与 LLM)
  • Semantic Translator(语义翻译器):把“语义查询声明”翻译成可执行的 SQL,落到物理数据模型
  • Chat Plugin(聊天插件):扩展第三方工具(问答增强),由 LLM 选择最匹配的插件
  • Chat Memory(聊天记忆):收集历史查询轨迹,辅助少样本提示(few-shot prompting)

它的运行流程可以简单脑补:
“用户发起一个自然语言问题 → 识别业务词并映射为语义元素 → 生成语义查询 → 校验与纠错(必要时再与 LLM配合) → 翻译成可执行 SQL → 执行并返回可视化结果 → 关联历史、推荐下一步问题”。

听上去很“工程化”,这正是它面向真实生产场景的意义。


快速体验:线上 Demo / Docker / 本地启动

给出 README 的“Quick Demo”和部署方式,照着做就能跑起来。

在线体验(Playground)

  • 访问:http://117.72.46.148:9080
  • 注册后作为新用户体验即可
  • 注意:不要改动系统配置。官方会周期性重置(重启),便于大家共同体验

Docker 部署(最省事)

  • 安装 Docker 与 docker-compose
  • 下载编排文件(官方提供现成的 yml)
  • 一键启动并打开浏览器

代码(来自 README 的步骤):

1
2
3
4
5
6
7
8
9
10
11
# 下载安装 docker / docker-compose(略)

# 下载官方 docker-compose.yml
wget https://raw.githubusercontent.com/tencentmusic/supersonic/master/docker/docker-compose.yml

# 直接拉起
docker-compose up -d

# 浏览器访问
open http://localhost:9080
# 或:xdg-open http://localhost:9080

本地二进制启动(单机服务)

  • Releases 下载最新预构建包
  • 运行脚本启动一个“独立 Java 服务”
  • 浏览器访问即可

示例(来自 README):

1
2
3
4
5
6
7
8
# 下载预构建包(到你的目录)
# 例如:supersonic-x.y.z.tar.gz,解压后有 assembly/bin 目录

# 启动
assembly/bin/supersonic-daemon.sh start

# 访问
open http://localhost:9080

构建与开发文档

  • 主站文档入口:Docs
  • 里面有系统架构、安装部署、模型配置、使用指南等(建议正经看)

小代码案例(超随意,但不瞎编)

为了更“像博客”,来两段“就地跑得起来”的小片段:Docker 与本地守护脚本。

1) 用 docker-compose 快速拉起(一键到位)

1
2
3
4
5
6
7
8
9
10
11
# 获取编排文件
wget https://raw.githubusercontent.com/tencentmusic/supersonic/master/docker/docker-compose.yml

# 启动后台服务
docker-compose up -d

# 查看容器状态
docker-compose ps

# 访问 UI
open http://localhost:9080

Tips:

  • 如果端口有冲突,自行改 docker-compose.yml 的端口映射再起;
  • 想看日志:docker-compose logs -f
  • 想停服务:docker-compose down

2) 用预构建包启动一个 Java 服务(轻量试用)

1
2
3
4
5
6
7
8
9
10
11
# 假设你已经下载并解压了官方 release 包
cd your_supersonic_dir

# 用官方脚本启动守护服务
assembly/bin/supersonic-daemon.sh start

# 验证进程(Linux/macOS 示例)
ps aux | grep supersonic | grep -v grep

# 打开浏览器体验
open http://localhost:9080

这两段都来自 README 的指引,只做了最少的“壳”说明,保证“能跑起来,不瞎扯”。


用起来是个啥感觉?

自由发挥一段“使用观感”(基于 README 的信息):

  • 业务方:你可以像在 ChatBI 工具里那样“用自然语言”提问,不用背维度和字段名;系统会建议、补全、记住你刚刚问过的东西,还能推荐“下一个问题”。最终结果会是“可视化图表 + 表格数据”。
  • 数据方:你会喜欢它的“语义层”与“规则化解析”:指标、维度、实体、取值都能规范起来;同时,列/行/数据集三层权限能满足不同业务线的合规要求。
  • 平台方:Docker 起手就能跑,全组件架构清晰;有 Headless API 面向二次开发,有 Chat 插件机制扩展问答能力;上线前后都更“工程”。

总之,不是“一个聊天框”那么简单,也不是“一个数据建模器”那么硬核,而是两者合体。


一点注意事项(还是要认真看)

来自 README 的提醒:

  • 线上体验地址仅供试用,不要改任何系统配置;官方会定期重置
  • 正式部署请参考文档,做好数据源与权限配置
  • 语义层的维护是“工程正事”:它决定了你能不能从“玩具问答”升级到“稳定生产”

最后,打个“标语”

AI 帮你“把问题说清楚”,BI 帮你“把答案说准”。
SuperSonic 想做的,就是把“好问”与“好答”连接起来,而且让它“在工程里落地”。

如果你需要的是一个“真正能用”的 Chat BI + Headless BI 一体化平台,试试它。
先跑 Demo,再看文档,再把你们的语义层认真梳理起来——这才是赢面。

— 参考与原始信息: