import { Injectable } from '@nestjs/common'; import { UIDataTypes, UIMessage, UITools } from 'ai'; import { DocumentEntity } from '@loopstack/common'; @Injectable() export class AiMessagesHelperService { private searchMessages( documents: DocumentEntity[], tag: string, ): Omit, 'id'>[] { return documents .filter((document) => !document.isInvalidated && document.tags?.includes(tag)) .sort((a, b) => a.index - b.index) .map((document) => document.content as Omit, 'id'>); } getMessages( documents: DocumentEntity[], args: { messages?: Omit, 'id'>[]; messagesSearchTag?: string }, ): Omit, 'id'>[] { let messages: Omit, 'id'>[] | undefined = args.messages; if (!messages?.length) { messages = this.searchMessages(documents, args.messagesSearchTag ?? 'message'); } return messages; } }