feat(MessagesService): two or more adjacent messages have the same role as user, then only the last one should be kept
This commit is contained in:
parent
7b8c5f185c
commit
43adac3f74
@ -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
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user