mirror of
https://github.com/Jerryplusy/crystelf-plugin.git
synced 2025-12-05 15:41:56 +00:00
🐛 fix(aiCaller): improve message handling for group chat history and mentions with proper looping and name retrieval
This commit is contained in:
parent
f17e9ec0dc
commit
5c97c9cdf7
@ -98,6 +98,7 @@
|
|||||||
- [X] 记忆存储及搜索
|
- [X] 记忆存储及搜索
|
||||||
- [X] 自定义会话管理
|
- [X] 自定义会话管理
|
||||||
- [X] 支持获取引用消息,使用seq标记
|
- [X] 支持获取引用消息,使用seq标记
|
||||||
|
- [X] 支持群聊上下文消息
|
||||||
- [ ] 支持调用更多工具
|
- [ ] 支持调用更多工具
|
||||||
- [ ] 获取引用消息
|
- [ ] 获取引用消息
|
||||||
- [ ] 适配多模态模型,查看图片等
|
- [ ] 适配多模态模型,查看图片等
|
||||||
|
|||||||
@ -132,13 +132,14 @@ async function extractUserMessage(msg, nickname, e) {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
if (at.length > 0) {
|
if (at.length > 0) {
|
||||||
at.forEach((at) => {
|
for (const at1 of at) {
|
||||||
if (at == e.bot.uin) {
|
if (at1 == e.bot.uin) {
|
||||||
//returnMessage += `[${e.sender?.nickname},id:${e.user_id}]@(at)了你,你的id是${at}\n`;
|
//returnMessage += `[${e.sender?.nickname},id:${e.user_id}]@(at)了你,你的id是${at}\n`;
|
||||||
} else {
|
} else {
|
||||||
returnMessage += `[${e.sender?.nickname},id:${e.user_id},seq:${e.message_id}]@(at)了一个人,id是${at}\n`;
|
const atNickname = await e.group.pickMember(at1).nickname || '一个人';
|
||||||
|
returnMessage += `[${e.sender?.nickname},id:${e.user_id},seq:${e.message_id}]@(at)了${atNickname},id是${at1}\n`;
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
const imgUrls = await YunzaiUtils.getImages(e, 1, true);
|
const imgUrls = await YunzaiUtils.getImages(e, 1, true);
|
||||||
if (imgUrls) {
|
if (imgUrls) {
|
||||||
|
|||||||
@ -166,9 +166,9 @@ class AiCaller {
|
|||||||
const groupChatHistory = await e.group.getChatHistory(e.message_id, historyLen);
|
const groupChatHistory = await e.group.getChatHistory(e.message_id, historyLen);
|
||||||
if(groupChatHistory && groupChatHistory.length > 0 ){
|
if(groupChatHistory && groupChatHistory.length > 0 ){
|
||||||
contextIntro += '[群聊聊天记录(从旧到新)]\n'
|
contextIntro += '[群聊聊天记录(从旧到新)]\n'
|
||||||
groupChatHistory.forEach((message)=>{
|
for (const message of groupChatHistory) {
|
||||||
const msgArr = message.message;
|
const msgArr = message.message;
|
||||||
msgArr.forEach((msg)=>{
|
for (const msg of msgArr) {
|
||||||
if(msg.type==='text'){
|
if(msg.type==='text'){
|
||||||
contextIntro += `[${message.sender.user_id == e.bot.uin ? '你' : message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前说过:${msg.text}\n`
|
contextIntro += `[${message.sender.user_id == e.bot.uin ? '你' : message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前说过:${msg.text}\n`
|
||||||
}
|
}
|
||||||
@ -176,14 +176,15 @@ class AiCaller {
|
|||||||
if(msg.qq == e.bot.uin){
|
if(msg.qq == e.bot.uin){
|
||||||
contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前@了你\n`
|
contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前@了你\n`
|
||||||
} else {
|
} else {
|
||||||
contextIntro += `[${message.sender.user_id == e.bot.uin ? '你' : message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前@了${msg.qq}\n`
|
const atNickname = await e.group.pickMember(msg.qq).nickname || '一个人';
|
||||||
|
contextIntro += `[${message.sender.user_id == e.bot.uin ? '你' : message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前@了${atNickname},id是${msg.qq}\n`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(msg.type === 'image'){
|
if(msg.type === 'image'){
|
||||||
contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前发送了一张图片(你可能暂时无法查看)\n`
|
contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前发送了一张图片(你可能暂时无法查看)\n`
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (memories && memories.length > 0) {
|
if (memories && memories.length > 0) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user