From 7d571df12af659c30c0bb12c44384ed080df470e Mon Sep 17 00:00:00 2001 From: ikechan8370 Date: Sun, 26 Mar 2023 21:29:15 +0800 Subject: [PATCH] feat: add robot msg --- apps/chat.js | 9 +++++++-- utils/SydneyAIClient.js | 20 ++++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/apps/chat.js b/apps/chat.js index 92a724b..3899cbb 100644 --- a/apps/chat.js +++ b/apps/chat.js @@ -1270,12 +1270,17 @@ export class chatgpt extends plugin { async recordChat (e) { // let gl = await this.e.group.getMemberMap() - if (e.isGroup && e.msg) { + if (!e.raw_message) { + if (e.img && e.img.length > 0) { + e.msg = '[图片]' + } + } + if (e.isGroup && e.raw_message) { const chat = { sender: e.sender.card, senderId: e.sender.user_id, senderSex: e.sender.sex, - msg: e.msg, + msg: e.raw_message, role: e.sender.role, area: e.sender.area, age: e.sender.age, diff --git a/utils/SydneyAIClient.js b/utils/SydneyAIClient.js index 34518d1..93991f6 100644 --- a/utils/SydneyAIClient.js +++ b/utils/SydneyAIClient.js @@ -7,7 +7,7 @@ import crypto from 'crypto' import HttpsProxyAgent from 'https-proxy-agent' import { Config, pureSydneyInstruction } from './config.js' -import { getMasterQQ, isCN } from './common.js' +import {formatDate, getMasterQQ, isCN} from './common.js' import delay from 'delay' if (!globalThis.fetch) { @@ -452,7 +452,7 @@ export default class SydneyAIClient { .map((item) => item.toString()) .map(chat => { chat = JSON.parse(chat) - return `发言者:${chat.sender}(${chat.senderId})[${chat.role}][${chat.area}](${chat.age}) 性别:${chat.senderSex} 发言内容:${chat.msg} 发言时间:${chat.time}\n` + return `发言者:${chat.sender} (${chat.senderId}) [${chat.role}] [${chat.area}] (${chat.age}) 性别:${chat.senderSex} 发言内容:${chat.msg} 发言时间:${chat.time}\n` }) .join('\n') } @@ -696,6 +696,22 @@ export default class SydneyAIClient { conversation.messages.push(userMessage) conversation.messages.push(replyMessage) } + if (groupId) { + const chat = { + sender: Config.sydneyBrainWashName || 'Sydney', + senderId: Bot.uin, + msg: reply.text, + role: 'robot', + area: 'Microsoft', + age: 1, + time: formatDate(new Date()) + } + // console.log(chat) + await redis.rPush('CHATGPT:LATEST_CHAT_RECORD:' + groupId, JSON.stringify(chat)) + if (await redis.lLen('CHATGPT:LATEST_CHAT_RECORD:' + groupId) > Config.groupContextLength) { + await redis.lPop('CHATGPT:LATEST_CHAT_RECORD:' + groupId) + } + } await this.conversationsCache.set(conversationKey, conversation) return { conversationSignature,