UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

180 lines (179 loc) • 5.38 kB
/** * Model Configuration System * * Replaces hardcoded model-specific logic with configurable, runtime-updateable configurations. * This addresses GitHub Copilot review comment about making model-specific logic configuration-based. */ import type { ModelTier, ProviderConfiguration } from "../types/index.js"; /** * Model name constants - extracted from hardcoded values for better maintainability * These constants can be overridden by environment variables */ export declare const MODEL_NAMES: { readonly GOOGLE_AI: { readonly FAST: "gemini-2.5-flash"; readonly BALANCED: "gemini-2.5-pro"; readonly QUALITY: "gemini-2.5-pro"; }; readonly GOOGLE_VERTEX: { readonly FAST: "gemini-2.5-flash"; readonly BALANCED: "gemini-2.5-pro"; readonly QUALITY: "gemini-2.5-pro"; }; readonly OPENAI: { readonly FAST: "gpt-4o-mini"; readonly BALANCED: "gpt-4o"; readonly QUALITY: "gpt-4o"; }; readonly ANTHROPIC: { readonly FAST: "claude-3-haiku-20240307"; readonly BALANCED: "claude-3-sonnet-20240229"; readonly QUALITY: "claude-3-5-sonnet-20241022"; }; readonly VERTEX: { readonly FAST: "gemini-2.5-flash"; readonly BALANCED: "gemini-2.5-pro"; readonly QUALITY: "gemini-2.5-pro"; }; readonly BEDROCK: { readonly FAST: "anthropic.claude-3-haiku-20240307-v1:0"; readonly BALANCED: "anthropic.claude-3-sonnet-20240229-v1:0"; readonly QUALITY: "anthropic.claude-3-opus-20240229-v1:0"; }; readonly AZURE: { readonly FAST: "gpt-4o-mini"; readonly BALANCED: "gpt-4o"; readonly QUALITY: "gpt-4o"; }; readonly OLLAMA: { readonly FAST: "llama3.2:latest"; readonly BALANCED: "llama3.1:8b"; readonly QUALITY: "llama3.1:70b"; }; readonly HUGGINGFACE: { readonly FAST: "meta-llama/Llama-3.1-8B-Instruct"; readonly BALANCED: "Qwen/Qwen2.5-72B-Instruct"; readonly QUALITY: "deepseek-ai/DeepSeek-V3"; }; readonly MISTRAL: { readonly FAST: "mistral-small-latest"; readonly BALANCED: "mistral-medium-latest"; readonly QUALITY: "mistral-large-latest"; }; }; /** * Model configuration manager */ export declare class ModelConfigurationManager { private static instance; private configurations; private configSource; private lastUpdated; private constructor(); static getInstance(): ModelConfigurationManager; /** * Create Google AI provider configuration */ private createGoogleAIConfig; /** * Create Google Vertex AI provider configuration */ private createVertexConfig; /** * Create OpenAI provider configuration */ private createOpenAIConfig; /** * Create all provider configurations - centralized approach */ private createAllProviderConfigurations; /** * Create Anthropic provider configuration */ private createAnthropicConfig; /** * Create Vertex alternative provider configuration */ private createVertexAlternativeConfig; /** * Create Bedrock provider configuration */ private createBedrockConfig; /** * Create Azure provider configuration */ private createAzureConfig; /** * Create Ollama provider configuration */ private createOllamaConfig; /** * Create HuggingFace provider configuration */ private createHuggingFaceConfig; /** * Create Mistral provider configuration */ private createMistralConfig; /** * Load default configurations (replaces hardcoded values) */ private loadDefaultConfigurations; /** * Helper method to get configuration value with fallback and validation */ private getConfigValue; /** * Validate configuration values for security and correctness */ private isValidConfigValue; /** * Helper method to get configuration array with fallback * Parses comma-separated environment variable values */ private getConfigArray; /** * Helper method to parse float with fallback */ private parseFloat; /** * Helper method to parse int with fallback */ private parseInt; /** * Helper method to get configuration object with fallback * Parses JSON environment variable values */ private getConfigObject; /** * Get provider configuration */ getProviderConfiguration(provider: string): ProviderConfiguration | null; /** * Get all provider configurations */ getAllConfigurations(): Map<string, ProviderConfiguration>; /** * Get model for specific tier and provider */ getModelForTier(provider: string, tier: ModelTier): string | null; /** * Get cost information for provider and model */ getCostInfo(provider: string, model?: string): { input: number; output: number; } | null; /** * Check if provider is available (has required environment variables) */ isProviderAvailable(provider: string): boolean; /** * Get available providers */ getAvailableProviders(): ProviderConfiguration[]; } /** * Global instance accessor */ export declare const modelConfig: ModelConfigurationManager;