Files
t6_mem0/vercel-ai-sdk/src/mem0-provider-selector.ts
2025-03-26 10:30:44 +05:30

33 lines
1.2 KiB
TypeScript

import { Mem0ProviderSettings } from "./mem0-provider";
import Mem0AITextGenerator, { ProviderSettings } from "./provider-response-provider";
import { LanguageModelV1 } from "ai";
class Mem0ClassSelector {
modelId: string;
provider_wrapper: string;
config: Mem0ProviderSettings;
provider_config?: ProviderSettings;
static supportedProviders = ["openai", "anthropic", "cohere", "groq"];
constructor(modelId: string, config: Mem0ProviderSettings, provider_config?: ProviderSettings) {
this.modelId = modelId;
this.provider_wrapper = config.provider || "openai";
this.provider_config = provider_config;
if(config) this.config = config;
else this.config = {
provider: this.provider_wrapper,
};
// Check if provider_wrapper is supported
if (!Mem0ClassSelector.supportedProviders.includes(this.provider_wrapper)) {
throw new Error(`Model not supported: ${this.provider_wrapper}`);
}
}
createProvider(): LanguageModelV1 {
return new Mem0AITextGenerator(this.modelId, this.config , this.provider_config || {});
}
}
export { Mem0ClassSelector };