(Feature) Vercel AI SDK (#2024)
This commit is contained in:
34
vercel-ai-sdk/src/mem0-provider-selector.ts
Normal file
34
vercel-ai-sdk/src/mem0-provider-selector.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { OpenAIProviderSettings } from "@ai-sdk/openai";
|
||||
import { Mem0ProviderSettings } from "./mem0-provider";
|
||||
import Mem0AITextGenerator, { ProviderSettings } from "./provider-response-provider";
|
||||
|
||||
class Mem0ClassSelector {
|
||||
modelId: string;
|
||||
provider_wrapper: string;
|
||||
model: 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.model = this.modelId;
|
||||
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() {
|
||||
return new Mem0AITextGenerator(this.provider_wrapper, this.model, this.config , this.provider_config || {});
|
||||
}
|
||||
}
|
||||
|
||||
export { Mem0ClassSelector };
|
||||
Reference in New Issue
Block a user