通过修改rokid音箱的核心应用rkengine,使之在原有功能基础上实现接入大模型,接入HA,听歌和查天气。
- 申请智谱key,https://docs.bigmodel.cn/cn/guide/start/quick-start
- 申请和风天气key,https://dev.qweather.com/docs/start/
- 申请HA key,https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token和https://www.home-assistant.io/docs/authentication/
- 部署xiaomusic,
docker push danmuuu/xiaomusic:arm64-latest,创建容器的参数参考原仓库https://github.com/hanxi/xiaomusic。
将上述配置添到配置文件对应的配置项中。四个模块需要哪个模块就配置,不需要就留空,互相之间不影响。
# Hook的app ids,程序内置了一些基础的app ids,所以这部分不用填,供后续功能拓展用
# 若琪技能的app id,如果有多个用逗号分割
# chat-app.ids=
# weather-app.ids=
# smarthome-app.ids=
# music-app.ids=
# 智谱服务需要的配置
# zhipu.token=
# zhipu.system.prompt=
# zhipu.model=glm-4.6
# 和风天气需要的配置
# qweather.url=
# qweather.token=
# homeassistant需要的配置
# ha.url=
# ha.token=
# xiaomusic需要的配置
# xiaomusic.url=-
下载adb并加入PATH环境变量。
-
下载仓库根目录下的
push_file_to_rokid.ps1脚本到本地并执行。
PS> .\push_file_to_rokid.ps1 -ConfigPath [配置文件路径] -ApkPath https://github.com/justtsuj/appengine/releases/latest/download/app-release.apk -Devices [若琪ip]:5555
执行上面的命令需要若琪和执行命令的电脑在同一局域网下。如果你使用usb线连接电脑和若琪时,可以不用指定设备(默认使用第一个设备)。
PS> .\push_file_to_rokid.ps1 -ConfigPath [配置文件路径] -ApkPath https://github.com/justtsuj/appengine/releases/latest/download/app-release.apk
基础能力使用rokid本身的stt,tts和意图识别
- 和大模型聊天使用智谱ai,默认使用glm-4.6,没有调用任何工具,没有开思考
- 查天气使用和风天气,可以查今天,明天,后天三天的天气
- 接入HA控制家里的设备,单纯把识别的语音指令交给HA的Conversion接口处理并接受响应。
- 听音乐使用xiaomusic,在原仓库基础上增加了searchmusicinfo和randommusic接口供rokid使用,可以实现播放指定歌曲和随机放一首歌曲。
目前只是基础版本,功能比较简陋,没有经过充分测试。如果你有好的意见和建议欢迎pr。