AI知识库

53AI知识库

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


SuperSonic环境部署
发布日期:2024-06-22 06:35:53 浏览次数: 1950


社区群里面经常有小伙伴咨询环境、本地编译、部署等问题;为了方便大家更好地使用,本文将对SuperSonic环境、部署、项目结构方面进行介绍;

一、系统环境和部署

1、环境依赖
1.1 后端服务
JDK版本: 1.8+Maven:2+ (源码编译)
1.2 前端服务
Node版本:16+pnpm: 8+
1.3 Python服务
此处仅指使用sh bin/supersonic-daemon.sh start pyllm命令启动python服务;
Python版本: 3.9+pip版本: 3.9+
其它python依赖包文件,具体可参考文件supersonic/chat/python/requirements.txt;
langchain==0.0.207openai==0.27.4fastapi==0.95.1chromadb==0.3.21tiktoken==0.3.3vicorn[standard]==0.21.1(windows: uvicorn==0.21.1)pandas==1.5.3
注意事项:
  • pip路径:在supersonic-common.sh中修改
  • python路径:在supersonic-common.sh中修改
  • 默认pip路径/usr/local/bin/pip3,默认python路径/usr/local/bin/python3
  • Windows系统需要将python和pip指令配置好

2、编译和启动
2.1 Release启动
  • 下载最新版release包
    https://github.com/tencentmusic/supersonic/releases
  • 启动脚本:
    1)unzip supersonic-release-xxx.zip
  • 2)sh bin/supersonic-daemon.sh start
  • 浏览器访问:http://localhost:9080
  • 日志:目录../runtime/supersonic-standalone/logs
  • 1)keyPipeline.log:查询关键路径日志,主要指包括:用户输入的NLQ、输入给LLM的Prompt、LLM输出的S2SQL、Headless输出的SQL
    2)info.chat.log/error.chat.log:整个应用的info、error级别日志;
    3)serviceinfo.chat.log:supersonic相关的日志(仅在com.tencent.supersonic);
2.2 源码启动
  • 源码编译
  • sh assembly/bin/supersonic-build.sh 执行构建
  • 启动
  • sh assembly/bin/supersonic-daemon.sh start
  • 浏览器访问:http://localhost:9080
2.3 IDE启动
  • 后端直接访问前端资源的方式
    1)sh assembly/bin/supersonic-build.sh 执行构建
    2)IDE本地启动Java类StandaloneLauncher
    3)浏览器输入http://localhost:9080
  • 前后端分开启动的方式
  • 1)IDE本地启动Java类StandaloneLauncher
    2)进入webapp目录,执行sh start-fe-dev.sh直接启动前端服务
    3)浏览器输入http://localhost:9000 (注意这里是9000端口
说明:
  • Windows环境同样提供对应的bat脚本
  • 系统目前支持两种访问LLM和向量库的方式:
  • 1)Java服务通过langchain4j直接访问LLM的方式,默认方式; 
    2)Python服务的方式来访问LLM,执行sh assembly/bin/supersonic-daemon.sh start pyllm,会同时启动Python服务和Java服务, 区别是通过Python服务来访问LLM和向量库
  • Ubuntu环境,若出现报错, 可尝试访问:
    https://support.huaweicloud.com/intl/zh-cn/deployman_faq/deployman_faq_1016.html

2.4 命令汇总
编译:
  • sh supersonic-build.sh  编译java服务、前端代码
  • sh supersonic-build.sh pyllm 编译java服务、前端代码、python代码
运行:
  • sh supersonic-daemon.sh start 启动java服务
  • sh supersonic-daemon.sh restart 重启java服务
  • sh supersonic-daemon.sh start pyllm 启动java、python服务
  • sh supersonic-daemon.sh restart pyllm 重启java、python服务
  • sh supersonic-daemon.sh stop 重启所有服务
  • window环境命令与linux系统类似,执行bat命令;

二、工程介绍
1、工程结构
supersonic工程结构如下:

现我们对各工程主要功能进行说明

2、assembly工程

主要功能是工程的编译和启动;主要包含binbuild文件夹;
  • bin文件夹用于存放编译和启动脚本;支持window、linux两套系统;
  • build文件夹用于存储编译后的文件包;执行build命令后,编译后的前后端包存放在build文件夹下;
  • 执行启动命令后,会将编译的包copy至runtime目录,解压并启动服务;如需修改配置文件参数,可在supersonic-standalone/conf目录下配置文件进行修改;其中supersonic-standalone/logs是java服务日志保存目录;supersonic-standalone/pyllm/pyllm.log是python服务日志文件;


3、chat工程
主要是supersonic问答功能的实现;主要包括四个子工程:apicoreserverpython
  • server工程主要是对外提供rest接口、集成业务增删查改功能;
  • core工程主要集成chat模块最核心功能:如mapper、parser、corrector、query
  • api工程主要是定义pojo对象包括request、response、以及共用的pojo类;
  • python工程主要是与LLM、向量库交互的python版本的实现;
3、auth工程
主要是权限相关,包括认证、鉴权等功能;如需要实现自定义的账号认证体系;可按需实现UserAdaptor、AuthenticationInterceptor接口,并在spring.factories中指定;

4、headless工程

主要是supersonic统一语义层的实现;主要包括三个子工程:apicoreserver
  • server工程,和chat中的server功能类似
  • core工程主要集成headless模块最核心功能:如queryCache、queryParser、queryPlan、queryExecute等;
  • api工程,和chat中的api功能类似;
5、common工程
主要集成supersonic各工程共用一些类库;
6、launchers工程
主要是supersonic启动相关部分代码;包括单独启动chat、单独启动headless、同时启动chat/headless的standalone模式;
7、webapp工程
前端工程代码;包括两大块:chat-sdk、supersonic-fe;chat-sdk是前端问答相关代码,如其他系统需要集成问答功能,可单独引入chat-sdk即可;supersonic-fe是除问答之外其他前端代码;


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

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

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

联系我们

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

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询