小爱同学接入ChatGPT
用到的工具:
1,Xiaogpt(感谢yihong0618):https://github.com/yihong0618/xiaogpt
2,MiService(感谢Yonsm&yihong0618):https://github.com/Yonsm/MiService or https://github.com/yihong0618/MiService
3,小爱音响:我这里用的是L05C,这个型号在设备底部铭牌上
4,一个安装了python3.8+,以及Pip的操作系统【用来跑MiService】:这里我用的是Ubuntu 22.04 LTS
5,Docker【用来运行yihong0618/xiaogpt】:我这里用的是Centos搭建的Docker环境
其中2、4只是一次性使用。
本教程为了科普,我会尽量做的每一步、每一条命令都完整说明。
第一步:操作系统环境准备【以下操作均在Ubuntu 22.04 LTS下进行】
先安装python环境
sudo apt install python3
sudo apt install python3-pip
替换一下pip源为清华大学站:
cd ~ mkdir .pip sudo vim ~/.pip/pip.conf
里面的内容改为: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ [install] trusted-host = pypi.tuna.tsinghua.edu.cn
更改默认python版本为python3,每次输入python3太麻烦了:
更改默认python版本为python3,每次输入python3太麻烦了: # 删掉原来软链接,如果没有直接新建 sudo rm /usr/bin/python sudo rm /usr/bin/pip # 新建软链接 sudo ln -s /usr/bin/python3 /usr/bin/python sudo ln -s /usr/bin/pip3 /usr/bin/pip 现在输入python就直接进入python3环境了
添加路径变量
export PATH=/home/ubuntu/.local/bin:$PATH
#上面ubuntu是当前用户名,根据实际情况替换
第二步:使用MiService拿到小爱音响的DID
# 安装miservice_fork pip install miservice_fork # 设置小米用户名 export MI_USER=xxxx # 设置小米账号的密码 export MI_PASS=xxx # 得到DID micli list
设置MI_DID
#把刚才拿到的did替换进去
export MI_DID=xxx
查询设备接口文档(非必须)
验证连接、控制是否正常
#查询音量属性 micli.py 2-1 #设置音量属性,比如调到60% micli.py 2=#60
第三步:在Docker中运行
1,在 Docker 目录下创建一个 xiaogpt 文件夹,然后在里面再创建一个 config 的子文件夹 (当然也可以用Docker卷的方式创建,个人喜好)
2,在该文件夹下创建 config.json
那这个config.json里面要写什么内容?我先把我的配置贴出来
{ "hardware": "你的设备型号,如L05C", "account": "小米账户", "password": "小米账户的密码", "openai_key": "你申请下来的API", "glm_key": "", "bard_token": "", "serpapi_api_key": "", "cookie": "", "mi_did": "你的小米音箱的did", "use_command": true, "mute_xiaoai": true, "verbose": false, "bot": "chatgptapi", "tts": "mi", "edge_tts_voice": "zh-CN-XiaoxiaoNeural", "prompt": "请用100字以内回答", "keyword": ["请"], "change_prompt_keyword": ["更改提示词"], "start_conversation": "继续刚才的问题", "end_conversation": "结束刚才的问题", "stream": false, "api_base": "https://free.gpt.ge/v1", "gpt_options": {"model": "gpt-3.5-turbo"} }
这里要补充说明一下上面配置的一些说明:
"api_base": "https://free.gpt.ge/v1" :这里的 https://free.gpt.ge 是ChatGPT的代理访问服务,后面要加v1,这是xiaogpt的配置要求
其他的参数要如何配置,请参考yihong0618的Github发布页。
再来说一说,"openai_key" 和 "api_base" 是怎么来的
"openai_key": 可以来自你自己的OpenAI ChatGPT,现在申请Key需要短信认证,这个花了我1美金找接码平台收短信,不过后面证明这钱白花了 -_-||| 因为通过API调用ChatGPT回答也是要收费的,虽然很低很低,但是充钱太麻烦了。
所以最终还是找了个免费是API,https://github.com/popjane/free_chatgpt_api
"api_base" :如果你用的是OpenAI,那么这行参数可以删除,但如果你向我一样用的是其他,那么就需要配置,记得在后面加 v1
这里有一点要说明 该项目API仅用于非商业性的学习、研究、科研测试等合法用途,不得用于任何违法违规用途,否则后果自负。
另外,无论是自己申请的OpenAI key 还是其他途径获取的,请妥善保管,不要泄漏到公共场合或共享给他人使用
好了,配置文件这块说完了,那么就开始在Docker中运行吧
docker run --name XiaoMiGPT -v /home/root/dockerData/xiaogpt/config:/config yihong0618/xiaogpt --config=/config/config.json
这里 /home/root/dockerData/xiaogpt/config 是你上面创建的目录的路径,请根据自己情况修改!
通过docker ps,确认是否存在名为 XiaoMiGPT 的容器,Done.
如果遇到报错,请先访问yihong0618的issue
运行演示,视频我就不贴了:
参考文章:
https://mingshantou.com/chatgpt-api-is-it-free/
https://mingshantou.com/chatgpt-api-usage/
https://blog.xiaoz.org/archives/20462
https://cloud.tencent.com/developer/article/2266265
https://blog.csdn.net/u010857736/article/details/135418656
https://cyr580.github.io/2024/04/08/2024-04-08-xiaogpt/#%E4%BD%BF%E7%94%A8-Yonsm-MiService-%E9%A1%B9%E7%9B%AE%EF%BC%9A
https://github.com/idootop/mi-gpt
https://blog.yuanpei.me/posts/the-xiaoai-speaker-integrates-an-incomplete-tutorial-on-chatgpt/
https://home.miot-spec.com/