小爱音箱接入 ChatGPT 大模型:MiGPT 部署与使用指南
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
MiGPT 是一个开源项目,把小爱音箱接入 ChatGPT、豆包等大语言模型,让音箱用大模型的能力回答问题、连续对话。适合想在家庭局域网里跑服务、不想刷机的小爱音箱用户。
🧩 MiGPT 能帮你做什么
一句话定位:MiGPT 通过小米 IoT 开放接口轮询音箱对话,把语音转成 AI 问答,再让音箱朗读回复,全程不需要对音箱做任何硬件改动。
- AI 问答:接入大模型后,复杂问题、知识类提问由大模型直接作答
- 角色定制:可给助手设定姓名、性格、说话风格,打造专属人设
- 流式响应:回复边生成边朗读,减少"干等"的等待感
- 长短期记忆:基于本地数据库记录上下文,支持多轮对话衔接
- 音色更换:可接入第三方 TTS 服务,换成更接近真人的音色
📦 动手前先确认这三件事
- 设备型号:大部分小爱音箱可用,小爱音箱 Pro 运行最完整。其他型号先查 docs/compatibility.md 确认指令参数和是否支持连续对话;小度、天猫精灵等品牌不在支持范围内。
- 运行环境:一台能长期开机的电脑或服务器,4GB 内存以上,装好 Docker 或 Node.js 20+ 即可。
- 账号准备:一个小米账号(注意要"小米 ID",在账号个人信息的"小米 ID"一栏查看,不是手机号或邮箱)和对应密码;再准备一个大模型 API Key,如 OpenAI、通义千问等。
🚀 三步完成部署
第 1 步:获取项目。
git clone https://gitcode.com/GitHub_Trending/mi/mi-gpt cd mi-gpt第 2 步:建立两个配置文件。项目根目录已有两个示例文件,复制后改名再填写:
cp .migpt.example.js .migpt.js cp .env.example .env.migpt.js的关键字段:
| 字段 | 含义 |
|---|---|
bot.name/bot.profile | AI 的名字和人设,如"性别女,性格乖巧可爱" |
speaker.userId | 小米 ID(非手机号、邮箱) |
speaker.password | 小米账号密码 |
speaker.did | 设备名称或设备 ID,须与米家 APP 中的名称逐字一致 |
speaker.ttsCommand | 朗读指令,来自 MIoT 规格文档,如[5, 1] |
speaker.wakeUpCommand | 唤醒指令,如[5, 3] |
speaker.streamResponse | 是否开启连续对话,部分机型需关闭 |
.env的关键字段只有三个:OPENAI_API_KEY(密钥)、OPENAI_MODEL(模型名)、OPENAI_BASE_URL(接口地址,换模型时改这里)。完整参数说明见 docs/settings.md。
第 3 步:启动服务。两种方式任选其一。
Docker 方式(适合不想装 Node 环境的用户):
docker run -d --env-file $(pwd)/.env -v $(pwd)/.migpt.js:/app/.migpt.js idootop/mi-gpt:latestWindows 终端下把$(pwd)换成配置文件绝对路径。Node.js 方式:
pnpm install pnpm db:gen pnpm dev看到控制台输出"服务已启动",再用语音喊一句"小爱同学,召唤傻妞",音箱回应了就算成功。
🤖 接入大模型并定制助手
多模型切换的原理:MiGPT 走的是 OpenAI 兼容接口。任何提供 OpenAI 格式 API 的服务(通义千问、Moonshot、DeepSeek 等)都只需改.env里OPENAI_BASE_URL和OPENAI_MODEL两个值即可接入。豆包这类原生不支持 OpenAI 接口的模型,可以部署 OneAPI 等聚合服务做一层转换,再把OPENAI_BASE_URL指向它。
角色设定:.migpt.js里的systemTemplate是系统提示词,用来约束回答风格,比如要求"保持精简、不超过三句话";bot.name和bot.profile决定助手自称什么、性格如何。写人设的思路可参考 docs/prompt.md。
唤醒词与退出词:callAIKeywords定义哪些开头会直接调用 AI(默认含"请");wakeUpKeywords进入连续对话模式;exitKeywords退出该模式。进模式后不再需要每句都说"小爱同学",省去了反复唤醒的步骤。
连续对话开关:streamResponse控制是否进入连续对话;exitKeepAliveAfter设定无响应多久后自动退出(默认 30 秒)。注意连续对话是实验性功能,文档明确建议日常可关闭。
🎛️ 用起来之后的体验调优
三种唤起方式:
- "小爱同学,请 xxx"——直接让 AI 回答
- "小爱同学,你 xxx"——以角色对话方式提问
- "小爱同学,召唤 xxx"——进入 AI 模式,之后可直接连续提问
更换 TTS 音色:默认用小爱自带语音。想换音色,需自建或部署一个 TTS 服务,在.env填入TTS_BASE_URL,并把.migpt.js的speaker.tts改为custom。配置后可用"小爱同学,把声音换成 xxx"语音切换。完整步骤见 docs/tts.md。
响应速度微调:默认参数偏保守,可调整checkInterval(播放状态检测间隔,调小能降低回复间的停顿感)、checkTTSStatusAfter(下发朗读指令后多久开始检测状态);把onAIAsking、onAIReplied提示语置空也能省掉前后台的等待时间。
⚠️ 避坑指南
- 启动失败,提示"70016 登录验证失败":先核对
userId是否真的小米 ID、密码是否正确;若触发异地登录保护,需在跑 MiGPT 的同一网络下登录小米官网完成安全验证,等待约 1 小时后重试。 - 提示"找不到设备":
did与米家设备名称不一致,常见坑是多余空格、大小写、"响/箱"错别字,建议直接复制米家中的名称。 - 音箱无响应:确认设备正在收听(Pro 型号顶部指示灯常亮即有效);若正在放音乐先暂停;部分内部指令(如播放、讲笑话)不会进入对话历史,天然收不到。
- 回答慢:优先换响应更快的模型,再调上述速度参数;别一上来就改超时和间隔,改动过大反而容易乱。
更多问题可在 docs/faq.md 按图索骥。
📝 写在最后
MiGPT 用一套轻量服务解决了"小爱只会固定问答"的痛点,让大模型真正落到家用音箱上。需要说明的是,项目已停止维护,不再有新功能与更新,但现有核心功能仍可稳定运行;建议在家庭内网环境部署,并把.migpt.js、.env和prisma/app.db定期备份。遇到文档没覆盖的问题,可到项目 issues 页面搜索或提交反馈。
【免费下载链接】mi-gpt🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考