UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

38 lines (31 loc) 1.14 kB
import { LobeChatDatabase } from '@lobechat/database'; import { MessageModel } from '@/database/models/message'; import { TopicModel } from '@/database/models/topic'; import { FileService } from '@/server/services/file'; export class AiChatService { private userId: string; private messageModel: MessageModel; private fileService: FileService; private topicModel: TopicModel; constructor(serverDB: LobeChatDatabase, userId: string) { this.userId = userId; this.messageModel = new MessageModel(serverDB, userId); this.topicModel = new TopicModel(serverDB, userId); this.fileService = new FileService(serverDB, userId); } async getMessagesAndTopics(params: { current?: number; includeTopic?: boolean; pageSize?: number; sessionId?: string; topicId?: string; }) { const [messages, topics] = await Promise.all([ this.messageModel.query(params, { postProcessUrl: (path) => this.fileService.getFullFileUrl(path), }), params.includeTopic ? this.topicModel.query({ containerId: params.sessionId }) : undefined, ]); return { messages, topics }; } }