UNPKG

@mem0/vercel-ai-provider

Version:

Vercel AI Provider for providing memory to LLMs

99 lines (92 loc) 4.23 kB
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 };