@mem0/vercel-ai-provider
Version:
Vercel AI Provider for providing memory to LLMs
99 lines (92 loc) • 4.23 kB
text/typescript
import { ProviderV1, LanguageModelV1, LanguageModelV1CallOptions } from '@ai-sdk/provider';
import { OpenAIProviderSettings } from '@ai-sdk/openai';
import { OpenAIChatSettings } from '@ai-sdk/openai/internal';
import { AnthropicMessagesSettings } from '@ai-sdk/anthropic/internal';
import { AnthropicProviderSettings } from '@ai-sdk/anthropic';
import { LanguageModelV1Prompt } from 'ai';
interface Mem0Provider extends ProviderV1 {
(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV1;
chat(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV1;
completion(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV1;
languageModel(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): LanguageModelV1;
}
interface Mem0ProviderSettings extends OpenAIChatSettings, AnthropicMessagesSettings {
baseURL?: string;
/**
* Custom fetch implementation. You can use it as a middleware to intercept
* requests or to provide a custom fetch implementation for e.g. testing
*/
fetch?: typeof fetch;
/**
* Custom headers to include in the requests.
*/
headers?: Record<string, string>;
name?: string;
mem0ApiKey?: string;
apiKey?: string;
provider?: string;
modelType?: "completion" | "chat";
mem0Config?: Mem0Config;
/**
* The configuration for the provider.
*/
config?: OpenAIProviderSettings | AnthropicProviderSettings;
}
declare function createMem0(options?: Mem0ProviderSettings): Mem0Provider;
declare const mem0: Mem0Provider;
type Mem0ChatModelId = (string & NonNullable<unknown>);
interface Mem0ConfigSettings {
user_id?: string;
app_id?: string;
agent_id?: string;
run_id?: string;
org_name?: string;
project_name?: string;
org_id?: string;
project_id?: string;
metadata?: Record<string, any>;
filters?: Record<string, any>;
infer?: boolean;
page?: number;
page_size?: number;
mem0ApiKey?: string;
top_k?: number;
threshold?: number;
rerank?: boolean;
enable_graph?: boolean;
output_format?: string;
filter_memories?: boolean;
}
interface Mem0ChatConfig extends Mem0ConfigSettings, Mem0ProviderSettings {
}
interface Mem0Config extends Mem0ConfigSettings {
}
interface Mem0ChatSettings extends OpenAIChatSettings, AnthropicMessagesSettings, Mem0ConfigSettings {
}
declare class Mem0GenericLanguageModel implements LanguageModelV1 {
readonly modelId: Mem0ChatModelId;
readonly settings: Mem0ChatSettings;
readonly config: Mem0ChatConfig;
readonly provider_config?: Mem0ProviderSettings | undefined;
readonly specificationVersion = "v1";
readonly defaultObjectGenerationMode = "json";
readonly supportsImageUrls = false;
constructor(modelId: Mem0ChatModelId, settings: Mem0ChatSettings, config: Mem0ChatConfig, provider_config?: Mem0ProviderSettings | undefined);
provider: string;
private processMemories;
doGenerate(options: LanguageModelV1CallOptions): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
doStream(options: LanguageModelV1CallOptions): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
}
declare class Mem0 {
readonly baseURL: string;
readonly headers?: any;
constructor(options?: Mem0ProviderSettings);
private get baseConfig();
chat(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): Mem0GenericLanguageModel;
completion(modelId: Mem0ChatModelId, settings?: Mem0ChatSettings): Mem0GenericLanguageModel;
}
declare const addMemories: (messages: LanguageModelV1Prompt, config?: Mem0ConfigSettings) => Promise<any>;
declare const retrieveMemories: (prompt: LanguageModelV1Prompt | string, config?: Mem0ConfigSettings) => Promise<string>;
declare const getMemories: (prompt: LanguageModelV1Prompt | string, config?: Mem0ConfigSettings) => Promise<any>;
declare const searchMemories: (prompt: LanguageModelV1Prompt | string, config?: Mem0ConfigSettings) => Promise<any>;
export { Mem0, type Mem0ChatConfig, type Mem0ChatSettings, type Mem0ConfigSettings, type Mem0Provider, type Mem0ProviderSettings, addMemories, createMem0, getMemories, mem0, retrieveMemories, searchMemories };