import type { EmbeddingProvider } from "./embedding-provider.js"; import { type OpenAIEmbeddingModel, OpenAIEmbeddingProvider, } from "./openai-embedding-provider.js"; export type EmbeddingModel = OpenAIEmbeddingModel; export type EmbeddingServiceConfiguration = { apiKey: string; model?: EmbeddingModel; }; export class EmbeddingService implements EmbeddingProvider { private provider: EmbeddingProvider; constructor(configuration: EmbeddingServiceConfiguration) { this.provider = new OpenAIEmbeddingProvider({ apiKey: configuration.apiKey, model: configuration.model, }); } get dimensions(): number { return this.provider.dimensions; } async generate(text: string): Promise { return this.provider.generate(text); } async generateBatch(texts: string[]): Promise { return this.provider.generateBatch(texts); } } export function createEmbeddingService( provider: EmbeddingProvider, ): EmbeddingProvider { return provider; }