This commit is contained in:
marko-kraemer 2025-08-19 17:34:44 -07:00
parent 60059eaa9b
commit 5b20676853
2 changed files with 35 additions and 61 deletions

View File

@ -50,7 +50,7 @@ MODELS = {
"output_cost_per_million_tokens": 3.00
},
"context_window": 200_000, # 200k tokens
"tier_availability": ["free", "paid"]
"tier_availability": ["paid"]
},
"xai/grok-4": {
"aliases": ["grok-4", "x-ai/grok-4"],

View File

@ -45,37 +45,22 @@ export interface CustomModel {
// SINGLE SOURCE OF TRUTH for all model data - aligned with backend constants
export const MODELS = {
// Premium tier models (require subscription)
// Premium tier models (require subscription) - using aliases from backend
'claude-sonnet-4': {
tier: 'premium',
priority: 100,
recommended: true,
lowQuality: false
},
// 'gemini-flash-2.5': {
// tier: 'free',
// priority: 70,
// recommended: false,
// lowQuality: false
// },
// 'qwen3': {
// tier: 'free',
// priority: 60,
// recommended: false,
// lowQuality: false
// },
// Free tier models (available to all users)
'gpt-5-mini': {
tier: 'free',
priority: 100,
recommended: true,
'gpt-5': {
tier: 'premium',
priority: 99,
recommended: false,
lowQuality: false
},
'moonshotai/kimi-k2': {
tier: 'free',
priority: 90,
'google/gemini-2.5-pro': {
tier: 'premium',
priority: 96,
recommended: false,
lowQuality: false
},
@ -91,37 +76,26 @@ export const MODELS = {
recommended: false,
lowQuality: false
},
'google/gemini-2.5-pro': {
tier: 'premium',
priority: 96,
recommended: false,
lowQuality: false
},
'sonnet-3.5': {
tier: 'premium',
priority: 90,
recommended: false,
lowQuality: false
},
'gpt-5': {
tier: 'premium',
priority: 99,
recommended: false,
lowQuality: false
},
'gemini-2.5-flash:thinking': {
tier: 'premium',
priority: 84,
// Free tier models (available to all users)
'gpt-5-mini': {
tier: 'free',
priority: 100,
recommended: true,
lowQuality: false
},
'moonshotai/kimi-k2': {
tier: 'premium', // Updated to match backend - this is actually paid tier
priority: 85,
recommended: false,
lowQuality: false
},
// 'deepseek/deepseek-chat-v3-0324': {
// tier: 'free',
// priority: 75,
// recommended: false,
// lowQuality: false
// },
};
// Helper to check if a user can access a model based on subscription status
@ -214,22 +188,22 @@ export const useModelSelection = () => {
const MODEL_OPTIONS = useMemo(() => {
let models = [];
// Default models if API data not available
if (!modelsData?.models || isLoadingModels) {
models = [
{
id: DEFAULT_FREE_MODEL_ID,
label: 'GPT-5 Mini',
requiresSubscription: false,
priority: MODELS[DEFAULT_FREE_MODEL_ID]?.priority || 50
},
{
id: DEFAULT_PREMIUM_MODEL_ID,
label: 'Sonnet 4',
requiresSubscription: true,
priority: MODELS[DEFAULT_PREMIUM_MODEL_ID]?.priority || 100
},
];
// Default models if API data not available
if (!modelsData?.models || isLoadingModels) {
models = [
{
id: DEFAULT_FREE_MODEL_ID,
label: 'GPT-5 Mini',
requiresSubscription: false,
priority: MODELS[DEFAULT_FREE_MODEL_ID]?.priority || 100
},
{
id: DEFAULT_PREMIUM_MODEL_ID,
label: 'Claude Sonnet 4',
requiresSubscription: true,
priority: MODELS[DEFAULT_PREMIUM_MODEL_ID]?.priority || 100
},
];
} else {
// Process API-provided models
models = modelsData.models.map(model => {