Package: xiaoaiai
xiaogpthttps://user-images.githubusercontent.com/15976103/226803357-72f87a41-a15b-409e-94f5-e2d262eecd53.mp4Play ChatGPT with Xiaomi AI Speaker支持的 AI 类型GPT3ChatGPTNew Bing一点原理不用 root 使用小爱同学和 ChatGPT 交互折腾记准备ChatGPT id小爱音响能正常联网的环境或 proxypython3.8+使用pip install -U --force-reinstall xiaogpt参考我 fork 的MiService项目 README 并在本地 terminal 跑micli list拿到你音响的 DID 成功别忘了设置 export MI_DID=xxx这个 MI_DID 用runxiaogpt --hardware ${your_hardware} --use_chatgpt_apihardware 你看小爱屁股上有型号，输入进来，如果在屁股上找不到或者型号不对，可以用micli mina找到型号跑起来之后就可以问小爱同学问题了，“帮我"开头的问题，会发送一份给 ChatGPT 然后小爱同学用 tts 回答如果上面不可用，可以尝试用手机抓包，https://userprofile.mina.mi.com/device_profile/v2/conversation找到 cookie 利用--cookie '${cookie}'cookie 别忘了用单引号包裹默认用目前 ubus, 如果你的设备不支持 ubus 可以使用--use_command来使用 command 来 tts使用--mute_xiaoai选项，可以快速停掉小爱的回答使用--account ${account} --password ${password}如果有能力可以自行替换唤醒词，也可以去掉唤醒词使用--use_chatgpt_api的 api 那样可以更流畅的对话，速度特别快，达到了对话的体验,openai api, 命令--use_chatgpt_api使用 gpt-3 的 api 那样可以更流畅的对话，速度快, 请 google 如何用openai api命令 --use_gpt3如果你遇到了墙需要用 Cloudflare Workers 替换 api_base 请使用--api_base ${url}来替换。请注意，此处你输入的api应该是'https://xxxx/v1'的字样，域名需要用引号包裹可以跟小爱说开始持续对话自动进入持续对话状态，结束持续对话结束持续对话状态。可以使用--enable_edge_tts来获取更好的 tts 能力e.g.exportOPENAI_API_KEY=${your_api_key}xiaogpt--hardwareLX06--use_chatgpt_api# orxiaogpt--hardwareLX06--cookie${cookie}--use_chatgpt_api# 如果你想直接输入账号密码xiaogpt--hardwareLX06--account${your_xiaomi_account}--password${your_password}--use_chatgpt_api# 如果你想 mute 小米的回答xiaogpt--hardwareLX06--mute_xiaoai--use_chatgpt_api# 使用流式响应，获得更快的响应xiaogpt--hardwareLX06--mute_xiaoai--stream# 如果你想使用 gpt3 aiexportOPENAI_API_KEY=${your_api_key}xiaogpt--hardwareLX06--mute_xiaoai--use_gpt3# 如果你想用 edge-ttsxiaogpt--hardwareLX06--cookie${cookie}--use_chatgpt_api--enable_edge_tts使用 git clone 运行exportOPENAI_API_KEY=${your_api_key}python3loznxiaoai.py--hardwareLX06# orpython3loznxiaoai.py--hardwareLX06--cookie${cookie}# 如果你想直接输入账号密码python3loznxiaoai.py--hardwareLX06--account${your_xiaomi_account}--password${your_password}--use_chatgpt_api# 如果你想 mute 小米的回答python3loznxiaoai.py--hardwareLX06--mute_xiaoai# 使用流式响应，获得更快的响应python3loznxiaoai.py--hardwareLX06--mute_xiaoai--stream# 如果你想使用 gpt3 aiexportOPENAI_API_KEY=${your_api_key}python3loznxiaoai.py--hardwareLX06--mute_xiaoai--use_gpt3config.json如果想通过单一配置文件启动也是可以的, 可以通过--config参数指定配置文件, config 文件必须是合法的 JSON 格式
参数优先级cli args > default > configpython3loznxiaoai.py--configxiao_config.json# orxiaogpt--configxiao_config.json或者cpxiao_config.json.examplexiao_config.json
python3loznxiaoai.py若要指定 OpenAI 的模型参数，如 model, temporature, top_p, 请在config.json中指定：{..."gpt_options":{"temperature":0.9,"top_p":0.9,}}具体参数作用请参考Open AI API 文档。配置项说明参数说明默认值hardware设备型号account小爱账户password小爱账户密码openai_keyopenai的apikeycookie小爱账户cookie （如果用上面密码登录可以不填）mi_did设备diduse_command使用 MI command 与小爱交互falsemute_xiaoai快速停掉小爱自己的回答trueverbose是否打印详细日志falsebot使用的 bot 类型，目前支持gpt3,chatgptapi和newbingchatgptapienable_edge_tts使用Edge TTSfalseedge_tts_voiceEdge TTS 的嗓音zh-CN-XiaoxiaoNeuralprompt自定义prompt请用100字以内回答keyword自定义请求词列表["请问"]change_prompt_keyword更改提示词触发列表["更改提示词"]start_conversation开始持续对话关键词开始持续对话end_conversation结束持续对话关键词结束持续对话stream使用流式响应，获得更快的响应falseproxy支持 HTTP 代理，传入 http proxy URL""gpt_optionsOpenAI API 的参数字典{}bing_cookie_pathNewBing使用的cookie路径，参考这里获取也可通过环境变量COOKIE_FILE设置bing_cookiesNewBing使用的cookie字典，参考这里获取注意请开启小爱同学的蓝牙如果要更改提示词和 PROMPT 在代码最上面自行更改目前已知 LX04 和 L05B L05C 可能需要使用--use_commandQA用破解么？不用你做这玩意也没用啊？确实。。。但是挺好玩的，有用对你来说没用，对我们来说不一定呀想把它变得更好？PR Issue always welcome.还有问题？提 Issuse 哈哈视频教程https://www.youtube.com/watch?v=K4YA8YwzOOADocker常规用法X86/ARM Docker Image:yihong0618/xiaogptdockerrun-eOPENAI_API_KEY=<your-openapi-key>yihong0618/xiaogpt<命令行参数>如dockerrun-eOPENAI_API_KEY=<your-openapi-key>yihong0618/xiaogpt--account=<your-xiaomi-account>--password=<your-xiaomi-password>--hardware=<your-xiaomi-hardware>--use_chatgpt_api使用配置文件xiaogpt的配置文件可通过指定volume /config，以及指定参数--config来处理，如dockerrun-v<your-config-dir>:/configyihong0618/xiaogpt--config=/config/config.json本地编译Docker Imagedockerbuild-txiaogpt.如果需要在Apple M1/M2上编译x86dockerbuildxbuild--platform=linux/amd64-txiaogpt-x86.Add edge-ttsedge-tts提供了类似微软tts的能力https://github.com/rany2/edge-ttsUsage你可以通过参数enable_edge_tts, 来启用它{"enable_edge_tts":true,"edge_tts_voice":"zh-CN-XiaoxiaoNeural"}查看更多语言支持, 从中选择一个edge-tts--list-voices在容器中使用edge-tts由于 Edge TTS 启动了一个本地的 HTTP 服务，所以需要将容器的端口映射到宿主机上，并且指定本地机器的 hostname:dockerrun-v<your-config-dir>:/configyihong0618/xiaogpt-p9527:9527-eXIAOGPT_HOSTNAME=<yourip>--config=/config/config.json注意端口必须映射为与容器内一致，XIAOGPT_HOSTNAME 需要设置为宿主机的 IP 地址，否则小爱无法正常播放语音。推荐的 forkMIGPT-> 基于 API 流式对话的低延迟版MIGPTXiaoBot-> Go语言版本的Fork, 带支持不同平台的UI感谢xiaomiPDM@Yonsm的MiService@pjq给了这个项目非常多的帮助@frostming重构了一些代码，支持了持续会话功能赞赏谢谢就够了编译发布pip install --upgrade build twine
python -m build
twine upload dist/*参考https://blog.csdn.net/u010214511/article/details/126909523