Files
supersonic/README_CN.md
jerryjzhang dc4fc69b57 first commit
2023-06-12 18:44:01 +08:00

3.0 KiB
Raw Blame History

超音数SuperSonic

超音数是一个开箱即用且易于扩展的数据问答对话框架。通过超音数的问答对话界面,用户能够使用自然语言查询数据,系统会选择合适的可视化图表呈现结果。超音数不需要修改或复制数据,只需要在物理数据库之上构建逻辑语义模型(定义指标、维度、相互间关系等),即可开启数据问答体验。与此同时,超音数被设计为可插拔式框架,允许以插件形式来扩展新功能,或者将核心组件与其他系统集成。

项目动机

大型语言模型LLMs如ChatGPT的出现正在重塑信息检索的方式。在数据分析领域学术界和工业界主要关注利用深度学习模型将自然语言查询转换为SQL查询。虽然一些工作显示出有前景的结果但它们还并不适用于实际场景。

在我们看来,为了在实际场景发挥价值,有两个关键点:

  1. 将基于规则和基于模型的语义解析器相结合,发挥各自优势,以便处理不同的场景
  2. 引入语义模型层来封装数据底层的复杂性,从而简化语义解析器的问题求解空间

为了验证上述想法,我们开发了超音数项目,并将其应用在实际的内部产品中。与此同时,我们决定将超音数作为一个可扩展的框架开源,希望能够促进数据问答对话领域的进一步发展。

开箱即用的特性

  • 内置图形界面以便业务用户输入数据查询
  • 内置图形界面以便分析工程师管理语义模型
  • 支持文本输入的联想和查询问题的推荐
  • 支持多轮对话,根据语境自动切换上下文
  • 支持三级权限控制:主题域级、列级、行级

易于扩展的组件

超音数包含四个核心组件,每个都易于扩展或被集成:

  • 问答对话界面(chat interface):接受用户查询并选择合适的可视化图表呈现结果,支持输入联想和多轮对话。

  • 模式映射器(schema mapper)基于语义模型的schema构建知识库然后将自然语言查询在知识库中进行匹配为后续的语义解析提供相关信息。

  • 语义解析器链(semantic parser chain):识别查询模式并选择最匹配的语义模型,其由一组基于规则或模型的解析器组成,每个解析器可用于应对不同的特定场景。

  • 语义模型层(semantic model layer)建模阶段负责构建与管理语义模型查询阶段依据给定的语义模型来生成SQL语句。

快速体验

超音数自带样例的语义模型和问答对话,只需以下三步即可快速体验:

  • 从release page下载预先构建好的发行包
  • 运行 "bin/start-all.sh"启动前后端服务
  • 在浏览器访问http://localhost:9080 开启数据问答探索
  • 在浏览器访问http://localhost:9081 开启语义建模探索

如何构建

下载源码包,运行脚本"assembly/bin/build-all.sh",会将前后端一起编译打包