登录 立即注册

首页 > 绿虎论坛 > 建站 > 讨论/求助 (发帖)

标题: [建议] hu60ws 增加一个开放功能

作者: @Ta

时间: 2023-04-04发布,2023-04-04修改

点击: 14408

当前,hu60 的 websocket 服务器 和 robot 分开了。

我建议hu60ws协议上增加一个功能:大家运行的 robot 可以向 ws 注册为 api 暴露 AI 的聊天功能,让 hu60ws 更具有开放能力。源自 @老虎会游泳 的聊天(https://hu60.cn/q.php/addin.chat.hu60bot.html?floor=1966#1966任何基于api的机器人都可以提供自己的{"action":"chat"}了

我愿意实现下面的协议,让任何机器人都可以通过 ws 暴露自己的 AI 能力,让 hu60 的插件生态更自由。

具体协议如下:

ws 服务器给客户端提供的 api:

连接 ws 成功后发送如下动作,查询机器人 支持的 api

{"action": "lsapi"}
{"event": "lsapi", "data": {"-150": ["chat"],"-50": ["chat"]}}

随即选择一个机器人开始聊天:

{"action": "chat", "data": {"bot": -150, "data": "<问题>"}}
{"event": "chat", "data": {"bot": -150, "data": "<答案>"}}

机器人需要实现的协议:

可以发送如下消息表明自己愿意通过 ws 向其他 ws 客户端提供 AI chat api:

{"action": "regapi", "data":["chat"]}

注册 chat api 的机器人要实现在收到事件(A)时向服务器发送一个动作(B):

A:
{"event": "req", "data": {"uid": "", "action": "chat", "data": "<问题>"}}

B:
{"action": "resp": "data": {"uid":"", "action": "chat", "data": "<答案>"}}

[隐藏样式|查看源码]


『回复列表(12|隐藏机器人聊天)』

1.

@rkonfj,我想用这个功能提供机器人回答的点赞、点踩功能。用户在虎绿林做出反应后,在ChatGPT网页做出对应的反应。

图片.png(75.46 KB)

(/@Ta/2023-04-04 11:06//)

2.

@老虎会游泳,我没问题。用 lsapiregapi 来出一个协议,我来实现

(/@Ta/2023-04-04 11:14//)

3.

@老虎会游泳,这个功能有什么实际意义吗
掌缘生灭(白)

(/@Ta/2023-04-04 11:57//)

4.

@c,可以帮助改进机器人的回答。

(/@Ta/2023-04-04 11:58//)

5.

@老虎会游泳,机器人在 hu60 发的答案没有唯一ID吧,怎么传递反馈?

(/@Ta/2023-04-04 13:42//)

6.

@rkonfj,可以加

(/@Ta/2023-04-04 14:27//)

7.
(/@Ta/2023-04-04 14:28//)

8.

@老虎会游泳,服务端已经准备就绪 https://github.com/rkonfj/hu60bot/commit/c62aad300996db386e23dc55ccce41d989f8e6d8

拿你的这个反馈答案质量的功能举个例子(wordsId是 AI 答案的标识):

机器人需要实现的部分

-50的机器人实现了 feedback api,连接建立成功后先注册 api , 再监听 req event,发送 resp action

{"action": "regapi", "data":["feedback"]}


{"event": "req", "data": {"uid": "22780", "action": "feedback", "data": {"wordsId": "2ecf63f2b6e1", "score": 1}}}

{"action": "resp": "data": {"uid":"22780", "action": "feedback", "data": "ok"}}

hu60 网页插件需要实现的部分

在机器人上下线时查询各机器人支持的api并保存在内存中

{"action": "lsapi"}
{"event": "lsapi", "data": {"-50": ["feedback"]}}

针对-50机器人的答案根据用户反应,发送相应的动作到 ws 服务器:

// 赞
{"action": "feedback", "data": {"bot": -50, "data": {"wordsId": "2ecf63f2b6e1", "score": 1}}}
{"event": "feedback", "data": {"bot": -50, "data": "ok"}}

// 踩
{"action": "feedback", "data": {"bot": -50, "data": {"wordsId": "2ecf63f2b6e1", "score": -1}}}
{"event": "feedback", "data": {"bot": -50, "data": "ok"}}
(/@Ta/2023-04-04 16:37//)

9.

@rkonfj,这只是一个简单的原样JSON传递服务对吗?
我希望服务端对消息的数据结构不要有假设,因为传递的字段以后可能会变。

(/@Ta/2023-04-04 16:42//)

10.

@老虎会游泳,是的,data 字段是原样传递。action 注册后就不能更改,不过是存在内存的,服务器重启后就又可以变了

(/@Ta/2023-04-04 16:45//)

11.

@老虎会游泳-50-150 可以实现 chat 吗?

(/@Ta/2023-04-04 17:08//)

12.

@rkonfj,就和我之前说的一样,我不太想运营chat功能,因为用户悄悄使用GPT会让我觉得没有意思。

(/@Ta/2023-04-04 18:17//)

回复需要登录

11月27日 07:19 星期三

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1