MIGPT 五分钟上手:把 GPT 流式接入家里的小爱音箱
【免费下载链接】MIGPT基于API流式对话的低延迟版MIGPT项目地址: https://gitcode.com/gh_mirrors/mi/MIGPT
MIGPT 是一个把 ChatGPT 接进小米音箱的开源项目。它走的是 OpenAI 原生流式对话接口——第一句话生成完就直接送进音箱念出来,不用等完整回答。家里有小爱音箱、手里又有 OpenAI API Key 的话,这个项目很值得一试,作者实测从提问到开口的时间在 1.5 秒以内。
本地部署三步走
- 拉代码、装依赖:
git clone https://gitcode.com/gh_mirrors/mi/MIGPT cd MIGPT pip install -r requirements.txt打开
MIGPT.py,填四个空:MI_USER(小米账号)、MI_PASS(账号密码)、OPENAI_API_KEY、SOUND_TYPE(音箱型号)。型号代码直接看文件里的HARDWARE_COMMAND_DICT,比如小爱音箱 Pro 是LX06,照抄对应你那台音箱的字符串就行。运行:
python MIGPT.py跑起来之后,控制台打印“正在运行 MiGPT”就算就位了。注意这里:小米 token 首次登录后会缓存到用户目录下的文件里,下次启动不用再重新认证。终端会交替滚动打印小爱和 GPT 的回答,整条对话链路肉眼可见。
之后你可以全程用嘴控制:说“打开高级对话”开启 GPT,说“关闭高级对话”退回小爱,说“停止”随时掐断回答;问新问题也会自动打断上一句,不用等它念完。
核心模块:两个文件怎么把延迟打下来
V3.py — 流式翻译层
它干什么:调用 Chat Completions 接口并打开stream,回答一段一段收回来。输入是小爱转发的提问,主循环会自动拼上“100 字以内回答”的约束。产出是不断写入chatbot.sentence的流式文本,每攒一段新内容就持锁交给主线程取用。
MIGPT.py — 调度中枢
它干什么:轮询小米云端拉取最新对话记录,区分出新问题、“停止”和开关指令三类事件。关键在分句算法:前三句按“,。?!;”里的任何标点就能切,让第一句话尽快出口;之后只按句号类标点切,后面的句子更完整、听着更顺。产出是逐句的 TTS 调用;播报中途一旦侦听新问题,立刻暂停当前回答切换过去。
你可以这么理解:V3 是 OpenAI 那边的“翻译”,MIGPT.py 是家里的“指挥”,两个角色靠一把锁协作,谁也不用干等谁。
配置与调优:改哪几个参数会发生什么
| 配置项 | 写在哪 | 改它会怎样 |
|---|---|---|
SOUND_TYPE | MIGPT.py | 必须和音箱真实型号一致,否则启动时直接报找不到设备 |
PROMPT | MIGPT.py | 追加在每个问题末尾的固定后缀,改它可以控制回答长度和说话风格 |
SWITCH | MIGPT.py | 高级对话的初始开关;设为 False 时也能靠语音“打开高级对话”恢复 |
engine | V3.py | 使用的模型,默认gpt-3.5-turbo,max_tokens 上限跟着模型走 |
踩坑提示:最常见的两个坑
⚠️ Windows 上pip install tiktoken经常直接失败(需要 C++ 编译环境)。解法:去 PyPI 手动下对应平台的 .whl 包直接安装,文件名不要改。
⚠️ 因为走流式传输,LX04、L05B、L05C 这几个音箱型号暂时不支持,手里是这几款的话得另选方案。
核心流式对话源码
【免费下载链接】MIGPT基于API流式对话的低延迟版MIGPT项目地址: https://gitcode.com/gh_mirrors/mi/MIGPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考