小爱同学接入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/

 

posted @ 2024-06-08 17:15  airoot  阅读(303)  评论(0编辑  收藏  举报