前面,分享了小智 AI 服务端的系列文章:
最近把 服务端
拆成独立的微服务,支持动态扩缩容,极致压缩成本。
目前,这套方案已经成功部署,成本低至 1.5 元/天:
今日分享,聊聊这套方案的具体实现,希望给感兴趣的朋友一点参考。
1. 系统架构
架构特点:模块化设计和微服务架构,支持弹性扩展和负载均衡。
图中,
终端设备层:以AtomS3R
举例,支持任意接入小智AI客户端
的开发板。
服务端,目前最新支持到客户端
的1.8.5
版本,持续跟进中。
云端服务层:集成语音识别、LLM、语音合成等独立管线,支持高并发、低延迟的智能对话。架构如下:
管理服务层:管理后台与用户前端,采用Vue3搭建,支持多终端、多角色的灵活管理和可视化。
数据存储层:
- MySQL 数据库:密钥和配置持久化;用户认证;资源管理;日志存储;
- Redis 缓存:密钥状态缓存;常用资源缓存;音色缓存;
- EMQX 消息队列:MQTT 协议交互;
基础设施层:支持单机部署和集群部署
整个服务端,拆解成 6 大功能模块,独立打包,docker 镜像大小如下:
单机部署 docker-compose
一键拉起;
集群部署基于 K8s
,包含 6 个 Deployment,每个最低1个副本:
2. 支持功能
用户前端:
- 设备管理:验证码添加设备;配置角色;声纹识别;对话记忆;
- 角色管理:自定义角色提示词;
- 大模型管理:接入自定义的 LLM,支持 OpenAI/Coze API 格式;
- 音色管理:支持 3s 音色克隆;
管理后台:
- 系统管理:
- 资源管理:
AI服务:
- 主服务端:支持 WebSocket / MQTT+UDP 通信协议;
- LLM 端:支持 OpenAI / Coze 两种协议,流式/非流式输出,接入 MCP;
- ASR 端:支持 VAD + ASR + 声纹识别,双向流式;
- TTS 端:支持 Dashscope / Volcengine / 本地部署,双向流式;
3. 部署方案
为了满足高可用、可扩展
的设计原则,完整方案部署在 k8s 集群上。
进一步,为了满足低成本、少运维
的原则,这里选择了 sealos
。
关于 sealos & 注册体验:https://bja.sealos.run/?uid=QDGJoX2_Qp
3.1 数据库
首先是数据库:
主要用到 Mysql 和 Redis:
测试阶段,单节点即可:
3.2 应用
然后,新建应用:
以新建 espbot-frontend
为例:
你只需要在前端页面点点点,sealos 帮你写好了一堆 yaml 文件,底层调用 kubectl apply -f
拉起应用:
- 镜像源:选择镜像,可以是私有仓库;
- 部署模式:弹性伸缩,可根据 cpu/内存 使用率进行弹性扩展实例;
- 极低成本:配置选择0.1c/128M,而阿里云ACS上最小得0.25c/512M;
你看,每天仅需 0.07 元,即可部署一个前端应用
的pod,包括:用户前端和管理后台
,只需放开两个端口:
公网访问,可以用 sealos 的二级域名,连域名费用都省了;如果用自己域名,只需添加一条 DNS。
最后,一起来看下资源占用!
整个服务端,6 个应用 + 2 个数据库:
按照最低成本
原则,总计资源消耗 2.3C/2.5G:
合计每天成本:
这个成本,完全可以覆盖测试阶段使用。
一旦流量上来,只需切换到弹性伸缩
模式即可,极致丝滑~
写在最后
本文分享了,小智AI服务端
的一种低成本、高可用
的完整解决方案。
如果对你有帮助,不妨点赞收藏备用。
下一篇,
打算聊聊 AI 语音对话背后的技术路线选择。
愿你我都能在 AI 落地的路上,少踩坑、多复用,把精力留给真正的业务创新。