@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
TypeScript
/**
* 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;