【探讨】让回家播报温馨一点
本帖最后由 bestsort 于 2024-4-12 10:35 编辑实现的功能为: 当第一次开门回家 & 开门后在检测到人移动的时候, 请求大模型生成一段问候语并播报
prompt如下
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "请扮演一个有温度的电子家庭管家(参考钢铁侠里的Javis)。现在是{{myymd}} {{mytimes}},当我回来时你需要使用中文向我(你应该将我称呼为主人)问候;问候语尽可能保持在30个字以内. 可根据日期酌情调整问候语,但是不用太过强调时间"
},
{
"role": "user",
"content": "我回来了"
}
]
}
如下图所示,里面用到的节点有
循环节点
判断时间戳(用于区分首次进入)
小爱tts(播报)
GPT(这里其实是用的通义千问, 现在免费。我用 one api 做了个本地代理,将gpt-3.5-turbo映射到qwen-max了)
Frigate(检查人存在)设备有:
1. 小米门窗传感器(通过esp32蓝牙代理连到HA)
2. 小爱音箱pro
3. Tplink摄像头(rtsp到frigate做有人&移动检测)
流程我丢在下面了,但是需要的节点可能有点多(sqlite、looptimer、timestamp, 还要自己搭个大模型的GPT代理) 仅供参考。
有想法的可以进一步讨论~
https://www.hasstatic.com/image/hrline/line3.png
让gpt重新帮我写一了下prompt,效果好了很多~
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "根据我发送的时段(傍晚、深夜等)、可能的情绪状态(疲倦、期待等)、季节、节日和节气提供一个温馨且亲切的问候语(回复请使用中文,回复字数严格控制在30字以内且不包含任何我提供的日期信息),以欢迎主人回家。请注意你无法执行任何实际的物理行为如准备饭菜、热茶、打开灯光等操作, 请确保问候语不存在以上内容;而是专注于营造一个舒适、鼓励的氛围。当我发送'我回来了,现在是xxxxx'后你应该直接回复我问候语"
},
{
"role": "user",
"content": "我回来了, 现在是{{myymd}} {{mytimes}}"
}
]
}
var name = "这里设置主人的名字";
var now = new Date();
var hour = now.getHours();
var month = now.getMonth();
// Add more logic to determine the period of the day and season
var period = hour < 12 ? '早晨' : hour < 18 ? '下午' : '晚上';
var season = month < 3 ? '冬天' : month < 6 ? '春天' : month < 9 ? '夏天' : '秋天';
msg.payload = {
model: "gpt-3.5-turbo",
messages: [{ "role": "user", "content": "现在的季节是:" + season + ",时间是:" + period + ",根据我回家的时段(傍晚、深夜等)、可能的情绪状态(疲倦、期待等)、季节、节日和节气提供一个温馨且亲切的问候语(回复请使用中文,回复字数严格控制在40字符以内,内容不包含任何我提供的日期信息),以欢迎主人回家。请注意你无法执行任何实际的物理行为如准备饭菜、热茶、打开灯光等操作, 请确保问候语不存在以上内容;而是专注于营造一个舒适、鼓励的氛围。开头内容固定为:亲爱的主人," + name + ",欢迎您回家!" }],
temperature: 0.7
};
msg.headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer 这里输入免费申请的key'
};
return msg;
有没有可能直接调用这个免费的gpt_api就可以了,并不需要自己搭建,而且这个免费的我测试了10多天了,稳定的很
https://chatanywhere.apifox.cn/
https://github.com/chatanywhere/GPT_API_free one api 本身需要网络环境吗?比如要接入gpt-3.5-turbo 的话,然后你什么怎么通过这个平台将AI接入到HA的? 灯光调亮了么?晚餐能不能备妥?后面的空调能否控制呢? 隔壁的王叔叔 发表于 2024-4-12 08:31
灯光调亮了么?晚餐能不能备妥?后面的空调能否控制呢?
:funk: a22218279 发表于 2024-4-12 08:46
晚餐备妥这个忽略,灯光调亮和空调控制,这个是不是要通过截取回复来分析,并执行啊,要不然只一句话没啥意思啊 本帖最后由 a22218279 于 2024-4-12 09:15 编辑
隔壁的王叔叔 发表于 2024-4-12 08:48
晚餐备妥这个忽略,灯光调亮和空调控制,这个是不是要通过截取回复来分析,并执行啊,要不然只一句话没啥 ...
自己手写语义分析忽略的信息会很多。可以再用一次黑魔法:lol,给chatgpt指定相关设备对应的实体名,然后让他生成相应代码调用HA服务。:lolchatgpt没权限调用HA,就让他发消息给HA,HA获取并调用。
a_dongde 发表于 2024-4-12 08:23
one api 本身需要网络环境吗?比如要接入gpt-3.5-turbo 的话,然后你什么怎么通过这个平台将AI接入到HA的? ...
one api本身是个代理, 这里实际上是将调用到通义千问进行文本生成的。这里也没接入HA,直接通过了NodeRed的Http节点调用的One Api代理出来的接口 (当然怎么调用也是问的GPT。。。)
调用路径是
NodeRed->One Api -> 通义千问 隔壁的王叔叔 发表于 2024-4-12 08:31
灯光调亮了么?晚餐能不能备妥?后面的空调能否控制呢?
这个就是接下来想做的事情但是还没思路。至于晚餐备妥句话纯粹是prompt的设计问题;P a22218279 发表于 2024-4-12 09:13
自己手写语义分析忽略的信息会很多。可以再用一次黑魔法,给chatgpt指定相关设备对应的实体名,然后让 ...
其实都丢到HA里了, 可以通过在prompt里加入然后截取回复的文本进行实现,但是我现在还没有思路从什么方向怎么去进一步优化。 因为这里的场景我家里智能设备不够暂时还用不到 隔壁的王叔叔 发表于 2024-4-12 08:48
晚餐备妥这个忽略,灯光调亮和空调控制,这个是不是要通过截取回复来分析,并执行啊,要不然只一句话没啥 ...
其实我最初的想法只是每天回家来一句不一样的问候,还没想到后续的。 回复的内容是大模型生成的,没有认真调试prompt,回复内容仅供参考~
页:
[1]
2