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[] {
|
export function filterUsefulMessages(messages: Message[]): Message[] {
|
||||||
const _messages = [...messages]
|
let _messages = [...messages]
|
||||||
const groupedMessages = getGroupedMessages(messages)
|
const groupedMessages = getGroupedMessages(messages)
|
||||||
|
|
||||||
Object.entries(groupedMessages).forEach(([key, messages]) => {
|
Object.entries(groupedMessages).forEach(([key, messages]) => {
|
||||||
@ -78,6 +78,18 @@ export function filterUsefulMessages(messages: Message[]): Message[] {
|
|||||||
_messages.pop()
|
_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
|
return _messages
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user