/** * Embedding generation utilities - Pure Functional * Uses Vercel AI SDK with OpenAI Provider * * Design: * - Pure functions (no classes) * - Immutable data structures * - Function composition * - Config from environment variables */ /** * Embedding Provider Config */ export interface EmbeddingConfig { readonly provider: 'openai' | 'openai-compatible' | 'mock'; readonly model: string; readonly dimensions: number; readonly apiKey?: string; readonly baseURL?: string; readonly batchSize?: number; } /** * Embedding Provider Interface */ export interface EmbeddingProvider { readonly name: string; readonly model: string; readonly dimensions: number; readonly generateEmbedding: (text: string) => Promise; readonly generateEmbeddings: (texts: string[]) => Promise; } /** * Generate mock embedding using deterministic hash * Used as fallback when OpenAI is not available */ export declare const generateMockEmbedding: (text: string, dimensions: number) => number[]; /** * Create default config from environment */ export declare const createDefaultConfig: () => EmbeddingConfig; /** * Create OpenAI Embedding Provider (optional cloud path). * Requires optionalDependencies `@ai-sdk/openai` + `ai` at call time. */ export declare const createOpenAIProvider: (config: EmbeddingConfig) => EmbeddingProvider; /** * Create Mock Embedding Provider (pure function) */ export declare const createMockProvider: (dimensions?: number) => EmbeddingProvider; /** * Provider Factory Type */ type ProviderFactory = (config: EmbeddingConfig) => EmbeddingProvider; /** * Register a provider factory */ export declare const registerProvider: (name: string, factory: ProviderFactory) => void; /** * Get registered provider names */ export declare const getRegisteredProviders: () => string[]; /** * Create Embedding Provider from config (pure function) * Uses provider registry for modularity */ export declare const createEmbeddingProvider: (config: EmbeddingConfig) => EmbeddingProvider; /** * Get default embedding provider (pure function with I/O) */ export declare const getDefaultEmbeddingProvider: () => Promise; /** * Chunk text into smaller pieces * Pure function - no side effects */ export declare const chunkText: (text: string, options?: { readonly maxChunkSize?: number; readonly overlap?: number; }) => readonly string[]; /** * Calculate cosine similarity between two vectors * Returns value between -1 and 1 (1 = identical, 0 = orthogonal, -1 = opposite) */ export declare const cosineSimilarity: (vecA: number[], vecB: number[]) => number; /** * Normalize vector to unit length */ export declare const normalizeVector: (vector: number[]) => number[]; /** * Compose embedding providers (primary + fallback) */ export declare const composeProviders: (primary: EmbeddingProvider, fallback: EmbeddingProvider) => EmbeddingProvider; export {}; //# sourceMappingURL=embeddings.d.ts.map