/** * Embeddings - AI SDK-backed embedding utilities * * Provides embedding functionality with AI SDK preference and native fallback. * Integrates with existing EmbeddingProvider interface in knowledge/rag.ts and memory/memory.ts */ import type { EmbeddingProvider } from '../knowledge/rag'; export interface EmbeddingOptions { /** Model to use for embeddings (default: text-embedding-3-small) */ model?: string; /** Provider to use (default: openai) */ provider?: string; /** Maximum retries (default: 2) */ maxRetries?: number; /** Abort signal for cancellation */ abortSignal?: AbortSignal; /** Additional headers */ headers?: Record; /** Force specific backend: 'ai-sdk' | 'native' | 'auto' */ backend?: 'ai-sdk' | 'native' | 'auto'; } export interface EmbeddingResult { embedding: number[]; usage?: { tokens: number; }; } export interface EmbeddingBatchResult { embeddings: number[][]; usage?: { tokens: number; }; } /** * Get the default embedding model for a provider */ export declare function getDefaultEmbeddingModel(provider?: string): string; /** * Parse embedding model string into provider and model */ export declare function parseEmbeddingModel(model: string): { provider: string; model: string; }; /** * Embed a single text using AI SDK (preferred) or native provider */ export declare function embed(text: string, options?: EmbeddingOptions): Promise; /** * Embed multiple texts using AI SDK (preferred) or native provider */ export declare function embedMany(texts: string[], options?: EmbeddingOptions): Promise; /** * Create an EmbeddingProvider that uses AI SDK * Compatible with KnowledgeBase and Memory interfaces */ export declare function createEmbeddingProvider(options?: EmbeddingOptions): EmbeddingProvider; /** * Cosine similarity between two vectors */ export declare function cosineSimilarity(a: number[], b: number[]): number; /** * Euclidean distance between two vectors */ export declare function euclideanDistance(a: number[], b: number[]): number; export type { EmbeddingProvider };