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.

59 lines (45 loc) 2.12 kB
import { clientDB } from '@/database/client/db'; import { AiProviderModel } from '@/database/models/aiProvider'; import { AiInfraRepos } from '@/database/repositories/aiInfra'; import { BaseClientService } from '@/services/baseClientService'; import { IAiProviderService } from './type'; export class ClientService extends BaseClientService implements IAiProviderService { private get aiProviderModel(): AiProviderModel { return new AiProviderModel(clientDB as any, this.userId); } private get aiInfraRepos(): AiInfraRepos { let config = {}; if (typeof window !== 'undefined') { config = window.global_serverConfigStore.getState().serverConfig.aiProvider || {}; } return new AiInfraRepos(clientDB as any, this.userId, config); } createAiProvider: IAiProviderService['createAiProvider'] = async (params) => { const data = await this.aiProviderModel.create(params); return data?.id; }; getAiProviderById: IAiProviderService['getAiProviderById'] = async (id) => { return this.aiInfraRepos.getAiProviderDetail(id); }; getAiProviderList: IAiProviderService['getAiProviderList'] = async () => { return await this.aiInfraRepos.getAiProviderList(); }; getAiProviderRuntimeState: IAiProviderService['getAiProviderRuntimeState'] = async () => { return await this.aiInfraRepos.getAiProviderRuntimeState(); }; toggleProviderEnabled: IAiProviderService['toggleProviderEnabled'] = async (id, enabled) => { return this.aiProviderModel.toggleProviderEnabled(id, enabled); }; updateAiProvider: IAiProviderService['updateAiProvider'] = async (id, value) => { return this.aiProviderModel.update(id, value); }; updateAiProviderConfig: IAiProviderService['updateAiProviderConfig'] = async (id, value) => { return this.aiProviderModel.updateConfig(id, value); }; updateAiProviderOrder: IAiProviderService['updateAiProviderOrder'] = async (items) => { return this.aiProviderModel.updateOrder(items); }; deleteAiProvider: IAiProviderService['deleteAiProvider'] = async (id) => { return this.aiProviderModel.delete(id); }; }