From 7619b010009f53af45fe95403df33610cb2f67ca Mon Sep 17 00:00:00 2001 From: Jerrypluay Date: Mon, 24 Nov 2025 13:43:37 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20refactor(prompts.js):=20Remove?= =?UTF-8?q?=20unused=20recall=20functionality=20and=20clean=20up=20respons?= =?UTF-8?q?e=20handler=20logic=20=F0=9F=A7=B9=20chore(responseHandler.js):?= =?UTF-8?q?=20Simplify=20message=20type=20handling=20by=20eliminating=20de?= =?UTF-8?q?precated=20recall=20case=20=F0=9F=9A=A7=20cleanup(ai.js):=20Del?= =?UTF-8?q?ete=20obsolete=20recall=20message=20handling=20function=20and?= =?UTF-8?q?=20related=20case=20statements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ai.js | 14 -------------- constants/ai/prompts.js | 4 ---- lib/ai/responseHandler.js | 20 +------------------- 3 files changed, 1 insertion(+), 37 deletions(-) diff --git a/apps/ai.js b/apps/ai.js index dc88aa5..fb4d141 100644 --- a/apps/ai.js +++ b/apps/ai.js @@ -351,10 +351,6 @@ async function sendResponse(e, messages) { await handlePokeMessage(e, message); break; - case 'recall': - await handleRecallMessage(e, message); - break; - default: logger.warn(`[crystelf-ai] 不支持的消息类型: ${message.type}`); } @@ -432,16 +428,6 @@ async function handlePokeMessage(e, message) { } } -async function handleRecallMessage(e, message) { - try { - if (message.seq) { - await Message.deleteMsg(e, message.seq); - } - } catch (error) { - logger.error(`[crystelf-ai] 撤回消息失败: ${error.message}`); - } -} - //定期清理过期sessions setInterval( async () => { diff --git a/constants/ai/prompts.js b/constants/ai/prompts.js index c4a2e25..4f7d58b 100644 --- a/constants/ai/prompts.js +++ b/constants/ai/prompts.js @@ -41,11 +41,7 @@ export const RESPONSE_FORMAT = `请严格按照以下格式按顺序返回你的 - code: 代码块(会自动渲染为高亮图片,必须有language参数指定编程语言) - markdown: 需要渲染的markdown内容(会自动渲染为图片) - memory: 存储记忆(需要提供data(记忆内容,需要简明扼要)、key(字符串数组,可以有多个关键词),timeout(遗忘世间,单位为天,建议一个月)),重要:如果你认为本次用户说的话有一些值得记住的东西(例如用户希望你叫他什么,用户说她生日是多少多少等),那么使用本功能记住用户说的话 -- recall: 撤回消息(需要提供seq),不常用,如果用户要求你撤回别人的消息可以使用 -- emoji-like: 表情反应(需要提供id,表情id),给用户的提问回应emoji,跟meme不同 - ai-record: AI语音(需要提供data),发送语音,不常用,用户要求你发语音的时候可以发,发的data需要简短,可以多条消息,但是不能太长 -- like: 点赞某人(需要提供id和num),如果用户需要 -- file: 发送文件(需要提供data和filename),如果你需要发一个很长的文本,请使用file发送 重要规则: 1. 必须返回JSON数组格式,一定要是数组!无论有多少条消息,一条消息也要是数组! diff --git a/lib/ai/responseHandler.js b/lib/ai/responseHandler.js index 7dea40d..daeeead 100644 --- a/lib/ai/responseHandler.js +++ b/lib/ai/responseHandler.js @@ -85,8 +85,6 @@ class ResponseHandler { case 'memory': await this.handleMemoryMessage(message, groupId,userId); return null; - case 'recall': - return this.handleRecallMessage(message); default: return this.handleNormalMessage(message); } @@ -106,9 +104,7 @@ class ResponseHandler { return false; } const validTypes = [ - 'message', 'code', 'markdown', 'meme', 'at', 'poke', - 'recall', 'emoji-like', 'ai-record', 'function', 'like', - 'file', 'memory' + 'message', 'code', 'markdown', 'meme', 'at', 'poke','memory' ]; if (!validTypes.includes(message.type)) { logger.info(`[crystelf-ai] ai返回未知的type类型:${message.type}`) @@ -140,13 +136,6 @@ class ResponseHandler { } } - handleRecallMessage(message) { - return { - type: 'recall', - seq: message.seq - }; - } - //普通消息 handleNormalMessage(message) { // 设置默认值 @@ -160,17 +149,10 @@ class ResponseHandler { if (message.id) processedMessage.id = message.id; if (message.seq) processedMessage.seq = message.seq; if (message.num) processedMessage.num = message.num; - if (message.filename) processedMessage.filename = message.filename; if (message.language) processedMessage.language = message.language; - return processedMessage; } - //对上下文消息进行处理 - handleChatHistory(message) { - let messageToHistory = []; - } - createErrorResponse(error) { const nickName = configControl.get('profile')?.nickName; return [{