Docker部署MiGPT GUI:为小爱音箱接入大模型、自定义人设与TTS

前言

小爱音箱原有的语音交互主要围绕天气查询、音乐播放、智能家居控制和固定问答展开,能够满足基础家庭场景,但在开放式对话、角色设定和回答风格方面存在明显限制。MiGPT GUI提供了一套相对完整的改造方案:通过Docker运行服务,将小爱音箱连接到兼容OpenAI接口的大模型,并在可视化页面中配置角色提示词、语音合成服务和设备参数,使原有音箱获得更灵活的对话能力。

这套方案的核心不是替换音箱硬件,而是在现有设备与大模型之间增加一个中间服务。用户向小爱音箱发出语音指令后,MiGPT负责接收和处理请求,再调用配置好的模型生成回答,最后通过小爱音箱或第三方TTS音色完成语音播放。本文使用阿里云百炼提供的大模型接口进行演示,同时接入豆包语音合成服务,让模型内容、人设和声音可以分别配置。实际使用中,可以根据接口兼容情况更换其他模型平台,也可以继续使用小爱音箱默认音色。

MiGPT GUI比较实用的功能,是把原本分散在配置文件中的参数集中到网页控制面板。小米账号、设备名称、模型地址、API Key、触发关键词、连续对话、人设模板和TTS参数都可以在同一页面修改。对于希望体验角色对话、家庭问答助手、儿童陪练或语音信息查询的用户,这种方式比手工修改脚本更容易维护。需要调整人设时,也不必重新部署容器,只需修改提示词并重新启动服务即可。

不过,部署之前需要先确认设备兼容情况。不同型号对连续对话的支持并不一致,部分小爱音箱只能进行单次问答,还有少数型号无法正常运行。小米账号登录也可能触发异地安全验证,本文因此补充了在Docker容器中写入passToken配置文件的处理方法。该过程会涉及小米账号密码、passToken、大模型API Key以及TTS访问凭证,这些信息都属于敏感配置,不应写入公开脚本、截图或分享给其他人。

本地运行MiGPT GUI后,管理页面默认只能通过当前电脑或局域网访问。对于长期运行在家中电脑、NAS或小型服务器上的服务,外出时修改模型、人设和语音参数会比较不方便。本文后半部分将使用cpolar映射MiGPT GUI的36592端口,分别配置临时公网地址和固定二级子域名,使管理页面能够在异地浏览器中打开。公网开放后,应避免使用过于简单的访问方式,并注意保护控制面板及其中保存的账号和接口凭证。

下面将按照Docker部署、设备与账号配置、大模型接入、TTS设置、登录问题修复、人设调整和cpolar远程访问的顺序,完成整套小爱音箱AI改造流程。

想知道具体怎么操作,让你的 小爱音箱秒变智能助手 吗?接下来,我会手把手教你 花 10 分钟完成部署,让你也能亲身体验这份乐趣。

1 什么是MiGPT GUI?

MiGPT GUI 是一个图形化工具,旨在让用户 轻松将小爱音箱接入人工智能大模型。它通过可视化界面简化了配置和部署流程,即使没有深厚的编程基础,也能快速完成以下操作:

  • 接入 MiGPT 大模型,让小爱音箱获得更智能的对话能力;
  • 自定义人设和对话风格,让音箱的回答更符合个人需求;
  • 支持 TTS(文本转语音),实现自然语音输出;
  • 安全快速部署,可在本地或 Docker 环境运行;
  • 设备兼容性一目了然:
支持类型 设备1 设备2 设备3 设备4 设备5 设备6
✅ 支持连续对话 小爱音箱 Pro 小爱音箱 mini 小爱音箱 Play(2019) 万能遥控版 小米 AI 音箱(1&2代) 小爱智能家庭屏 10
⚠️ 不支持连续对话 小爱音箱 小爱音箱 Play Play 增强版 智能家庭屏 6 Redmi 触屏音箱 Pro 8 小爱音箱 Art
❌ 无法运行 小米小爱音箱 HD 小爱蓝牙音箱随身版 - - - -

简单来说,MiGPT GUI 就是小爱音箱接入大模型的"可视化桥梁",把复杂的配置和接口调用都封装在图形界面里,让家庭自建 AI 助手变得轻松可行。

2 Docker一键部署 migpt-server

本教程将以Windows系统上的Docker部署migpt-server作为演示,

首先,电脑摁Win+R键,输入cmd回车,打开命令提示符窗口。然后输入如下命令一键部署migpt-server服务:

shell 复制代码
docker run -d --name migpt-server -p 36592:36592 lmk123/migpt-server

执行完成后,可以使用如下命令查看Docker容器状态:

shell 复制代码
docker ps

可以看到**status(状态)**显示为UP,端口为36592,代表正常运行的,接着,浏览器访问如下地址:

shell 复制代码
http://localhost:36592

可以看到如下页面:

这样,你就成功的部署好了migpt-server啦,是不是很简单!

3 配置migpt-server

前面我们已经成功部署好了 migpt-server 并确认服务正常运行,接下来就可以进行配置,让小爱音箱顺利接入 MiGPT。

3.1 配置小米账号及小爱设备

回到MiGPT 控制面板 页面,下拉找到音箱部分,选择你的音箱型号

我这里是小爱音箱 Pro,所以我就选择的它。接着小米账号ID部分,访问如下地址登录你的小米账号:

shell 复制代码
https://account.xiaomi.com/fe/service/account/profile

小米ID 复制下来,填写到MiGPT 控制面板 中的小米账号 ID 列中,以及填写好你的小米账号密码:

接着,设备ID这儿,可以访问你的米家APP 中显示的名称,注意空格也要正确填写,比如我的显示为Xiaomi 智能音箱 Pro

就将该名字填写至设备ID这一列中:

3.2 配置接入AI大模型

这里以阿里云百炼 的API作为演示,阿里云百炼的新用户 登录即有每个模型100万 免费tokens:

登录好以后,进入到密钥管理页面:

shell 复制代码
https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.60907980OAftBf&tab=model#/api-key

点击页面上的创建API-KEY 按钮,选择你的归属账号 ,然后点击确认

确认后即可创建成功,点击页面上的API-Key列 的复制按钮即可复制你的Api-Key密钥:

复制好以后回到MiGPT 控制面板页面,在接口地址中填写如下链接:

shell 复制代码
https://dashscope.aliyuncs.com/compatible-mode/v1

密钥部分填写刚才复制下来的Api-Key密钥,模型部分这里以DeepSeek最新的V3.2为例,填写:

shell 复制代码
deepseek-v3.2

参考如下图:

这样就配置好,接入好AI了!

3.3 配置语音TTS服务

前面已经配置好了AI服务,接下来我们来配置一下语音服务,让你的小爱同学能够使用其他的音色来回答你的问题!

滚动到下方的语音服务项:

可以看到TTS引擎显示为默认 ,默认为小爱同学音色,点击可以切换引擎,这里以豆包为例:

切换后,会有4个参数,首先是对外地址 ,对外地址需要填写局域网地址 或者部署在公网填写公网地址(比如我的电脑局域网IP为):

shell 复制代码
http://192.168.50.149:36592

接下来是APP IDAccess Token ,首先需要登录火山引擎控制台

shell 复制代码
https://console.volcengine.com/home

登录上以后,点击左上角3条杠,然后搜索语音合成 ,点击豆包语音 进入:

进入以后,点击创建应用

然后勾选上语音合成,点击确定即可:

接着在侧边栏的语音合成 里面,就能看到你的APP IDAccess Token 了:

将其粘贴至MiGPT控制面板 中即可,然后点击测试语音配置 ,就可以试听一下是否配置成功了,默认是使用的灿灿 音色:

如果想要换其他音色,可以参考火山引擎TTS音色列表 ,如下为我在gitee中开源的一个小页面,可以自行部署填写APP IDAccess Token即可:

shell 复制代码
https://gitee.com/jun-wan/volcano-engine-tts-sound-list

4 登录问题修复及效果演示

4.1 登录问题修复

配置完成后,点击页面上的启动按钮,即可启动:

然后可以回到cmd终端,输入如下命令查看migpt-server运行日志(用户查看对话):

shell 复制代码
docker logs -f migpt-server

可以看到控制台提示了小米异地登录安全验证机制,这个问题即使访问链接登录了也不好使,如下为我整理出来的解决方法步骤如下:

shell 复制代码
1. 进入容器内部,进入 migptgui 容器的交互式 shell
2. 创建配置文件目录,创建 .migptgui/default 目录
3. 登录小米账号,在浏览器中访问小米账户获取授权或信息
4. 创建并写入 .mi.json 文件,在容器内创建文件并写入 Mina 和 Miiot 的 passToken
5. 验证文件是否创建成功,查看 .mi.json 是否存在并显示内容
6. 退出容器内部

我们按照步骤执行,首先需要进入到migpt-server 的容器内部,执行命令(记得用ctrl +c 停止之前查看日志的占用):

shell 复制代码
docker exec -it migpt-server /bin/sh

接着,在容器内创建配置文件目录,执行如下命令:

shell 复制代码
mkdir -p /root/.migptgui/default

然后登录小米账号官网,获取到你的passToken:

shell 复制代码
https://account.xiaomi.com

操作步骤如下:

获取到passToken 后,在docker容器内部执行如下命令(注意替换上你的passToken):

shell 复制代码
cat > /root/.migptgui/default/.mi.json << 'EOF'
{
  "mina": {
    "pass": {
      "passToken": "你的小米账号Token"
    }
  },
  "miiot": {
    "pass": {
      "passToken": "你的小米账号Token"
    }
  }
}
EOF

然后验证是否成功创建**.mi.json**文件:

shell 复制代码
ls -la /root/.migptgui/default/

成功,执行如下命令退出容器即可:

shell 复制代码
exit

4.2 效果演示

修复登录问题后,输入如下命令启动容器(由于前面账号登录问题,容器其实停止了):

shell 复制代码
docker start migpt-server

再次点击页面上的启动按钮,即可启动:

然后可以回到cmd终端,输入如下命令再次查看migpt-server运行日志(用户对话查看):

shell 复制代码
docker logs -f migpt-server

可以看到,现在服务成功启动了,在前面可以看到单次对话调用AI的关键词配置的为请、你、傻妞

这里询问一下,如:

shell 复制代码
小爱同学,你是谁?

可以看到成功回答了,而且使用的我们配置的音色进行回答的!个别音箱还支持连续对话,可以通过关键词召唤:

这里使用如下指令唤醒连续对话:

shell 复制代码
召唤
为什么地球是方的?
那为什么地球是圆的?

可以看到成功的都调用AI进行回复啦。这样你的小爱音箱就已经支持AI啦!

5 设置人设

前面我们已经完美的配置好了小爱音箱接入大模型DeepSeekV3.2 ,并且配置上了豆包的音色 ,本期将带你更换默认人设傻妞

首先,滚动到最顶部,可以看到如下:

我们点击自定义 按钮,然后点击写入默认模板:

可以看到已经插入了默认的模板,我们需要修改成自己喜欢的角色人物,比如这里以猫娘为例(为了省事,直接用AI生成了一个人设):

人设 覆盖之前的模板,然后重新点击启动按钮即可:

让我们询问一下小爱同学看看:

shell 复制代码
小爱同学,你是谁?

可以看到,我们设置的人设已经生效了!现在你的小爱音箱已经变身为一个具备个性化人设的AI智能助手,快去和它聊聊天吧!

6 下载安装cpolar

到这里,MiGPT GUI 已经在本地跑起来了,但问题也随之而来------每次想换个人设调整TTS音色 、或者切换大模型API,都得守在电脑前操作。万一人在外面,家里的小爱音箱突然"抽风"或者想临时改个设定,那就只能干着急。

有了 cpolar 内网穿透 ,这些烦恼就迎刃而解了。只需简单配置,就能随时随地通过公网访问 MiGPT GUI 管理面板,远程调参、切换模型、更新人设,统统不在话下。

6.1 什么是cpolar?

  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。

6.2 下载cpolar

打开cpolar官网的下载页面:

点击立即下载 64-bit按钮,下载cpoalr的安装包:

下来下来是一个压缩包,解压后执行目录种的应用程序,一路默认安装即可,安装完成后,打开cmd窗口输入如下命令确认安装:

shell 复制代码
cpolar version

出现如上版本即代表安装成功!

6.3 注册及登录cpolar web ui管理界面

访问cpolar官网,点击免费注册按钮,进行账号注册

进入到如下的注册页面进行账号注册:

注册完成后,在浏览器中输入如下地址访问 web ui管理界面:

shell 复制代码
http://127.0.0.1:9200

输入刚才注册好的cpolar账号登录即可进入后台页面:

7 穿透MiGPT GUI实现公网访问

7.1 随机域名方式(免费方案)

随机域名方式适合预算有限的用户。使用此方式时,系统会每隔 24 小时 左右自动更换一次域名地址。对于长期访问的不太友好,但是该方案是免费的,如果您有一定的预算,可以查看大纲7.2固定域名方式 ,且访问更稳定

点击左侧菜单栏的隧道管理,展开进入隧道列表页面,页面下默认会有 2 个隧道:

  • remoteDesktop隧道,指向3389端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

点击编辑website的隧道,修改成我们MiGPT GUI需要的信息:

接着,点击左侧菜单的状态菜单,接着点击在线隧道列表菜单按钮,可以看到有2个migpt的隧道,一个为http协议,另一个为https协议:

注意:每个用户创建的隧道显示的公网地址都不一样!

接下来在浏览器中访问migpt隧道生成的公网地址(http和https皆可),这里以https为例:

可以看到成功访问啦!

7.2 固定域名方式

通过前面的配置,我们已经成功实现了MiGPT GUI 的远程访问,但免费随机域名方案 的局限性也逐渐显现:每24小时左右 自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问。固定域名方案 正是为了解决这些痛点而生,能够让你拥有一个永久不变的专属地址

好啦,接下来开始固定保留二级子域名教程!

首先,进入官网的预留页面:

shell 复制代码
https://dashboard.cpolar.com/reserved

选择预留菜单,即可看到保留二级子域名项,填写其中的地区名称描述(可不填)项,然后点击保留按钮,操作步骤图如下:

列表中显示了一条已保留的二级子域名记录:

  • 地区:显示为China Top
  • 二级域名:显示为migpt

注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主

接着,进入侧边菜单栏的隧道管理下的隧道列表,可以看到名为migpt的隧道,点击编辑按钮进入编辑页面:

修改域名类型为二级子域名,然后填写前面配置好的子域名,点击更新按钮:

接着,来到状态菜单下的在线隧道列表可以看到隧道名称为migpt的公网地址已经变更为二级子域名+固定域名主体及后缀的形式了:

这里以https协议做访问测试:

访问成功!这样一来,你就拥有了一个永久不变的专属域名,再也不用担心24小时域名更换的问题啦!

总结

本文完成了MiGPT GUI的Docker部署,并将小爱音箱、大模型接口、豆包TTS和自定义人设连接到同一套控制面板中。配置成功后,小爱音箱不再局限于固定问答,可以根据设定的角色和表达方式生成回复;对于支持连续对话的型号,还能够通过指定关键词进入多轮交流。

这套方案的优势是无需改动音箱硬件,主要配置都能够通过网页完成,模型、人设和音色也可以分别替换。实际使用中的限制同样需要提前考虑,包括设备型号兼容差异、小米账号异地登录验证、模型与TTS接口费用,以及账号密码和passToken的保管问题。部署前先确认音箱型号,测试时控制API消耗,并避免公开敏感凭证,会比直接长期运行更稳妥。

结合cpolar后,MiGPT GUI的管理页面可以在局域网之外访问,方便远程修改人设、切换模型、调整音色或查看服务状态。临时测试可以使用随机公网地址,需要长期管理时再配置固定二级子域名。对于已经拥有小爱音箱,并希望在不更换硬件的前提下扩展语音对话能力的用户,这是一套功能较完整、调整空间也比较大的实践方案。