diff --git a/README.md b/README.md index f3e6be9..b9eb346 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,8 @@ - [X] 自定义上下文长度 - [X] 记忆存储及搜索 - [X] 自定义会话管理 -- [X] 支持获取引用消息,使用seq标记 +- [X] 支持获取引用消息,使用seq标记 +- [X] 支持群聊上下文消息 - [ ] 支持调用更多工具 - [ ] 获取引用消息 - [ ] 适配多模态模型,查看图片等 diff --git a/apps/ai.js b/apps/ai.js index 68c9c39..33f2c5f 100644 --- a/apps/ai.js +++ b/apps/ai.js @@ -132,13 +132,14 @@ async function extractUserMessage(msg, nickname, e) { return []; } if (at.length > 0) { - at.forEach((at) => { - if (at == e.bot.uin) { + for (const at1 of at) { + if (at1 == e.bot.uin) { //returnMessage += `[${e.sender?.nickname},id:${e.user_id}]@(at)了你,你的id是${at}\n`; } 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); if (imgUrls) { diff --git a/lib/ai/aiCaller.js b/lib/ai/aiCaller.js index 9167cac..19d6a5d 100644 --- a/lib/ai/aiCaller.js +++ b/lib/ai/aiCaller.js @@ -166,9 +166,9 @@ class AiCaller { const groupChatHistory = await e.group.getChatHistory(e.message_id, historyLen); if(groupChatHistory && groupChatHistory.length > 0 ){ contextIntro += '[群聊聊天记录(从旧到新)]\n' - groupChatHistory.forEach((message)=>{ + for (const message of groupChatHistory) { const msgArr = message.message; - msgArr.forEach((msg)=>{ + for (const msg of msgArr) { 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` } @@ -176,14 +176,15 @@ class AiCaller { if(msg.qq == e.bot.uin){ contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前@了你\n` } 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'){ contextIntro += `[${message.sender?.nickname},id:${message.sender?.user_id},seq:${message.message_id}]之前发送了一张图片(你可能暂时无法查看)\n` } - }) - }) + } + } } if (memories && memories.length > 0) {