AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


腾讯音乐开源的 Chat BI 平台
发布日期:2024-07-24 19:16:42 浏览次数: 1943


渊源

得知 SuperSonic 这款软件是我一个读者给我推荐的。他当时说「不如一起研究 SuperSonic」,直到我下载、运行、调试之后,似乎明白了研究二字的含义。

我月余前,下载源码运行了一下,不做在对我自己的数据库做分析时,经过一番折腾,最终铩羽而归。今天看到项目还一直在维护更新,又下载源码跑了一次。

项目介绍

项目托管在了 Github 上,Github 仓库[1] 大家认准是在 腾讯音乐 这个组织下面的, 如果你直接网上搜索,可能搜到另一个同名的项目。

这个项目的特点应该就是把 ChatBI 和 Headless BI 结合起来的,如官网所示。

ChatBI 和 Headless BI

ChatBI 就是通过自然语言聊天的方式来可视化你的数据。

Headless BI[2] 和很多 Headless XXX 的架构一样,不负责 UI 展现层,只有后端 BI 的抽象。它在数据仓库或数据库上面引入了一个新的层,来充当解释数据的唯一来源,提供给数据使用方法(比如 BI 界面)。

再通俗点儿说,就是忽略数据的实际结构,对数据重新进行建模,提供给信息使用方。

遮掩的好处是系统对重新建模的数据(比如某个指标)有唯一的解释权,而且屏蔽了底层的复杂性和差异性。不好的地方当然是,你要重新建模,并且你建的模型并不一定够用和好用,可能会把已经简单的事儿变得复杂。

而 SuperSonic 里面的无头建模就很丰富(当然概念上来说也复杂)。

  • • 主题域相当于一个最外层的分组,类似一个数据库

  • • 数据模型是一个数据表或者一个查询SQL,属于一个主题域

    • • 数据模型的具体字段可以设置成维度、度量(指标)

  • • 数据集是指标和维度的集合,也属于一个主题域

项目结构

项目前端是 React,后端是 Java。给人的感觉就是一个很传统的后端项目,我 14 年做一个圈新平台的时候,为了简单起见, 给项目和产品的结构就是把前后端正在一个项目,可以前后端分离,也方便前端直接丢在后端里面运行(我当时也是用了一个 webapp/web)的子项目, 这样省去了配置 Nginx 或者前端的 Dev Server 的事情(核心是公司有些人不会用,或者是觉得麻烦)。

运行项目

如果项目看起来不是巨无霸,我一般都使用源码运行。下载源码:

git clone https://github.com/tencentmusic/supersonic.git

前端打包,这里作者写了个 Shell 脚本,

cd supersonic
sh assembly/bin/supersonic-build.sh webapp

然后在 Ide 里面运行 Java 启动类 com.tencent.supersonic.StandaloneLauncher 即可。

过一会就可以在浏览器里面访问

http://localhost:9080/

看到登录界面了,默认的账户是 admin 123456

大模型配置

SuperSonic 支持 OpenAI 和 Ollama,一个用于线上一个用于本地开发。

我前几个月第一次用的时候还专门改代码适配了 ZhipuAI,代码一步步调试的时候,我的感觉就是:作者咋写了这么多代码 ~

之前是可以在 application.yaml 里面配置的,新版本文档说可以新增 langchain4j.yaml 进行配置。源码中没有这个文件,不过貌似不配置也行,我配置完之后启动程序发现也没啥变化,而且可以等登录后在 UI 的设置里配置。

新建助理的时候也能为每个助理配置大模型,比如本地的 Ollama。

智能助理

登录之后,首页变成闲聊这个助理了(左侧几个助理都是启动时候SQL初始化进去的)。

查看一下「算指标」这个智能助理,里面也有一些初始化好的聊天历史数据,展示了当前的功能。

初始化样例数据这个功能对于开源软件(不只是开源软件)来说是一个很好的功能,能快速展示出 应用的优点,避免由于复杂而放弃。

关于我的使用

我大概介绍一下我认为使用过程吧,为什么说是我认为?因为几个月前我第一次运行,以及我刚刚有运行了一次最新版本, 都没得到恨到的结果(没成功的完成简单的数据分析),果然之前跟我留言的哥们说「研究SuperSonic」没有骗我。

上次我花的时间比较多,因为集成了线上的 Zhipu API,所以后端代码看和调试了不少, 不过忘记了是在哪步骤除了问题,没有给出我正确的结果了。

PS:我感觉项目应该没问题,只是门槛有点儿高,我没用对。

还有样例数据中心的都是基于规则引擎的 BI 问答,所以我也没有更多信息来获取 Chat BI 的一些内容。

使用

其实看了上面的架构,使用起来并不复杂,也基本上可以不看文档[4]来使用。

首先当然是新建数据库,我们连接本地的 Postgres 数据库,里面有一些我写的文章以及公众号发表的数据。

然后增加一个主题域:

主题域增加一个模型,这里使用「文章」表,选择一个标题字段和时间字段。

创建数据集,数据集这里支持指标模式和明细模式,想的也比较周到:

我们看到文档中对数据集的指标和维度有哪些要求,所以只拿一个日期做测试。

下面就可以创建助手了,同时设置你的大模型、以及工具。

工具必须要设置哦,可以选择规则、大模型和三方插件,可以添加多个工具。

然后我们就可以在「问答对话」里面看到刚刚新建的助手了。随便问个问题:

BUT,事与愿违,解析出错:

问个再简单点儿的,看起来 LLM 解析 SQL 的逻辑没错,不过为啥里面出现了数据集的名称。

控制台日志也是,算了,不 Debug 了。

我之前才猜是不是用了数据集的名字来当成 SQL 执行力,把数据集名称改成表名,没啥用。Debug 看了几下,中间过程SQL很复杂, 而且数据也都是奇奇怪怪的。

算了不猜了。

总结

SuperSonic 里面维度、标签、以及指标的 UI 等都是很不错的概念,但是后端逻辑太复杂,也不是一个偏向也 LLM 和 AI 的项目, 原厂的人可能用起来很棒,推广的话从易用性和设计上来说有点儿困难。

而且工具使用 Java 编写,可能是面向企业应用去的,不过对于当前 AI 和大模型的的生态来说,略显臃肿。


--- END ---


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询