xiaobot

April 9, 2023 · View on GitHub

Play ChatGPT with Xiaomi AI Speaker

fork from xiaogpt and convert to Go

支持的 AI 类型

  • ChatGPT API
  • NewBing WIP

准备

  1. ChatGPT Key
  2. 小爱音响
  3. 能正常联网的环境或 proxy

使用

  • 跑起来之后就可以问小爱同学问题了,“帮我"开头的问题,会发送一份给 ChatGPT 然后小爱同学用 tts 回答
  • 默认用目前 ubus, 如果你的设备不支持 ubus 可以使用配置 use_command 来使用 command 来 tts
  • 配置 mute_xiaoai 选项,可以快速停掉小爱的回答
  • 如果有能力可以自行替换唤醒词,也可以去掉唤醒词
  • 使用 gpt-3 的 api 那样可以更流畅的对话,速度快, 请 google 如何用 openai api 命令 --use_gpt3

config.toml

如果想通过单一配置文件启动也是可以的, 可以通过 -c 参数指定配置文件, config 文件必须是合法的 JSON 或者toml 格式 参数优先级

  • 环境变量 > config
xiaobot -c config.toml

配置项说明

参数说明默认值
hardware设备型号
account小爱账户
password小爱账户密码
openai_keyopenai的apikey
cookie小爱账户cookie (如果用上面密码登录可以不填)
mi_did设备did
use_command使用 MI command 与小爱交互false
mute_xiaoai快速停掉小爱自己的回答true
verbose是否打印详细日志false
bot使用的 bot 类型,目前支持gpt3,chatgptapi和newbingchatgptapi
enable_edge_tts使用Edge TTS WIPfalse
edge_tts_voiceEdge TTS 的嗓音 WIPzh-CN-XiaoxiaoNeural
prompt自定义prompt请用100字以内回答
keyword自定义请求词列表["请问"]
change_prompt_keyword更改提示词触发列表["更改提示词"]
start_conversation开始持续对话关键词开始持续对话
end_conversation结束持续对话关键词结束持续对话
stream使用流式响应,获得更快的响应 WIPfalse
proxy支持 HTTP 代理,传入 http proxy URL""
gpt_optionsOpenAI API 的参数字典{}
bing_cookie_pathNewBing使用的cookie路径,参考[这里]获取也可通过环境变量 COOKIE_FILE 设置
bing_cookiesNewBing使用的cookie字典,参考[这里]获取

注意

  1. 请开启小爱同学的蓝牙
  2. 如果要更改提示词和 PROMPT 在代码最上面自行更改
  3. 目前已知 LX04 和 L05B L05C 可能需要使用 use_command

TODO

  1. 支持流式响应
  2. 支持Newbing
  3. UI 优化

感谢