| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { MessageType } from '@/constants/chat';
- import { IConversation, IReference } from '@/interfaces/database/chat';
- import { EmptyConversationId } from './constants';
- import { IMessage } from './interface';
-
- export const isConversationIdExist = (conversationId: string) => {
- return conversationId !== EmptyConversationId && conversationId !== '';
- };
-
- export const getDocumentIdsFromConversionReference = (data: IConversation) => {
- const documentIds = data.reference.reduce(
- (pre: Array<string>, cur: IReference) => {
- cur.doc_aggs
- ?.map((x) => x.doc_id)
- .forEach((x) => {
- if (pre.every((y) => y !== x)) {
- pre.push(x);
- }
- });
- return pre;
- },
- [],
- );
- return documentIds.join(',');
- };
-
- export const buildMessageItemReference = (
- conversation: { message: IMessage[]; reference: IReference[] },
- message: IMessage,
- ) => {
- const assistantMessages = conversation.message
- ?.filter((x) => x.role === MessageType.Assistant)
- .slice(1);
- const referenceIndex = assistantMessages.findIndex(
- (x) => x.id === message.id,
- );
- const reference = message?.reference
- ? message?.reference
- : (conversation?.reference ?? {})[referenceIndex];
-
- return reference;
- };
|