Files
ChatLab/src/components/AIChat/utils/chatMessages.ts
T
2026-04-06 22:24:49 +08:00

32 lines
856 B
TypeScript

import type { ChatMessage } from '@/stores/aiChat'
export interface QAPair {
user: ChatMessage | null
assistant: ChatMessage | null
id: string
}
/** 将消息列表分组为 QA 对(用户问题 + AI 回复) */
export function groupMessagesToQAPairs(messages: ChatMessage[]): QAPair[] {
const pairs: QAPair[] = []
let currentUser: ChatMessage | null = null
for (const msg of messages) {
if (msg.role === 'user') {
if (currentUser) {
pairs.push({ user: currentUser, assistant: null, id: currentUser.id })
}
currentUser = msg
} else if (msg.role === 'assistant') {
pairs.push({ user: currentUser, assistant: msg, id: currentUser?.id || msg.id })
currentUser = null
}
}
if (currentUser) {
pairs.push({ user: currentUser, assistant: null, id: currentUser.id })
}
return pairs
}