mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-02 21:42:15 +08:00
221 lines
6.3 KiB
TypeScript
221 lines
6.3 KiB
TypeScript
export const PROVIDER_CONSTANTS = {
|
|
ANTHROPIC: {
|
|
API_VERSION: '2023-06-01',
|
|
BETA_VERSION: 'messages-2023-12-15',
|
|
BASE_URL: 'https://api.anthropic.com',
|
|
DEFAULT_MODEL: 'claude-3-haiku-20240307',
|
|
// Model mapping for simplified model names to their full versions
|
|
MODEL_MAPPING: {
|
|
'claude-3.7-sonnet': 'claude-3-7-sonnet-20250219',
|
|
'claude-3.5-sonnet': 'claude-3-5-sonnet-20241022',
|
|
'claude-3.5-haiku': 'claude-3-5-haiku-20241022',
|
|
'claude-3-opus': 'claude-3-opus-20240229',
|
|
'claude-3-sonnet': 'claude-3-sonnet-20240229',
|
|
'claude-3-haiku': 'claude-3-haiku-20240307',
|
|
'claude-2': 'claude-2.1'
|
|
},
|
|
// These are the currently available models from Anthropic
|
|
AVAILABLE_MODELS: [
|
|
{
|
|
id: 'claude-3-7-sonnet-20250219',
|
|
name: 'Claude 3.7 Sonnet',
|
|
description: 'Most intelligent model with hybrid reasoning capabilities',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-3-5-sonnet-20241022',
|
|
name: 'Claude 3.5 Sonnet',
|
|
description: 'High level of intelligence and capability',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-3-5-haiku-20241022',
|
|
name: 'Claude 3.5 Haiku',
|
|
description: 'Fastest model with high intelligence',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-3-opus-20240229',
|
|
name: 'Claude 3 Opus',
|
|
description: 'Most capable model for highly complex tasks',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-3-sonnet-20240229',
|
|
name: 'Claude 3 Sonnet',
|
|
description: 'Ideal balance of intelligence and speed',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-3-haiku-20240307',
|
|
name: 'Claude 3 Haiku',
|
|
description: 'Fastest and most compact model',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'claude-2.1',
|
|
name: 'Claude 2.1',
|
|
description: 'Previous generation model',
|
|
maxTokens: 8192
|
|
}
|
|
]
|
|
},
|
|
|
|
OPENAI: {
|
|
BASE_URL: 'https://api.openai.com/v1',
|
|
DEFAULT_MODEL: 'gpt-3.5-turbo',
|
|
DEFAULT_EMBEDDING_MODEL: 'text-embedding-ada-002',
|
|
CONTEXT_WINDOW: 16000,
|
|
EMBEDDING_DIMENSIONS: {
|
|
ADA: 1536,
|
|
DEFAULT: 1536
|
|
},
|
|
AVAILABLE_MODELS: [
|
|
{
|
|
id: 'gpt-4o',
|
|
name: 'GPT-4o',
|
|
description: 'Most capable multimodal model',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'gpt-4-turbo',
|
|
name: 'GPT-4 Turbo',
|
|
description: 'Advanced capabilities with higher token limit',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'gpt-4',
|
|
name: 'GPT-4',
|
|
description: 'Original GPT-4 model',
|
|
maxTokens: 8192
|
|
},
|
|
{
|
|
id: 'gpt-3.5-turbo',
|
|
name: 'GPT-3.5 Turbo',
|
|
description: 'Fast and efficient model for most tasks',
|
|
maxTokens: 8192
|
|
}
|
|
]
|
|
},
|
|
|
|
OLLAMA: {
|
|
BASE_URL: 'http://localhost:11434',
|
|
DEFAULT_MODEL: 'llama2',
|
|
BATCH_SIZE: 100,
|
|
CHUNKING: {
|
|
SIZE: 4000,
|
|
OVERLAP: 200
|
|
},
|
|
MODEL_DIMENSIONS: {
|
|
default: 8192,
|
|
llama2: 8192,
|
|
mixtral: 8192,
|
|
'mistral': 8192
|
|
},
|
|
MODEL_CONTEXT_WINDOWS: {
|
|
default: 8192,
|
|
llama2: 8192,
|
|
mixtral: 8192,
|
|
'mistral': 8192
|
|
}
|
|
}
|
|
} as const;
|
|
|
|
// LLM service configuration constants
|
|
export const LLM_CONSTANTS = {
|
|
// Context window sizes (in characters)
|
|
CONTEXT_WINDOW: {
|
|
OLLAMA: 8000,
|
|
OPENAI: 12000,
|
|
ANTHROPIC: 15000,
|
|
VOYAGE: 12000,
|
|
DEFAULT: 6000
|
|
},
|
|
|
|
// Embedding dimensions (verify these with your actual models)
|
|
EMBEDDING_DIMENSIONS: {
|
|
OLLAMA: {
|
|
DEFAULT: 384,
|
|
NOMIC: 768,
|
|
MISTRAL: 1024
|
|
},
|
|
OPENAI: {
|
|
ADA: 1536,
|
|
DEFAULT: 1536
|
|
},
|
|
ANTHROPIC: {
|
|
CLAUDE: 1024,
|
|
DEFAULT: 1024
|
|
},
|
|
VOYAGE: {
|
|
DEFAULT: 1024
|
|
}
|
|
},
|
|
|
|
// Model-specific embedding dimensions for Ollama models
|
|
OLLAMA_MODEL_DIMENSIONS: {
|
|
"llama3": 8192,
|
|
"llama3.1": 8192,
|
|
"mistral": 8192,
|
|
"nomic": 768,
|
|
"mxbai": 1024,
|
|
"nomic-embed-text": 768,
|
|
"mxbai-embed-large": 1024,
|
|
"default": 384
|
|
},
|
|
|
|
// Model-specific context windows for Ollama models
|
|
OLLAMA_MODEL_CONTEXT_WINDOWS: {
|
|
"llama3": 8192,
|
|
"llama3.1": 8192,
|
|
"llama3.2": 8192,
|
|
"mistral": 8192,
|
|
"nomic": 32768,
|
|
"mxbai": 32768,
|
|
"nomic-embed-text": 32768,
|
|
"mxbai-embed-large": 32768,
|
|
"default": 8192
|
|
},
|
|
|
|
// Batch size configuration
|
|
BATCH_SIZE: {
|
|
OPENAI: 10, // OpenAI can handle larger batches efficiently
|
|
ANTHROPIC: 5, // More conservative for Anthropic
|
|
OLLAMA: 1, // Ollama processes one at a time
|
|
DEFAULT: 5 // Conservative default
|
|
},
|
|
|
|
// Chunking parameters
|
|
CHUNKING: {
|
|
DEFAULT_SIZE: 1500,
|
|
OLLAMA_SIZE: 1000,
|
|
DEFAULT_OVERLAP: 100,
|
|
MAX_SIZE_FOR_SINGLE_EMBEDDING: 5000
|
|
},
|
|
|
|
// Search/similarity thresholds
|
|
SIMILARITY: {
|
|
DEFAULT_THRESHOLD: 0.65,
|
|
HIGH_THRESHOLD: 0.75,
|
|
LOW_THRESHOLD: 0.5
|
|
},
|
|
|
|
// Session management
|
|
SESSION: {
|
|
CLEANUP_INTERVAL_MS: 60 * 60 * 1000, // 1 hour
|
|
SESSION_EXPIRY_MS: 12 * 60 * 60 * 1000, // 12 hours
|
|
MAX_SESSION_MESSAGES: 10
|
|
},
|
|
|
|
// Content limits
|
|
CONTENT: {
|
|
MAX_NOTE_CONTENT_LENGTH: 1500,
|
|
MAX_TOTAL_CONTENT_LENGTH: 10000
|
|
},
|
|
|
|
// AI Feature Exclusion
|
|
AI_EXCLUSION: {
|
|
LABEL_NAME: 'aiExclude' // Label used to exclude notes from all AI/LLM features
|
|
}
|
|
};
|