适配Xiaozhi的AI agent服务器程序
本服务端致力于能跑到NAS
, 路由器
, 树莓派
等轻量级设备,因此所有大模型均调用API服务
使用Xiaozhi来进行对话。
没有联网能力
- 对话时大概76M
- 非对话时大概36M常驻内存
- 支持OTA协议,服务会将OTA协议转发致小智官方服务器, 然后将小智官方的返回的服务器地址为我们自己的
websocket
地址, 因此我们可以在自定义服务器的基础上,不影响与官方同步升级。
- 支持会话记忆(即本次唤醒后所有的对话聊天,暂未实现压缩)
- 历史对话记录(即历史对话记录摘要,用于每次对话时记忆召回)
- 用户画像(每次会话结束之后,会更新用户话像,方便AI做出更适合用户的回答)
- 每次唤醒之后,会根据用户输入,调用大模型来进行意图识别,之后本次会话的所有对话都由意图识别给出的
Agent
来应答
闲聊
默认全能型提示词小学全科老师
用于解决小朋友们的一些学习上的问题
-
Docker部署,镜像大概80M
- 一个Web前端用于调试
AI Agent
相关的功能和OTA接口 - Xiaozhi语音终端
SileroVad
用来提前去除一些非人类声音, 降低ASR
的开销ASR
使用了腾讯提供的服务,每个月5000
次的免费额度足够了TTS
使用了EdgeTTS
服务,支持流式,目前是通过标点切分来实现流式输入,EdgeTTS
自带流式输出。Embedding
使用了硅基流动
提供的免费API, 虽然有并发限制,在只有一个设备的情况下,并发也够了大模型
分别使用了智谱AI
和硅基流动
提供的免费API, 同时使用可解决并发问题向量数据库
使用了Redis-Stack提供的免费数据库,免费的32M内存目前应该也足够做记忆召回了
配置文件, 里面包含了所有的配置信息,包括ASR
, TTS
, Embedding
, 大模型
, 向量数据库
等
- 优化记忆召回
- 抽象简易
Workflow
, 方便编写一些稍微复杂一点的AI Agent
- 基础知识库召回(主要是一些儿童读物,课本,防止大模型的幻觉让小朋友学到错误的知识)
- HomeAssistant对接
- 接入喜马拉雅讲故事