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 }