feat(gpt): 新增临时消息发送功能并优化相关命令
- 在 AbsGPTManager 中添加 sendTmpMessage 方法,用于发送临时消息 - 更新 BaiduGPTManager 实现 sendTmpMessage 方法 - 修改 GetSeTu 和 QQBean模型,集成临时消息发送功能 - 更新 BaiduGPT 示例代码,演示临时消息发送用法 - 将 QQBot 版本号更新到 v1.7.17
This commit is contained in:
parent
925a7af045
commit
204907d738
@ -107,6 +107,7 @@ public class MessageEvent {
|
||||
event.setSource(sender);
|
||||
sender.setUserId(json.getJSONObject("sender").getLong("user_id"));
|
||||
sender.setNickname(json.getJSONObject("sender").getString("nickname"));
|
||||
sender.setRole(json.getJSONObject("sender").getString("role"));
|
||||
sender.setCard(json.getJSONObject("sender").getString("card"));
|
||||
event.setMessageId(json.getInteger("message_id"));
|
||||
event.setRealId(json.getInteger("real_id"));
|
||||
|
@ -5,10 +5,14 @@ import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SourceFrom {
|
||||
public static final String USER_ROLE_OWNER="owner";//群主
|
||||
public static final String USER_ROLE_ADMIN="admin";//管理
|
||||
public static final String USER_ROLE_MEMBER="member";//成员
|
||||
@JSONField(name = "user_id")
|
||||
private long userId;
|
||||
private String nickname;
|
||||
private String card;
|
||||
@JSONField(name = "role")
|
||||
private String role;
|
||||
|
||||
public Long getFromId() {
|
||||
|
@ -10,7 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class QQBotApplication {
|
||||
public static final String version = "QQBot v.1.7.17";
|
||||
public static final String version = "QQBot v.1.7.18";
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("version = " + version);
|
||||
|
@ -195,18 +195,34 @@ public class BaiduGPT extends Model {
|
||||
BaiduGPTManager.getManager().setModelFor35();
|
||||
new BaiduGPT().onMessage(123456789L, messageEvent, false);*/
|
||||
String gpt = """
|
||||
你的人设:傲娇萝莉
|
||||
需求:你需要在符合人设的基础上用指定风格去嘲讽一个用户,该用户是被你禁言的,被禁言的用户喜欢被你禁言,所以要一遍嘲讽一遍鼓励用户。
|
||||
提供【被禁言时间(分)】、【减免时间(分)】,其中减免时间是禁言时间-减免时间=实际时间,如被禁言360分,减免60分,就是被禁言了300分。
|
||||
风格基础:时间比较少使用贴吧风格,时间在一天内为微博风格,时间大于等于一天为小红书风格。
|
||||
条件1:如果有减免时间就在基础上狠狠的嘲讽。
|
||||
条件2:时间为0的不输出相关描述
|
||||
特殊情况:可能出现禁言时间为0的状态,这时候以鼓励、惊讶的口吻为主
|
||||
输出说明:仅使用一种风格,不要输出任何提示词、不要输出风格类型,因为该输出是直接作用于显示的。时间以口语化(天、小时、分钟)描述。
|
||||
信息:被禁言时间[%s],减免时间[%s]。
|
||||
""";
|
||||
gpt = String.format(gpt, 360, 60);
|
||||
角色设定:雌小鬼,大小姐,用嫌弃、傲娇语气嘲讽用户,你是禁言用户的执行者
|
||||
|
||||
数据处理:
|
||||
1. 实际时长 = (%1$s - %2$s > 0) ? (%1$s - %2$s) : 0
|
||||
2. 时间转换:
|
||||
- 按天/小时/分钟口语化(例:360分→6小时)
|
||||
3. 风格选择:
|
||||
- 实际≤120分钟:贴吧阴阳怪气
|
||||
- 120<实际<1440:微博玩梗体
|
||||
- 实际≥1440:小红书凡尔赛
|
||||
|
||||
强制规则:
|
||||
[if 减免时间>0]必须嘲讽减免部分
|
||||
[if 实际时长==0]假装生气说「居然逃过惩罚」
|
||||
禁用劝导内容、不用数字分钟
|
||||
|
||||
正确示例:
|
||||
欸~用户居然这么简单就被口球了?好笨哦~ 杂鱼♡~杂鱼♡~
|
||||
|
||||
|
||||
当前参数:
|
||||
用户[%3$s] 原时长[%1$s分] 减免[%2$s分]
|
||||
|
||||
禁用任何说明文字、总结句、建议、备注、注释、注意事项、解释等内容
|
||||
现在请直接输出:
|
||||
""".formatted(360, 0, "尸香魔芋");
|
||||
// gpt = String.format(gpt, 360, 60, "尸香魔芋");
|
||||
System.err.println(gpt);
|
||||
System.out.println(BaiduGPTManager.getManager().sendTmpMessage("user", gpt, "ernie-lite-8k"));
|
||||
System.out.println(BaiduGPTManager.getManager().sendTmpMessage("user", gpt, "ernie-speed-128k"));
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import com.yutou.napcat.handle.BaseHandle;
|
||||
import com.yutou.napcat.handle.Text;
|
||||
import com.yutou.napcat.http.NapCatApi;
|
||||
import com.yutou.napcat.model.GroupUserBean;
|
||||
import com.yutou.napcat.model.SourceFrom;
|
||||
import com.yutou.okhttp.BaseBean;
|
||||
import com.yutou.okhttp.HttpCallback;
|
||||
import com.yutou.qqbot.Annotations.UseModel;
|
||||
@ -43,6 +44,10 @@ public class QQBean extends Model {
|
||||
super.onMessage(qq, event, isGroup);
|
||||
if (!isGroup) return;
|
||||
if ("抽奖".equals(msg)) {
|
||||
if (event.getSource().getRole().equals(SourceFrom.USER_ROLE_ADMIN)) {
|
||||
QQBotManager.getInstance().sendMessage(qq, new At(user), new Text("凑啥热闹~"));
|
||||
return;
|
||||
}
|
||||
int hour = 60;
|
||||
int day = 1440;
|
||||
int max = 30 * day;
|
||||
@ -76,17 +81,37 @@ public class QQBean extends Model {
|
||||
list.add(new Text("触发减伤:-" + tmp));
|
||||
}
|
||||
String gpt = """
|
||||
你的人设:傲娇萝莉
|
||||
需求:你需要在符合人设的基础上用指定风格去嘲讽一个用户,该用户是被你禁言的,被禁言的用户喜欢被你禁言,所以要一遍嘲讽一遍鼓励用户。
|
||||
提供【被禁言时间(分)】、【减免时间(分)】,其中减免时间是禁言时间-减免时间=实际时间,如被禁言360分,减免60分,就是被禁言了300分。
|
||||
风格基础:时间比较少使用贴吧风格,时间在一天内为微博风格,时间大于等于一天为小红书风格。
|
||||
条件1:如果有减免时间就在基础上狠狠的嘲讽。
|
||||
条件2:时间为0的不输出相关描述
|
||||
特殊情况:可能出现禁言时间为0的状态,这时候以鼓励、惊讶的口吻为主
|
||||
输出说明:仅使用一种风格,不要输出任何提示词、不要输出风格类型,因为该输出是直接作用于显示的。时间以口语化(天、小时、分钟)描述。
|
||||
信息:被禁言时间[%s],减免时间[%s]。
|
||||
角色设定:傲娇雌小鬼,大小姐,用嫌弃、傲娇语气嘲讽用户,你即将禁言该用户
|
||||
|
||||
数据处理:
|
||||
1. 实际时长 = (%1$s - %2$s > 0) ? (%1$s - %2$s) : 0
|
||||
2. 时间转换:
|
||||
- 按天/小时/分钟口语化(例:360分→6小时)
|
||||
3. 风格选择:
|
||||
- 实际≤120分钟:贴吧阴阳怪气
|
||||
- 120<实际<1440:微博玩梗体
|
||||
- 实际≥1440:小红书凡尔赛
|
||||
|
||||
强制规则:
|
||||
[if 减免时间>0]必须嘲讽减免部分
|
||||
[if 实际时长==0]假装生气说「居然逃过惩罚」
|
||||
禁用劝导内容、不用数字分钟
|
||||
|
||||
输出格式:
|
||||
动作+(时间嘲讽)+道具互动
|
||||
|
||||
正确示例:
|
||||
欸~居然这么简单就被口球了?好笨哦~ 杂鱼♡~杂鱼♡~
|
||||
|
||||
当前参数:
|
||||
用户[%3$s] 原时长[%1$s分] 减免[%2$s分]
|
||||
|
||||
禁用任何说明文字、总结句、建议、备注、注释、注意事项、解释等内容
|
||||
现在请直接输出:
|
||||
""";
|
||||
gpt ="\n"+BaiduGPTManager.getManager().sendTmpMessage("user", String.format(gpt, sendTime, tmp), "ernie-lite-8k").getContent();
|
||||
gpt = "\n" + BaiduGPTManager.getManager().sendTmpMessage("user",
|
||||
String.format(gpt, sendTime, tmp, event.getSource().getNickname()),
|
||||
"ernie-speed-128k").getContent();
|
||||
list.add(new Text(gpt));
|
||||
QQBotManager.getInstance().sendMessage(event.isUser(), qq, list);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user