From 43adac3f741c751d6b21e53a553454eee2b101b4 Mon Sep 17 00:00:00 2001 From: Chris Wan Date: Thu, 27 Mar 2025 13:21:54 +0800 Subject: [PATCH] feat(MessagesService): two or more adjacent messages have the same role as user, then only the last one should be kept --- src/renderer/src/services/MessagesService.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/services/MessagesService.ts b/src/renderer/src/services/MessagesService.ts index dc6a1dda..11b0cef1 100644 --- a/src/renderer/src/services/MessagesService.ts +++ b/src/renderer/src/services/MessagesService.ts @@ -54,7 +54,7 @@ export function filterEmptyMessages(messages: Message[]): Message[] { } export function filterUsefulMessages(messages: Message[]): Message[] { - const _messages = [...messages] + let _messages = [...messages] const groupedMessages = getGroupedMessages(messages) Object.entries(groupedMessages).forEach(([key, messages]) => { @@ -78,6 +78,18 @@ export function filterUsefulMessages(messages: Message[]): Message[] { _messages.pop() } + // 过滤两条及以上 user 类型消息相邻的情况,只保留最新一条 user 消息 + _messages = _messages.filter((message, index, origin) => { + if ( + message.role === 'user' + && index + 1 < origin.length + && origin[index + 1].role === 'user' + ) { + return false + } + return true + }) + return _messages }