mirror of
https://github.com/fumiama/go-onebot-agent.git
synced 2026-06-05 10:10:24 +08:00
feat: add new emojis & terminus
This commit is contained in:
59
README.md
59
README.md
@@ -379,17 +379,66 @@
|
||||
|346|你真棒棒|
|
||||
|347|大展宏兔|
|
||||
|348|福萝卜|
|
||||
|9728|☀ 晴天|
|
||||
|9749|☕ 咖啡|
|
||||
|9786|☺ 可爱|
|
||||
|10024|✨ 闪光|
|
||||
|10060|❌ 错误|
|
||||
|10068|❔ 问号|
|
||||
|127801|🌹 玫瑰|
|
||||
|127817|🍉 西瓜|
|
||||
|127822|🍎 苹果|
|
||||
|127827|🍓 草莓|
|
||||
|127836|🍜 拉面|
|
||||
|127838|🍞 面包|
|
||||
|127847|🍧 刨冰|
|
||||
|127866|🍺 啤酒|
|
||||
|127867|🍻 干杯|
|
||||
|127881|🎉 庆祝|
|
||||
|128027|🐛 虫|
|
||||
|128046|🐮 牛|
|
||||
|128051|🐳 鲸鱼|
|
||||
|128053|🐵 猴|
|
||||
|128074|👊 拳头|
|
||||
|128076|👌 好的|
|
||||
|128077|👍 厉害|
|
||||
|128079|👏 鼓掌|
|
||||
|128089|👙 内衣|
|
||||
|128102|👦 男孩|
|
||||
|128104|👨 爸爸|
|
||||
|128147|💓 爱心|
|
||||
|128157|💝 礼物|
|
||||
|128164|💤 睡觉|
|
||||
|128166|💦 水|
|
||||
|128168|💨 吹气|
|
||||
|128170|💪 肌肉|
|
||||
|128235|📫 邮箱|
|
||||
|128293|🔥 火|
|
||||
|128513|😁 呲牙|
|
||||
|128514|😂 激动|
|
||||
|128516|😄 高兴|
|
||||
|128522|😊 嘿嘿|
|
||||
|128524|😌 羞涩|
|
||||
|128527|😏 哼哼|
|
||||
|128530|😒 不屑|
|
||||
|128531|😓 汗|
|
||||
|128532|😔 失落|
|
||||
|128536|😘 飞吻|
|
||||
|128538|😚 亲亲|
|
||||
|128540|😜 淘气|
|
||||
|128541|😝 吐舌|
|
||||
|128557|😭 大哭|
|
||||
|128560|😰 紧张|
|
||||
|128563|😳 瞪眼|
|
||||
|
||||
### 输出
|
||||
> 严格遵循文档,禁止输出除下述格式外的任何解释性文本!
|
||||
|
||||
#### 1. 调用 API
|
||||
格式如下,不要用任何代码块包裹,一次只能发送零个(不发送)或一个:
|
||||
格式如下,不要用任何代码块包裹,一次能且只能发送一个:
|
||||
|
||||
{"action":"api_name","params":{"a":123,"b":"456"}}
|
||||
|
||||
如果选择不发送,输出一个全角空格 (非JSON),代表结束本次任务。
|
||||
|
||||
调用完成后,你可能会收到 API 的响应结果,格式如下:
|
||||
|
||||
{"status":"failed","data":null,"message":1404,"wording":"fail reason"}
|
||||
@@ -400,10 +449,10 @@
|
||||
|
||||
#### 2. 分析调用结果
|
||||
|
||||
- 如果任务成功完成,输出全角空格 代表结束本次任务;
|
||||
- 如果任务成功完成,调用`end_action`结束本次任务;
|
||||
- 如果还需要进一步操作,首先发消息将要执行的任务解释给用户,
|
||||
- 如果任务不是敏感或危险操作,直接执行;
|
||||
- 否则,输出全角空格 暂停本次任务,等待用户确认。
|
||||
- 否则,调用`end_action`暂停本次任务,等待用户确认。
|
||||
|
||||
注意事项:
|
||||
- 如果你只是在回应用户而不做高级调用,发送一条消息成功后立即结束本次任务。
|
||||
|
||||
14
actions.yaml
14
actions.yaml
@@ -1,4 +1,8 @@
|
||||
actions:
|
||||
end_action:
|
||||
desc: 结束或暂停任务
|
||||
params: "-"
|
||||
data: "-"
|
||||
send_private_msg:
|
||||
desc: 发送私聊消息
|
||||
params: user_id 对方QQ号;message 要发送的内容 (json.RawMessage)
|
||||
@@ -15,6 +19,10 @@ actions:
|
||||
desc: 发送好友赞
|
||||
params: user_id 对方QQ号;times 赞的次数,每个好友每天最多10次 (number)
|
||||
data: "-"
|
||||
set_msg_emoji_like:
|
||||
desc: 发送表情回应
|
||||
params: message_id 消息ID;emoji_id 表情 ID
|
||||
data: "-"
|
||||
set_group_kick:
|
||||
desc: 群组踢人
|
||||
params: group_id 群号;user_id 要踢的QQ号;reject_add_request 拒绝此人的加群请求 (boolean)
|
||||
@@ -89,10 +97,12 @@ actions:
|
||||
data: "[]User"
|
||||
config:
|
||||
owner:
|
||||
- end_action
|
||||
- send_private_msg
|
||||
- send_group_msg
|
||||
- delete_msg
|
||||
- send_like
|
||||
- set_msg_emoji_like
|
||||
- set_group_kick
|
||||
- set_group_ban
|
||||
- set_group_whole_ban
|
||||
@@ -112,9 +122,11 @@ config:
|
||||
- get_group_member_info
|
||||
- get_group_member_list
|
||||
admin: # need to check if gid is the same as admin's gid
|
||||
- end_action
|
||||
- send_group_msg
|
||||
- delete_msg
|
||||
- send_like
|
||||
- set_msg_emoji_like
|
||||
- set_group_kick
|
||||
- set_group_ban
|
||||
- set_group_whole_ban
|
||||
@@ -128,8 +140,10 @@ config:
|
||||
- get_group_member_info
|
||||
- get_group_member_list
|
||||
user: # need to check if gid is the same as user's gid
|
||||
- end_action
|
||||
- send_group_msg
|
||||
- send_like
|
||||
- set_msg_emoji_like
|
||||
- get_msg
|
||||
- get_forward_msg
|
||||
- get_stranger_info
|
||||
|
||||
11
agent.go
11
agent.go
@@ -14,6 +14,10 @@ import (
|
||||
"github.com/wdvxdr1123/ZeroBot/message"
|
||||
)
|
||||
|
||||
const (
|
||||
EOA = "end_action" // EOA is a dummy action that is used to terminate request
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrPermissionDenied LLM 调用了不该调用的 action
|
||||
ErrPermissionDenied = errors.New("permission denied")
|
||||
@@ -55,7 +59,7 @@ func (ag *Agent) AddEvent(grp int64, ev *Event) {
|
||||
ag.log.Add(grp, ev, false)
|
||||
}
|
||||
|
||||
// AddRequest 一般无需主动调用, 由 GetAction 自动添加
|
||||
// AddRequest 添加 API 请求, 一般无需主动调用, 由 GetAction 自动添加
|
||||
func (ag *Agent) AddRequest(grp int64, req *zero.APIRequest) {
|
||||
ag.log.Add(grp, req, true)
|
||||
}
|
||||
@@ -65,7 +69,7 @@ func (ag *Agent) AddResponse(grp int64, resp *APIResponse) {
|
||||
ag.log.Add(grp, resp, false)
|
||||
}
|
||||
|
||||
// AddTerminus 添加会话终止符
|
||||
// AddTerminus 添加会话终止符, 一般无需主动调用, 由 GetAction 自动添加
|
||||
func (ag *Agent) AddTerminus(grp int64) {
|
||||
ag.log.Add(grp, Terminus{}, true)
|
||||
}
|
||||
@@ -158,6 +162,9 @@ func (ag *Agent) GetAction(api deepinfra.API, p model.Protocol, grp int64, role
|
||||
continue
|
||||
}
|
||||
switch {
|
||||
case r.Action == EOA:
|
||||
ag.AddTerminus(grp)
|
||||
return
|
||||
case !ag.perm.allow(role, r.Action):
|
||||
err = errors.Wrap(ErrPermissionDenied, r.Action)
|
||||
return
|
||||
|
||||
@@ -2,12 +2,14 @@ package goba
|
||||
|
||||
import "testing"
|
||||
|
||||
const fulltab = `|功能|action|params|data|
|
||||
const fulltab = ` |功能|action|params|data|
|
||||
|---|---|---|---|
|
||||
|结束或暂停任务|end_action|-|-|
|
||||
|发送私聊消息|send_private_msg|user_id 对方QQ号;message 要发送的内容 (json.RawMessage)|message_id 消息ID (number)|
|
||||
|发送群消息|send_group_msg|group_id 群号;message 要发送的内容 (json.RawMessage)|message_id 消息ID (number)|
|
||||
|撤回消息|delete_msg|message_id 消息ID|-|
|
||||
|发送好友赞|send_like|user_id 对方QQ号;times 赞的次数,每个好友每天最多10次 (number)|-|
|
||||
|发送表情回应|set_msg_emoji_like|message_id 消息ID;emoji_id 表情 ID|-|
|
||||
|群组踢人|set_group_kick|group_id 群号;user_id 要踢的QQ号;reject_add_request 拒绝此人的加群请求 (boolean)|-|
|
||||
|群组单人禁言|set_group_ban|group_id 群号;user_id 要禁言的QQ号;duration 禁言时长(秒),0表示取消禁言|-|
|
||||
|群组全员禁言|set_group_whole_ban|group_id 群号;enable 是否禁言 (boolean)|-|
|
||||
|
||||
Reference in New Issue
Block a user