『瀚思彼岸』» 智能家居技术论坛

标题: 【ChatGPT】玩玩HA官方的OpenAI集成 [打印本页]

作者: louis_lee    时间: 2023-8-14 19:32
标题: 【ChatGPT】玩玩HA官方的OpenAI集成
本帖最后由 louis_lee 于 2023-8-15 16:40 编辑

最近在看HA文档的时候,发现HA已经有自带的OpenAI集成。它不仅能接入assist语言助手,还可以作画!可玩性很强,我们来试试~

升级HA!!


由于很多chatGPT新特性需要最新版的HA,尝试前别忘升级下版本,避免遇到神奇的问题。


chatGPT 集成接入


官方集成是基于chatgpt-3.5-turbo的,而且只支持api key接入,功能性、易用性差一点~ 另外,需要注意的是,api key接入需要科学环境!


不过接入方法还是比较简单的,直接在前端页面就可以完成,打开“配置”-》“设备与服务”-》“添加集成”,搜索OpenAI,输入api key后即可接入。


在接入完成后,我们先配置下最大token,直接点击“设备与服务”OpenAI conversation-》“选项”,把“最大token”改成1000(或者根据需要改)。


OpenAI conversation配置页面里,“提示词模板”这部分也可以改,这部分相当于问答背景,你可以按照自己的想法好,从而实现很多有趣玩法。比如官方文档上,把“提示词模板”换成“You are Super Mario from Mario Bros. Be funny.”这样就chatGPT就会模仿马里奥与你互动!!


[attach]50699[/attach]


或者,也可以参考@jsfer888的帖子,让chatGPT帮你下命令,让它执行HA的一些场景。比如这篇【Chatgpt】最牛逼的人工智能家庭助手来了,内附教程,根据自己的情况修改帖子里边的提示词,置换到你的OpenAI conversation配置即可。


关于“提示词模板”最棒的一点是支持template,这意味着你可以把很多设备、实体的名字、状态等告诉chatGPT,这样他可以更精确的帮你控制HA!


chatGPT接入assist语音助手


很方便,也是前端页面就可以完成!打开“配置”-“语音助手”- "添加”,随便起个名称,语言选中文,再把对话代理选上OpenAI conversation就可以啦!


[attach]50697[/attach]


我们打开lovelace页面“概览”,并点击右上角的assist(聊天图标),“助手”下拉选择“chatGPT”(或你自己刚起的名)。


这样就可以对话了。当然你可以随时修改“提示词模板”,比如“你是曹操,请用古文和我说话”(效果图如下)


[attach]50700[/attach]


看起来还不错!不过,这个回复不能以markdown形式展现,也不能流式回复(也就是看起来像AI在打字),前端UI也属实有点low了。我自己从网上找一个前后端结合的chatgpt项目,chenzhaoyu/chatgpt-web,这个项目UI不错,支持markdown、流式回复,而且功能更全,除提供前端界面外,还有些REST API,可玩性更高。


我已经把这个项目包装成了加载项,利用ingress特性,直接可以在侧边栏显示,非常美观好用。我整理一下就发出来。


[attach]50702[/attach]


(支持黑白两种主题,我的风格是夜间模式,所以我也同样配置了黑色)


能否接入小爱、siri呢?


完全没问题~!HA官方提供了一个conversation.process服务,这个服务是可响应的(如下图)。这个功能是202307版本加的,可以利用在自动化中将响应作为变量,传给自动化中后续流程。


[attach]50703[/attach]


以小爱同学为例。一个思路就是利用MIOT AUTO集成,提供相应的 Play Control conversation,也就是你对小爱说的话,调用conversation.process服务后,将结果TTS给小爱音箱。


当然细节可能需要花一些时间。首先有一个得设计一个唤醒词,比如“打开chatgpt”,检测到Play Control conversation sensor变为“打开chatgpt”后,先给小爱音箱静音,并把小爱的回复silent掉(Xiaomi Miot Auto: intelligent_speaker服务)。之后Play Control conversation sensor有变化,触发:silent掉原有回复-》conversation.process-》恢复小爱的声音-》TTS-》静音,直到Play Control conversation sensor变为“关闭chatgpt”或超时。


其实也挺麻烦的,如果你有老版小爱,拆机ssh后修改过的,就方便很多。


siri的话,利用快捷指令+REST API调用conversation.process,就可以了。


利用openAI作图


202308版本新增了一个openAI生成式绘画,只要接入openAI conversation集成就行。调用OpenAI Conversation: 生成图像 服务就可以,这个服务也是响应式的,返回生产图片的url。我觉得还挺有可玩性,我想到两个玩法。


写一个AI绘画生成页面


一个是自制一个HA的画图生成页面,自己画着玩。效果图如下(感觉不太实用,还得用一些HA版本新特性,介绍起来麻烦,就不介绍咋实现了。)


[attach]50704[/attach]


让openAI帮你换home assistant壁纸!


还有一个,就是每天让openAI根据关键字,生成一个图片,放在lovelace页面做背景图。而且关键字也可以每天变化,比如可以根据天气、地点、日期(工作日、非工作日、生日)要素等变化。


首先是生成关键字的实现。创建一个自动化,每天零点启动,调用OpenAI Conversation: 生成图像服务,提示词是可以template的。这样利用模板把一些实体状态(比如天气实体状态、地点实体状态、日历实体状态)拼合起来,再加一些你喜欢的要素,比如“二次元”、“油画”、“山水画”、“壁纸”、“背景图片”。


生成后将响应结果作为变量,调用shell_command服务,利用curl命令将其存储在/config/www下。


自动化代码如下:


alias: auto_save_chatgpt_image
description: ""
trigger:
  - platform: time
    at: "00:00:00"
condition: []
action:
  - service: openai_conversation.generate_image
    data:
      size: "512"
      config_entry: 959703e4c0f4ad492888bb74121ebba9  #此处是你的conversation agent id,先在图形界面选择chatGPT,然后再在yaml模式下编辑
      prompt: >-
        {{ states.weather.wo_de_jia.state }} {{
        state_attr("sensor.***_iphone_geocoded_location","Locality") }}
        二次元
    response_variable: image_response
  - service: shell_command.save_openai_image
    data:
      image_result: "{{ image_response.url }}"
mode: single

shell_command代码如下,需要放在configuration.yaml里:


shell_command:
  save_openai_image: "curl -o /config/www/images/chatgpt.png {{ image_result }}"

这样我们可以每天让openAI给我们生产一个背景图片,我们可以把图片配置到lovelace页面。打开概览“lovelace”页面,点击右上方三个点-》编辑仪表盘-》再点击右上方三点-》原始资源编辑器,找到我们想要添加的视图,比如原来是长这样的


  - title: test
  ........

我们在title后新起一行,加入backgroud,如下:


  - title: test
    background: center / cover no-repeat fixed url("{{/local/images/chatgpt.png  }}")

  ........

保存好后,每天都会换一个背景啦!如果你觉得生成的丑,你可以通过加不同的关键字,控制效果、风格。






作者: dscao    时间: 2023-8-14 22:03
作为gpt的网页版,next-web效果也很不错,有明亮和暗色主题,也支持作为api,还支持当官方api的代理使用。

除了Siri的效果不错外,TTS好像对于流式(及时响应)都没有好的处理方法呢,TTS好像都没有可用的队列播放方式。大部分都是后面的消息一推送,前面正在播放的就提前结束了。
作者: louis_lee    时间: 2023-8-14 22:19
本帖最后由 louis_lee 于 2023-8-15 09:15 编辑
dscao 发表于 2023-8-14 22:03
作为gpt的网页版,next-web效果也很不错,有明亮和暗色主题,也支持作为api,还支持当官方api的代理使用。
...

next-web也看过,我看star都差不多,就选一个清爽的来移植

TTS不好弄成响应式的,需要修改底层逻辑。
作者: lyf86822    时间: 2023-8-15 01:49
HA需要美区IP吗?能访问OPENAI?
作者: louis_lee    时间: 2023-8-15 08:49
本帖最后由 louis_lee 于 2023-8-15 15:39 编辑
lyf86822 发表于 2023-8-15 01:49
HA需要美区IP吗?能访问OPENAI?
看起来需要科学环境,获取API key需要国外IP
作者: Dlian    时间: 2023-8-15 10:53
刚想折腾这个yihong0618/xiaogpt chatgpt接入小爱音箱的项目,现在有这个就等这个的教程了,坐等
还有请问下接入小爱音箱教程大概什么时候出
作者: a_dongde    时间: 2023-8-15 13:18
GPT的充值续费是个很麻烦的事情········
作者: vanscer    时间: 2023-8-15 13:38
为啥我输入api key点提交后一直在转圈?
作者: louis_lee    时间: 2023-8-15 13:55
Dlian 发表于 2023-8-15 10:53
刚想折腾这个yihong0618/xiaogpt chatgpt接入小爱音箱的项目,现在有这个就等这个的教程了,坐等
还有请问 ...

我先把加载项搞好了,再发一下小爱的吧
作者: louis_lee    时间: 2023-8-15 14:23
a_dongde 发表于 2023-8-15 13:18
GPT的充值续费是个很麻烦的事情········

是的,得用国外信用卡。我在等讯飞的那个大模型开放,我看评估效果要比百度的好,接近ChatGPT
作者: louis_lee    时间: 2023-8-15 14:24
vanscer 发表于 2023-8-15 13:38
为啥我输入api key点提交后一直在转圈?

有日志嘛
作者: Dlian    时间: 2023-8-15 14:34
louis_lee 发表于 2023-8-15 14:23
是的,得用国外信用卡。我在等讯飞的那个大模型开放,我看评估效果要比百度的好,接近ChatGPT ...

虚拟卡太多坑了。。。
作者: vanscer    时间: 2023-8-15 15:15
louis_lee 发表于 2023-8-15 14:24
有日志嘛

没有哎,ha更新到最新版也一样,难不成要科学?
作者: Dlian    时间: 2023-8-15 15:18
louis_lee 发表于 2023-8-15 14:24
有日志嘛

我刚刚买了虚拟卡搞了api,但是一直转圈圈啊
作者: Dlian    时间: 2023-8-15 15:19
vanscer 发表于 2023-8-15 15:15
没有哎,ha更新到最新版也一样,难不成要科学?

你的解决的话求分享下
作者: louis_lee    时间: 2023-8-15 15:22
vanscer 发表于 2023-8-15 15:15
没有哎,ha更新到最新版也一样,难不成要科学?

科学下试试呢
作者: Dlian    时间: 2023-8-15 15:23
louis_lee 发表于 2023-8-15 15:22
科学下试试呢

请问下群晖虚拟机下的ha怎么科学
作者: vanscer    时间: 2023-8-15 15:24
vanscer 发表于 2023-8-15 15:15
没有哎,ha更新到最新版也一样,难不成要科学?

重新创建了一个api key,输入提交后仍然一直转圈,显示连接失败。
作者: louis_lee    时间: 2023-8-15 15:24
Dlian 发表于 2023-8-15 15:23
请问下群晖虚拟机下的ha怎么科学

有科学的软路由、旁路由嘛?
作者: Dlian    时间: 2023-8-15 15:31
[attach]50719[/attach]

作者: Dlian    时间: 2023-8-15 15:33
louis_lee 发表于 2023-8-15 15:24
有科学的软路由、旁路由嘛?

你的什么部署环境?不需要科学都可以吗
作者: louis_lee    时间: 2023-8-15 15:34
Dlian 发表于 2023-8-15 15:33
你的什么部署环境?不需要科学都可以吗

我自带科学环境
作者: Dlian    时间: 2023-8-15 15:42
louis_lee 发表于 2023-8-15 15:34
我自带科学环境

啊啊啊啊,还是等大佬完善后再折腾
作者: a_dongde    时间: 2023-8-15 20:37
louis_lee 发表于 2023-8-15 14:23
是的,得用国外信用卡。我在等讯飞的那个大模型开放,我看评估效果要比百度的好,接近ChatGPT ...

那就太棒了,如果能接入HA那就好了,不知道得猴年马月·······讯飞出成果的尿性感觉跟个国企一样
作者: gzroc    时间: 2023-8-15 20:51
之前就部署了,chenzhaoyu/chatgpt-web这个项目,虽然3.5,但用得还不错,使用了两个月左右,前段时间突然不行了,接着一直出现429错误,查了一下好像是说额度用完,但感觉不可能,不知楼主有没出现过。有没有解决办法?我的环境一直是韩国IP
作者: louis_lee    时间: 2023-8-15 20:58
a_dongde 发表于 2023-8-15 20:37
那就太棒了,如果能接入HA那就好了,不知道得猴年马月·······讯飞出成果的尿性感觉跟个国企一样 ...

我找到这篇文章啦,https://www.zhihu.com/question/594565714/answer/3050662715。还是有些期待的。

至于讯飞….哈哈没办法
作者: louis_lee    时间: 2023-8-15 21:15
gzroc 发表于 2023-8-15 20:51
之前就部署了,chenzhaoyu/chatgpt-web这个项目,虽然3.5,但用得还不错,使用了两个月左右,前段时间突然不 ...

从状态码看可能是被限流了,你用的是API key嘛,还是access token呢
作者: gzroc    时间: 2023-8-16 16:15
louis_lee 发表于 2023-8-15 21:15
从状态码看可能是被限流了,你用的是API key嘛,还是access token呢

api key的。
作者: Dlian    时间: 2023-8-16 16:33
gzroc 发表于 2023-8-16 16:15
api key的。

你的api有转圈圈吗
作者: kaka0992    时间: 2023-8-17 14:49
Dlian 发表于 2023-8-16 16:33
你的api有转圈圈吗

需要科学环境
作者: yunliang029    时间: 2023-8-17 18:04
用不了。要收钱
作者: yunliang029    时间: 2023-8-17 18:11
非得用国外信用卡?
作者: Dlian    时间: 2023-8-17 18:23
kaka0992 发表于 2023-8-17 14:49
需要科学环境

啊啊啊啊啊啊啊
作者: Dlian    时间: 2023-8-18 08:14
yunliang029 发表于 2023-8-17 18:11
非得用国外信用卡?

是的,毕竟你注册都不可以用中国的手机、ip
作者: gzroc    时间: 2023-8-18 09:57
Dlian 发表于 2023-8-16 16:33
你的api有转圈圈吗

转圈圈?你意思是在哪里看,如果是聊天页面,我打字一发送就直接报429了。
作者: gzroc    时间: 2023-8-18 10:03
kaka0992 发表于 2023-8-17 14:49
需要科学环境

我是搭在VPS上,所以自带
作者: louis_lee    时间: 2023-8-18 10:18
gzroc 发表于 2023-8-16 16:15
api key的。

使用postman等工具直接调用openAI的 API也是报429嘛?是否有更清晰的提示呢?
作者: Dlian    时间: 2023-8-20 09:23
gzroc 发表于 2023-8-18 09:57
转圈圈?你意思是在哪里看,如果是聊天页面,我打字一发送就直接报429了。 ...

我添加api的时候一直转圈圈,然后报错
作者: abcdsys    时间: 2023-8-21 17:29
为什么语音助手里面没有添加呢
作者: twem007    时间: 2023-8-24 14:21
这个不错
作者: luckyz    时间: 2023-8-27 18:46
louis_lee 发表于 2023-8-15 13:55
我先把加载项搞好了,再发一下小爱的吧

苦等加载项教程
作者: dragonlhp    时间: 2023-8-29 12:42
有资源的小伙伴可以通过接入自己的大模型来做离线gpt  cahtglm  rwkv 等大模型!api接口都差不多!
https://github.com/josStorer/RWKV-Runner 这个软件可以直接提供和chatgpt同样的api,只换请求域名就行!
作者: dragonlhp    时间: 2023-8-29 12:45
a_dongde 发表于 2023-8-15 13:18
GPT的充值续费是个很麻烦的事情········

搭建自己的离线gpt 有资源的小伙伴可以通过接入自己的大模型来做离线gpt  cahtglm  rwkv 等大模型!api接口都差不多!
https://github.com/josStorer/RWKV-Runner 这个软件可以直接提供和chatgpt同样的api,只换请求域名就行!
作者: jove    时间: 2023-9-9 00:59
求大神详细讲讲小爱和HomePod怎么集成
作者: mrlaogui    时间: 2023-9-9 17:31
接了GPT,体验和next web差不多,响应速度方面差一些。现在想要通过快捷指令来调用home assistant中的conversation.process服务,并且home assistant的响应结果可以返回显示,这样就可以实现之前用的SGPT指令的效果并且体验更好,可惜问了一下午GPT也没用
作者: vectorzhao    时间: 2023-10-10 00:31
chenzhaoyu/chatgpt-web
这个项目用了几个月了,赶紧出接入到ha的教程吧
作者: silas3082    时间: 2023-10-12 13:34
api key过期了就玩不了了吧?
作者: victorzhou    时间: 2023-10-19 14:48
学习了,谢谢分享
作者: KNX-xdd50    时间: 2023-11-6 13:34
已经成功添加api 添加到助手里面报错如下:    Sorry, I had a problem talking to OpenAI: Error communicating with OpenAI           -----大神这个怎么解决啊 谢谢
作者: a_dongde    时间: 2023-11-8 22:18
vectorzhao 发表于 2023-10-10 00:31
chenzhaoyu/chatgpt-web
这个项目用了几个月了,赶紧出接入到ha的教程吧

对呀,这个不知怎么接入进来
作者: star_liu    时间: 2023-11-9 16:48
不错不错
作者: Ashthunder    时间: 2024-2-6 17:04
墙都不扶,就服楼主!
作者: ngcgba    时间: 2024-5-4 18:01
啥时候发侧边集成模块 大神。 如果快的话我就不自己开发了。 坐等你的。
作者: 1uv_can    时间: 2024-5-16 00:03
mark,私人贾维斯?
作者: q83571096    时间: 2024-7-15 02:54
求更新对话ui加载项教程
作者: eurowilliam    时间: 2024-12-13 21:45
请问一个月正常使用api token消耗多少?




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5