@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
text/typescript
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 };
}
}