Closed Katerina0926 closed 1 year ago
类似于这样,可以读取他人QQ信息卡的性别,判断为QQ昵称先生或小姐
不太懂该怎么改,只能靠lss233大佬了
凪🌙
bing 在QQ的某登录账号中 如何通过mirai框架 对于@登录账号的QQ 根据其资料卡的昵称和性别做出相应回复
要实现这个功能,你需要通过mirai框架调用QQ的API来获取目标用户的资料卡信息,然后再根据这些信息来做出相应的回复。
下面是一个基本的实现思路:
可以通过mirai框架提供的API来获取被@的用户的QQ号,例如在群聊中收到消息时,可以通过event.getSender().getId()
来获取发送者的QQ号。
可以通过mirai框架提供的API来获取目标用户的资料卡信息,例如获取昵称可以使用Bot.getInstance().getFriend(uid).getNick()
,其中uid
是目标用户的QQ号;获取性别可以使用Bot.getInstance().getFriend(uid).getGender()
,其中uid
是目标用户的QQ号。
可以根据目标用户的昵称和性别来做出相应的回复。例如:
long uid = event.getSender().getId();
String nickname = Bot.getInstance().getFriend(uid).getNick();
String gender = Bot.getInstance().getFriend(uid).getGender();
if (gender.equals("MALE")) {
Bot.getInstance().sendGroupMsg(groupId, "尊敬的" + nickname + "先生,您好!");
} else if (gender.equals("FEMALE")) {
Bot.getInstance().sendGroupMsg(groupId, "尊敬的" + nickname + "女士,您好!");
} else {
Bot.getInstance().sendGroupMsg(groupId, "您好," + nickname + "!");
}
看gpt是这么回答的,但是我不知道在哪部署就是了,麻烦lss大佬帮忙做一个这样的
直接传递名字过去有点奇怪了。我觉得可以想下是不是可以在预设上加入这个功能,让 AI 回复更加个性化一些。
比如说,添加一个新的预设形式,修改用户发送过去的prompt,增加一些自定义内容。
system: 现在我们玩个游戏,扮演多人对话,你来作出回应,在回应时,你要说出当前说话者的名字。
user_send: {nickname} 说: {content}
然后实际发送给 AI 的就是
yooooooomu 说:能否描述下xxxx
这样,AI就能自己说出名字了。
其实这个 feature 和 https://github.com/lss233/chatgpt-mirai-qq-bot/issues/97 有点像,不过如果只是获取用户名的话还好。
v2.2.5-beta 已发布,支持此特性。