import { Global, Module } from '@nestjs/common'; import { env } from '../config/env'; import { LocalEmbeddingProvider } from './local.provider'; import { MockEmbeddingProvider } from './mock.provider'; import { OpenAiEmbeddingProvider } from './openai.provider'; import { EmbeddingProvider } from './types'; const IMPL = { local: LocalEmbeddingProvider, openai: OpenAiEmbeddingProvider, mock: MockEmbeddingProvider, } as const; @Global() @Module({ providers: [{ provide: EmbeddingProvider, useClass: IMPL[env.embedding.provider] }], exports: [EmbeddingProvider], }) export class EmbeddingModule {}