xiaogpt可以将家里的小爱音箱接入ChatGPT、ChatGLM等大模型,从而让小爱音箱变得更加智能。

开始之前
此教程略微复杂,不适合新手小白,推荐有一定开发基础的IT从业人员尝试,开始之前,您需要准备:
- 小爱音箱并开启蓝牙功能
 - 魔法上网工具
 - ChatGPT或ChatGLM API SK
 - 一台长期运行的内网服务器,比如NAS设备
 - 一台内网Windows电脑
 - 熟悉基本的Python编程语言
 
获取小米音响DID
xiaogpt需要依赖小米音响DID,这样才能控制和通讯,我们要先用到miservice_fork这个工具,该工具使用Python开发,因此您的电脑需要先安装Python 3,xiaoz是在自己Windows电脑上操作(任意内网电脑设备均可),至于如何安装Python 3建议通过网络搜索。
# 安装miservice_fork
pip install miservice_fork
# 设置小米用户名
set MI_USER=xxxx
# 设置小米账号的密码
set MI_PASS=xxx
# 得到DID
micli list
结果如下图所示,找到小爱音箱的DID号码,并记录下来。

Docker安装xiaogpt
在安装之前,我们需要先创建xiaogpt配置文件config.json,xiaoz使用的配置文件如下:
{
        "openai_key":"sk-xxx",
    "api_base":"https://xxx.com/v1",
        "hardware":"S12A",
        "mute_xiaoai": true,
        "account": "xxx",
        "password":"xxx.",
        "mi_did":"xxx",
        "bot": "chatgptapi",
    "tts": "mi",
        "prompt": "你的名字叫xxx,今年18岁,是一个人工智能助手,你的主人叫xiaoz,你的回答尽量简明扼要,回答总数不能超过150字。",
        "keyword": [
                "请"
        ],
        "stream": true
}
配置参数含义如下:
- openai_key:OpenAI提供的SK,由于国内网络无法直接访问OpenAI API,可尝试使用第三方的OpenAI API中转服务
 - api_base:由于xiaoz使用的第三方OpenAI API中专服务,所以这里的接口域名需要改成第三方的域名,末尾需要带上
v1 - hardware:在小爱音箱屁股上有型号,输入进来,如果在屁股上找不到或者型号不对,可以用 micli mina 找到型号
 - mute_xiaoai:启用中断服务,就是不让小爱自身的回答说完,然后让ChatGPT去接管,不启用的话每次都要等小爱先回答完毕
 - account:小米账户的用户名
 - password:小米账户的密码
 - mi_did:上面得到的DID
 - bot:使用哪个API接口
 - tts:默认
mi就是小爱原生音色回答,也可以使用Edge TTS,但是xiaoz测试Edge TTS非常不稳定 - prompt:提示词,可以自己修改
 - keyword:触发的关键词
 - stream:开启后效率更好
 
关于hardware的获取
xiaoz使用的小米音箱一代,底部显示的是MDZ-25-DA,这个型号xiaogpt是识别不了的。

您可能需要修改为S12A/S12/L07A,总之挨个修改尝试一下。
然后继续使用Docker Compose进行安装,推荐安装到NAS上,xiaoz的完整的docker-compose.yaml内容如下:
version: '3.8'
services:
 xiaogpt:
   image: yihong0618/xiaogpt
   volumes:
     - ./config:/config
   ports:
     - "9527:9527"
   restart: always
   command: --config=/config/config.json
   container_name: xiaogpt
./config自己改成您配置文件的目录,比如您的配置文件位于./config/config.json,那么就填写./config,然后输入docker-compose up -d进行启动。
如果一切顺利,尝试唤醒小爱同学后,加上请字就可以触发ChatGPT,如上面的视频所示。
接入ChatGLM
如果您无法解OpenAI访问问题,并且也没找到合适的OpenAI中转服务,可以尝试接入国内大模型ChatGLM:https://open.bigmodel.cn/,在智谱AI后台获取SK后填写到配置文件中,使用ChatGLM的配置参考如下:
{
        "glm_key":"xxx",
        "hardware":"S12A",
        "mute_xiaoai": true,
        "account": "xxx",
        "password":"xxx.",
        "mi_did":"xxx",
        "bot": "glm",
        "tts": "mi",
        "use_glm": true,
        "prompt": "回答不能超过200字",
        "keyword": [
                "请"
         ],
         "stream": true
}
错误排查
如果触发小爱同学后,加上“请”字没效果,可使用docker logs xiaogpt查看容器日志,如果出现Exception: we have no hardware: S12A please check这样的错误,可能并不是hardware写错了,也可能是其他配置参数错误,总之按个参数都检查下。
实际体验
目前来说通过xiaogpt将小爱音箱接入ChatGPT并不算很完美,但却扩展了小爱音箱的玩法,让小爱音箱变得更加有趣和智能,有条件的朋友还是值得一试。
xiaoz实际体验后发现存在以下问题:
- 每次对话,小爱会先抢答部分,然后再由ChatGPT接管
 - 如果启用Edge TTS,会非常不稳定,经常无法输出音频或或者响应慢的情况,建议默认用小爱内置语音
 - 连续对话存在BUG,可能导致无法完全退出连续对话
 
总结
在使用xiaogpt将小爱音箱接入ChatGPT过程中,注意以下问题:
- 小爱音箱需要开启蓝牙
 - 安装
miservice_fork获取正确的DID号码 - 通过查看音箱底部获取hardware编号,如果是一代设备,可尝试填写:
S12A/S12/L07A - 国内网络无法正确访问OpenAI API,可以考虑第三方OpenAI中转服务,或者接入ChatGLM
 
xiaogpt项目地址:https://github.com/yihong0618/xiaogpt ,感谢作者的贡献。
未经允许不得转载:91天空 科技 生活 快乐 » 将小爱音箱接入ChatGPT
91天空 科技 生活 快乐
叛乱:沙漠风暴开服攻略 windows+linux
Windows 11 微软 Recall 召回功能有重大安全隐患!如何检测并禁用?
让老照片动起来!通过 AI 一键搞定,照片生成动态视频
Flux.1 生成美图、美女的提示词
本地部署 Flux.1 最强文生图大模型!Comfyui 一键安装【Lora 真人模型】轻松生成真实质感的美图!