import { Injectable, Logger } from '@nestjs/common'; import { OpenAIEmbeddings } from '@langchain/openai'; import { ModelConfig } from '../model-config/model-config.entity'; @Injectable() export class EmbeddingService { private readonly logger = new Logger(EmbeddingService.name); async getEmbeddings(text: string, config: ModelConfig): Promise { try { const embeddings = new OpenAIEmbeddings({ openAIApiKey: config.apiKey || 'ollama', configuration: { baseURL: config.baseUrl, }, modelName: config.modelId, }); const vector = await embeddings.embedQuery(text); return vector; } catch (error) { this.logger.error( `Failed to generate embeddings using model ${config.modelId}`, error, ); throw error; } } }