From ca301f0daba52d9f50f4b51fec4b2875522a23d4 Mon Sep 17 00:00:00 2001 From: liuyi Date: Fri, 28 Mar 2025 16:19:04 +0800 Subject: [PATCH] chore(server): patch config system (#11260) --- .../backend/server/src/core/config/service.ts | 4 +++- .../server/src/core/doc-service/index.ts | 2 ++ .../src/plugins/copilot/context/service.ts | 22 ++++++++++++++----- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/backend/server/src/core/config/service.ts b/packages/backend/server/src/core/config/service.ts index cddf4a59a..3fa993875 100644 --- a/packages/backend/server/src/core/config/service.ts +++ b/packages/backend/server/src/core/config/service.ts @@ -104,7 +104,9 @@ export class ServerService implements OnApplicationBootstrap { private async setup() { const overrides = await this.loadDbOverrides(); this.configFactory.override(overrides); - this.event.emit('config.init', { config: this.configFactory.config }); + await this.event.emitAsync('config.init', { + config: this.configFactory.config, + }); } private async loadDbOverrides() { diff --git a/packages/backend/server/src/core/doc-service/index.ts b/packages/backend/server/src/core/doc-service/index.ts index 762564815..65b95e860 100644 --- a/packages/backend/server/src/core/doc-service/index.ts +++ b/packages/backend/server/src/core/doc-service/index.ts @@ -1,3 +1,5 @@ +import './config'; + import { Module } from '@nestjs/common'; import { DocStorageModule } from '../doc'; diff --git a/packages/backend/server/src/plugins/copilot/context/service.ts b/packages/backend/server/src/plugins/copilot/context/service.ts index 2e9df05a2..b9b5bf230 100644 --- a/packages/backend/server/src/plugins/copilot/context/service.ts +++ b/packages/backend/server/src/plugins/copilot/context/service.ts @@ -24,15 +24,27 @@ const CONTEXT_SESSION_KEY = 'context-session'; @Injectable() export class CopilotContextService implements OnApplicationBootstrap { private supportEmbedding = false; - private readonly client: EmbeddingClient | undefined; + private client: EmbeddingClient | undefined; constructor( - config: Config, + private readonly config: Config, private readonly cache: Cache, private readonly models: Models - ) { - const configure = config.copilot.providers.openai; - if (configure) { + ) {} + + @OnEvent('config.init') + onConfigInit() { + this.setup(); + } + + @OnEvent('config.changed') + onConfigChanged() { + this.setup(); + } + + private setup() { + const configure = this.config.copilot.providers.openai; + if (configure.apiKey) { this.client = new OpenAIEmbeddingClient(new OpenAI(configure)); } }