Files
zclaw_openfang/desktop/src/constants/models.ts
iven 5e937d0ce2
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
refactor(ui): 移除空壳行业资讯 Tab + Provider URL 去重
- SimpleSidebar: 移除空壳"行业资讯" Tab 和 Newspaper icon import
- ModelsAPI.tsx: AVAILABLE_PROVIDERS 引用 LLM_PROVIDER_URLS 常量
- models.ts: PROVIDER_DEFAULTS 引用 api-urls.ts,消除重复 URL 定义
- 所有 Provider URL 现在统一在 api-urls.ts 维护
2026-04-11 02:59:16 +08:00

115 lines
2.6 KiB
TypeScript

/**
* Model Default Constants - Single Source of Truth
*
* All model-related defaults should reference this file.
* Backend (Rust) should use the same values in kernel_commands.rs
*/
import { LLM_PROVIDER_URLS } from './api-urls';
// === Default Model Configuration ===
/**
* Default model ID when user hasn't configured one
* Using gpt-4o-mini as it's cost-effective and capable
*/
export const DEFAULT_MODEL_ID = 'gpt-4o-mini' as const;
/**
* Default provider when user hasn't configured one
*/
export const DEFAULT_PROVIDER = 'openai' as const;
/**
* Default max tokens for responses
*/
export const DEFAULT_MAX_TOKENS = 4096 as const;
/**
* Default temperature for responses
*/
export const DEFAULT_TEMPERATURE = 0.7 as const;
/**
* Default base URL for OpenAI API
*/
export const DEFAULT_OPENAI_BASE_URL = LLM_PROVIDER_URLS.OPENAI as string;
/**
* Default base URL for Anthropic API
*/
export const DEFAULT_ANTHROPIC_BASE_URL = LLM_PROVIDER_URLS.ANTHROPIC as string;
// === Provider-Specific Defaults ===
export const PROVIDER_DEFAULTS = {
openai: {
baseUrl: LLM_PROVIDER_URLS.OPENAI,
defaultModel: 'gpt-4o-mini',
},
anthropic: {
baseUrl: LLM_PROVIDER_URLS.ANTHROPIC,
defaultModel: 'claude-sonnet-4-20250514',
},
zhipu: {
baseUrl: LLM_PROVIDER_URLS.ZHIPU,
defaultModel: 'glm-4-flash-250414',
},
zhipu_coding: {
baseUrl: LLM_PROVIDER_URLS.ZHIPU_CODING,
defaultModel: 'glm-4-flash-250414',
},
kimi: {
baseUrl: LLM_PROVIDER_URLS.KIMI,
defaultModel: 'moonshot-v1-8k',
},
kimi_coding: {
baseUrl: LLM_PROVIDER_URLS.KIMI_CODING,
defaultModel: 'kimi-for-coding',
},
qwen: {
baseUrl: LLM_PROVIDER_URLS.QWEN,
defaultModel: 'qwen-turbo',
},
qwen_coding: {
baseUrl: LLM_PROVIDER_URLS.QWEN_CODING,
defaultModel: 'qwen3-coder-next',
},
deepseek: {
baseUrl: LLM_PROVIDER_URLS.DEEPSEEK,
defaultModel: 'deepseek-chat',
},
gemini: {
baseUrl: LLM_PROVIDER_URLS.GEMINI,
defaultModel: 'gemini-2.0-flash',
},
local: {
baseUrl: LLM_PROVIDER_URLS.OLLAMA,
defaultModel: 'llama3',
},
} as const;
export type ProviderType = keyof typeof PROVIDER_DEFAULTS;
// === Helper Functions ===
/**
* Get provider default configuration
*/
export function getProviderDefaults(provider: string): {
baseUrl: string;
defaultModel: string;
} {
return PROVIDER_DEFAULTS[provider as ProviderType] || {
baseUrl: DEFAULT_OPENAI_BASE_URL,
defaultModel: DEFAULT_MODEL_ID,
};
}
/**
* Check if a provider is a coding plan provider
*/
export function isCodingProvider(provider: string): boolean {
return provider.endsWith('-coding') || provider === 'zhipu-coding';
}