小尘要自信头像
关注
Windows 部署 MiGPT GUI:小爱音箱接 DeepSeek、豆包 TTS,再配置远程管理封面图

Windows 部署 MiGPT GUI:小爱音箱接 DeepSeek、豆包 TTS,再配置远程管理

前言

我折腾智能音箱时,最容易产生落差的地方不是“它不会说话”,而是它明明一直在线,真正能自定义的东西却很少:回答风格固定,想换个人设不方便,想接自己的大模型和 TTS 又容易被账号、接口和设备兼容卡住。MiGPT GUI 吸引我的地方,是把这些原本分散的配置集中到了一个 Web 面板里——小米账号、音箱型号、AI 接口、TTS、人设和启动状态都能从同一处调整。对我来说,这种玩法真正有意思的不是“让小爱变猫娘”这个噱头,而是能不能把音箱从固定回复,变成一套自己能维护、能换模型、能换声音、也能随时修改设定的 AI 入口。

这次我在 Windows 上用 Docker 启动 migpt-server,本地端口是 36592,再配置小米账号、小爱音箱 Pro、阿里云百炼兼容接口、deepseek-v3.2 和豆包 TTS。过程中还实际遇到了小米异地登录安全验证,最后通过容器内 .mi.json 和 passToken 把登录链路跑通,再测试单次对话、连续对话和自定义人设。最后安装 cpolar,把 MiGPT GUI 管理页面提供到公网,先验证随机地址,再切换到固定二级子域名 migpt。整篇我会把“音箱兼容、账号凭据、AI 接口、TTS、登录修复和公网管理”分开写,避免把任何一层的问题都归结成“模型没配置好”。

image-20251217202812981

1. MiGPT GUI 真正解决的,不是“换个声音”这么简单

先看一下当前效果示意。

image-20251217202708723

MiGPT GUI 是一个给小爱音箱接入 AI 大模型的图形化控制面板。

它主要把几类配置收在一起:

  • 小米账号和音箱设备;
  • AI 大模型接口;
  • TTS 文本转语音;
  • 对话关键词;
  • 连续对话;
  • 自定义人设;
  • 服务启动和状态查看。

image-20251214205825767

对我来说,它更像一层“控制面板”。

音箱本身仍然是小爱设备,大模型由外部 API 提供,TTS 又可能来自另一套服务。

所以后面如果出了问题,我会先判断:

到底是设备不兼容、账号没登录、AI 接口失败,还是 TTS 没通。

这比一看到音箱没回复,就直接重装容器要有效得多。

当前设备兼容情况

支持类型设备1设备2设备3设备4设备5设备6
✅ 支持连续对话小爱音箱 Pro小爱音箱 mini小爱音箱 Play(2019)万能遥控版小米 AI 音箱(1&2代)小爱智能家庭屏 10
⚠️ 不支持连续对话小爱音箱小爱音箱 PlayPlay 增强版智能家庭屏 6Redmi 触屏音箱 Pro 8小爱音箱 Art
❌ 无法运行小米小爱音箱 HD小爱蓝牙音箱随身版----

设备差异要先看清。

不是所有小爱音箱都支持连续对话,也不是所有型号都能运行当前方案。

2. 先用 Docker 把 migpt-server 跑起来

这次演示环境是 Windows。

按:

Win + R

输入:

cmd

打开命令提示符,然后执行:

docker run -d --name migpt-server -p 36592:36592 lmk123/migpt-server

image-20251214211257246

这条命令里几个关键点是:

  • 容器名:migpt-server
  • 宿主机端口:36592
  • 容器端口:36592
  • 镜像:lmk123/migpt-server

当前命令没有额外 volume 挂载,也没有写 restart 策略。

这一点后面处理登录凭据时会比较值得留意,因为容器内手动写入的文件和“宿主持久化配置”不是一回事。

3. 先确认容器真的处于 UP

执行:

docker ps

image-20251214211509481

如果 status 显示为 UP,并且能看到 36592 端口,再打开:

http://localhost:36592

image-20251214211643227

MiGPT 控制面板能够正常打开。

到这里我只确认:

Docker → migpt-server → 36592 → 本地 Web 页面

已经通了。

真正让音箱能和 AI 对话,还要继续配账号、设备、大模型和 TTS。

4. 先配置小米账号和音箱型号

进入控制面板以后,先选择音箱型号。

image-20251214213105421

当前示例设备是:

小爱音箱 Pro

接着需要获取小米账号 ID。

访问:

https://account.xiaomi.com/fe/service/account/profile

image-20251214213305212

登录自己的小米账号以后,复制小米 ID。

再把:

  • 小米账号 ID;
  • 小米账号密码;

填写到 MiGPT 控制面板。

image-20251214213440824

这里已经开始涉及账号凭据。

如果后面准备把 MiGPT GUI 开放到公网,我会把这一点单独记住,因为这个管理页面不是普通展示页,里面配置了真正的账号和接口信息。

5. 设备 ID 不要凭感觉写

设备 ID 需要参考米家 App 里显示的设备名称。

当前示例里看到的是:

Xiaomi 智能音箱 Pro

image-20251214213650090

然后把这个名称填到设备 ID。

image-20251214213801855

这里我会特别注意:

空格也要保持一致。

如果设备名称不匹配,后面 AI 接口和 TTS 全都配置正确,也不代表 MiGPT 一定能找到目标音箱。

6. 接入 AI:这次用阿里云百炼兼容接口

AI 部分使用阿里云百炼做演示。

当前材料记录的是:

新用户每个模型有 100 万免费 tokens。

image-20251214214146963

这类额度属于平台当前活动或政策信息,我按现有环境保留,不把它当作长期固定规则。

进入密钥管理页面:

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

image-20251214214420036

创建 API-KEY。

image-20251214214528440

选择归属账号后确认。

然后复制 API-Key。

image-20251214214621430

回到 MiGPT 控制面板。

接口地址填写:

https://dashscope.aliyuncs.com/compatible-mode/v1

模型填写:

deepseek-v3.2

当前使用:

deepseek-v3.2

image-20251214215106493

到这里,AI 接口层就配置完成了。

我不会把“API Key 已填”直接等同于“音箱已经能对话”。

后面还有 TTS 和小米登录状态要继续验证。

7. 再配置 TTS:这里换成豆包语音

AI 能生成文字以后,还要解决:

让音箱用什么声音说出来。

进入语音服务区域。

image-20251216151439419

默认 TTS 引擎是小爱音色。

这里切换到豆包。

image-20251216152023289

切换以后需要填写几项参数。

第一项是:

对外地址

当前局域网示例是:

http://192.168.50.149:36592

image-20251216152719848

也就是:

http://192.168.50.149:36592

如果部署环境不同,这里要按实际可访问地址填写。

8. 获取豆包 TTS 的 APP ID 和 Access Token

进入火山引擎控制台:

https://console.volcengine.com/home

image-20251216155108591

登录以后,在左上角菜单里搜索:

语音合成

进入:

豆包语音

image-20251216155245031

点击:

创建应用

image-20251216155330054

勾选:

语音合成

再确认。

image-20251216155409483

接着进入侧边栏的语音合成页面。

这里能看到:

  • APP ID
  • Access Token

image-20251216155616528

把它们填回 MiGPT 控制面板。

然后点击:

测试语音配置

当前默认演示音色是:

灿灿

image-20251216160135647

这里的 APP ID 和 Access Token 都属于接口凭据。

不建议放进公开截图、公开配置或公网可随意访问的管理页里。

9. 想换音色,可以继续查音色列表

当前材料还提供了一套火山引擎 TTS 音色列表页面。

地址是:

https://gitee.com/jun-wan/volcano-engine-tts-sound-list

image-20251216160635015

这个页面用于辅助查看和选择其他音色。

真正替换时,仍然要用自己账号对应的 APP ID 和 Access Token。

10. 配置完以后,先别急着改人设:先看日志

控制面板里点击:

启动

image-20251216161005460

然后回到 cmd。

执行:

docker logs -f migpt-server

image-20251216161112387

这里很快就遇到了真正的坑:

小米异地登录安全验证机制。

这也是我为什么不愿意把这套流程写成“10 分钟无脑部署”。

Docker 能启动、控制面板能打开、AI Key 能填,不代表小米账号登录一定顺利。

11. 当前登录问题的处理思路

现有处理步骤整理如下:

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

核心思路是:

进入容器 → 创建 MiGPT 配置目录 → 获取小米账号 passToken → 写入 .mi.json → 检查文件 → 退出。

这里涉及的是账号认证凭据。

passToken 应按敏感凭据处理,不要发到公开文章、聊天群、截图或代码仓库。

12. 进入 migpt-server 容器

如果前面还在运行:

docker logs -f migpt-server

先按:

Ctrl + C

退出日志跟随。

然后进入容器:

docker exec -it migpt-server /bin/sh

image-20251216162138360

13. 创建配置目录

容器里执行:

mkdir -p /root/.migptgui/default

image-20251216162940750

目录是:

/root/.migptgui/default

后面 .mi.json 就写在这里。

14. 获取小米账号 passToken

访问:

https://account.xiaomi.com

按照当前流程登录小米账号并获取 passToken。

image-20251216163445137

这里不把实际 token 写进正文。

真正使用时,只使用自己账号当前获取到的 passToken,并妥善保管。

15. 写入 .mi.json

在容器内部执行:

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

image-20251216163743758

这里 Mina 和 Miiot 两处都使用:

你的小米账号Token

占位符。

实际操作时替换成自己账号对应的 passToken。

这一步特别值得注意:

当前最初的 docker run 并没有把 /root/.migptgui/default 映射到宿主机 volume。

所以如果以后删除并重建容器,不要默认认为手动写进去的 .mi.json 一定还在。

至少需要重新确认这个文件是否存在。

16. 验证文件是否创建成功

执行:

ls -la /root/.migptgui/default/

image-20251216163950482

确认目录里出现:

.mi.json

以后,退出容器:

exit

到这里登录修复步骤完成。

17. 重新启动容器,再看一次日志

由于前面的账号登录问题,当前容器已经停止。

重新启动:

docker start migpt-server

image-20251216165010920

回到 MiGPT 页面,再点击启动。

image-20251216161005460

然后继续查看日志:

docker logs -f migpt-server

image-20251216165045369

这次日志显示服务已经正常运行。

18. 先测试单次 AI 对话

当前单次对话调用 AI 的关键词配置是:

请、你、傻妞

image-20251216170127411

用下面这句话测试:

小爱同学,你是谁?

image-20251216173706332

当前结果是:

  • AI 成功响应;
  • TTS 使用前面配置的音色进行回答。

这一层终于把:

音箱 → MiGPT → AI → TTS → 音箱回复

跑通了。

19. 支持的设备还可以测试连续对话

个别兼容设备支持连续对话。

image-20251216173802204

当前连续对话唤醒指令测试为:

召唤
为什么地球是方的?
那为什么地球是圆的?

image-20251216174212092

可以看到连续问题都成功调用 AI。

但是否支持连续对话,要回到前面的设备兼容表判断,不能因为小爱音箱 Pro 跑通,就默认所有型号都一样。

20. 对话跑通以后,再改人设

当基础链路稳定后,再做自定义人设更合适。

控制面板顶部可以看到当前人设设置。

image-20251216183932801

点击:

自定义

再点击:

写入默认模板

image-20251216184015055

页面会插入默认模板。

当前示例把它改成:

猫娘

image-20251216184451295

这里的人设文本本身可以自由替换。

如果是家庭成员共同使用,我会优先把角色设定写得简单、清楚,不让 Prompt 过度复杂化。

21. 覆盖模板后重新启动

把新的人设覆盖默认模板。

然后重新点击:

启动

image-20251217151034959

再次询问:

小爱同学,你是谁?

image-20251217185551631

当前测试结果显示:

自定义人设已经生效。

所以这一层验证的是:

Prompt 人设 → MiGPT → AI 回复风格

而不是修改了小爱音箱底层固件。

22. 为什么我还会给 MiGPT GUI 配公网访问

本地页面现在能做很多管理动作:

  • 换人设;
  • 改大模型 API;
  • 调 TTS;
  • 看运行状态。

但只要人在外面:

localhost:36592

就不能直接访问。

这里再加入 cpolar。

image-20250910114418412

cpolar 在这套方案里只负责:

把 MiGPT GUI 的 Web 管理页面提供到公网。

它不负责 DeepSeek 推理,也不负责豆包 TTS,更不参与小米设备登录。

23. Windows 安装 cpolar

进入下载页面,选择:

立即下载 64-bit

image-20250815171202537

下载后解压并安装。

安装完成以后打开 cmd,执行:

cpolar version

image-20250815171446129

看到版本信息以后,继续注册和登录。

24. 注册并进入 cpolar Web UI

进入 cpolar 官网注册账号。

image-20250804085039567

完成注册。

image-20250804085208319

浏览器访问:

http://127.0.0.1:9200

image-20250815171734046

使用注册好的 cpolar 账号登录。

image-20250815171846757

后面的公网隧道都在这个页面里配置。

25. 先用随机域名测试公网访问

当前说明里写的是:

随机域名大约每 24 小时变化一次。

这个周期属于现有材料描述,我按当前环境保留,不把它扩大成任何套餐永远固定如此。

后台默认可以看到:

  • remoteDesktop:3389,TCP
  • website:8080,HTTP

image-20250914174356363

编辑:

website

隧道,把它改成 MiGPT GUI 对应的信息。

image-20251217200005873

当前目标服务端口是:

36592

隧道名称使用:

migpt

更新以后进入在线隧道列表。

可以看到两条 migpt 地址:

  • HTTP
  • HTTPS

image-20251217200048168

每个用户生成的公网地址都不同。

用其中的 HTTPS 地址测试。

image-20251217200146697

MiGPT GUI 页面能够正常打开。

这一层验证的是:

Windows 36592 → cpolar → 公网地址 → 外部浏览器。

26. 长期使用再切固定二级子域名

随机地址适合先验证。

如果以后需要经常从外面进入 MiGPT GUI,再考虑固定二级子域名。

进入:

https://dashboard.cpolar.com/reserved

在:

预留 → 保留二级子域名

中配置固定地址。

image-20251217201503465

当前示例记录是:

  • 地区:China Top
  • 二级域名:migpt

二级域名具有唯一性,最终以自己账号实际保留成功的名称为准。

27. 把固定子域名绑定回 migpt 隧道

进入:

隧道管理 → 隧道列表

找到:

migpt

点击编辑。

image-20251217201537239

把域名类型改成:

二级子域名

再填写前面保留成功的域名。

image-20251217201702338

更新以后进入在线隧道列表。

可以看到 migpt 公网地址已经变成固定二级子域名形式。

image-20251217201747249

最后用 HTTPS 地址测试。

image-20251217201843497

页面可以正常访问。

28. 公网开放 MiGPT GUI,真正要小心的是管理凭据

这套页面里配置了:

  • 小米账号 ID;
  • 小米账号密码;
  • AI API Key;
  • 豆包 APP ID;
  • Access Token;
  • 设备信息;
  • 人设和模型配置。

所以我不会把 MiGPT GUI 当成一个普通公开网页。

“公网能打开”只是网络层成功。

真正长期使用时,更值得确认:

谁能访问、页面本身有什么登录保护、凭据会不会在页面里暴露、固定地址是否只分享给需要的人。

cpolar 负责的是入口,不会自动替应用增加业务级权限控制。

总结

这次真正跑通的主线是:

Windows → Docker → lmk123/migpt-server → 36592:36592 → MiGPT GUI → 小爱音箱 Pro → 小米 ID / 密码 / 设备 ID → 阿里云百炼 → https://dashscope.aliyuncs.com/compatible-mode/v1 → deepseek-v3.2 → 豆包 TTS → APP ID / Access Token → 小米异地登录问题 → 容器 /root/.migptgui/default/.mi.json → passToken → 重启 → 单次对话 → 连续对话 → 自定义猫娘人设 → cpolar → 127.0.0.1:9200 → 36592 随机公网 → 固定二级子域名 migpt。

几个细节需要继续留意:

  • 设备兼容性有差异,是否支持连续对话要按当前兼容表判断;
  • Docker 启动命令没有 volume 和 restart 参数,后面手动写进容器的 .mi.json 在容器重建后需要重新确认;
  • 小米密码、passToken、AI API Key、APP ID、Access Token 都属于敏感凭据,不适合公开;
  • deepseek-v3.2、百炼免费 tokens、随机域名约 24 小时变化等属于当前材料环境,不扩展成长期不变政策;
  • TTS 对外地址示例继续保留 http://192.168.50.149:36592;
  • cpolar 只负责 MiGPT GUI 的公网入口,不参与 AI 推理、TTS 或小米账号认证;
  • 固定二级子域名示例继续使用 migpt,地区是 China Top;
  • 把 MiGPT GUI 提供到公网后,更要关注管理页本身的访问边界,因为这里承载的不只是普通配置,而是多套账号和接口凭据。

对我来说,这次最有价值的不是把小爱音箱换成某个“猫娘人设”,而是把整条链真正拆开跑通:设备能找到、账号能登录、模型能回答、TTS 能出声、人设能生效、远程还能进管理页。等这些基础层稳定以后,想换老师、管家、游戏角色还是别的设定,反而只是最后一步。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_54796785/article/details/166644383

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--