mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-29 04:08:12 +08:00
22 lines
727 B
TypeScript
22 lines
727 B
TypeScript
|
|
import { MessageType } from '@/constants/chat';
|
||
|
|
import { IReference } from '@/interfaces/database/chat';
|
||
|
|
import { IMessage } from '@/pages/chat/interface';
|
||
|
|
import { isEmpty } from 'lodash';
|
||
|
|
|
||
|
|
export const buildAgentMessageItemReference = (
|
||
|
|
conversation: { message: IMessage[]; reference: IReference[] },
|
||
|
|
message: IMessage,
|
||
|
|
) => {
|
||
|
|
const assistantMessages = conversation.message?.filter(
|
||
|
|
(x) => x.role === MessageType.Assistant,
|
||
|
|
);
|
||
|
|
const referenceIndex = assistantMessages.findIndex(
|
||
|
|
(x) => x.id === message.id,
|
||
|
|
);
|
||
|
|
const reference = !isEmpty(message?.reference)
|
||
|
|
? message?.reference
|
||
|
|
: (conversation?.reference ?? [])[referenceIndex];
|
||
|
|
|
||
|
|
return reference ?? { doc_aggs: [], chunks: [], total: 0 };
|
||
|
|
};
|