/** * Priority Models List (TypeScript version) * Basic model records for direct Prisma ingestion */ export interface PriorityModel { model_id: string provider: string family: string | null release_date: string | null tier: string | null } function extractFamily(modelId: string, provider: string): string { // GPT family if (modelId.includes('GPT')) { if (modelId.includes('GPT-4')) return 'GPT-4' if (modelId.includes('GPT-3')) return 'GPT-3' return 'GPT' } // Claude family if (modelId.includes('Claude')) { if (modelId.includes('3.5')) return 'Claude 3.5' if (modelId.includes('3')) return 'Claude 3' if (modelId.includes('2')) return 'Claude 2' return 'Claude' } // Gemini family if (modelId.includes('Gemini')) { if (modelId.includes('2.0') || modelId.includes('Next')) return 'Gemini 2.0' if (modelId.includes('1.5')) return 'Gemini 1.5' return 'Gemini 1.0' } // Llama family (check more specific first) if (modelId.includes('Llama')) { if (modelId.includes('3.1')) return 'LLaMA 3.1' if (modelId.includes('3-') || modelId.includes('3 ')) return 'LLaMA 3' // Must have dash or space to avoid matching "13B" if (modelId.includes('2-') || modelId.includes('2 ')) return 'LLaMA 2' // Must have dash or space to avoid matching "12B", "13B" if (modelId.includes('1-') || modelId.includes('1 ')) return 'LLaMA 1' // Must have dash or space // Fallback: check for version numbers in different formats if (modelId.match(/Llama[-\s]?3/)) return 'LLaMA 3' if (modelId.match(/Llama[-\s]?2/)) return 'LLaMA 2' if (modelId.match(/Llama[-\s]?1/)) return 'LLaMA 1' return 'LLaMA' } // Qwen family if (modelId.includes('Qwen')) { if (modelId.includes('2.5')) return 'Qwen 2.5' if (modelId.includes('2')) return 'Qwen 2' if (modelId.includes('1.5')) return 'Qwen 1.5' return 'Qwen 1' } // Mistral/Mixtral if (modelId.includes('Mixtral')) return 'Mixtral' if (modelId.includes('Mistral')) return 'Mistral' // Grok if (modelId.includes('Grok')) return 'Grok' // DeepSeek if (modelId.includes('DeepSeek')) return 'DeepSeek' // ERNIE if (modelId.includes('ERNIE')) return 'ERNIE' // Falcon if (modelId.includes('Falcon')) return 'Falcon' // Default: use provider as family return provider } export function getAllPriorityModels(): PriorityModel[] { const models: PriorityModel[] = [] // Tier 1: Frontier Closed Models const frontierClosed: Record = { 'OpenAI': ['GPT-3', 'GPT-3.5', 'GPT-4', 'GPT-4 Turbo', 'GPT-4o', 'GPT-4.1', 'GPT-4.1 Preview', 'GPT-4.1 Mini', 'o1', 'o3'], 'Anthropic': ['Claude 1', 'Claude 2', 'Claude 2.1', 'Claude 3 Haiku', 'Claude 3 Sonnet', 'Claude 3 Opus', 'Claude 3.5 Haiku', 'Claude 3.5 Sonnet', 'Claude 3.5 Opus'], 'Google DeepMind': ['PaLM', 'PaLM-2', 'Gemini 1.0 Nano', 'Gemini 1.0 Pro', 'Gemini 1.0 Ultra', 'Gemini 1.5 Flash', 'Gemini 1.5 Pro', 'Gemini 1.5 Ultra', 'Gemini 2.0', 'Gemini Next'], } // Tier 1B: Major Open-Weight Models const openWeight: Record = { 'Meta': ['Llama-1-7B', 'Llama-1-13B', 'Llama-1-30B', 'Llama-1-65B', 'Llama-2-7B', 'Llama-2-13B', 'Llama-2-70B', 'Llama-3-8B', 'Llama-3-70B', 'Llama-3.1-8B', 'Llama-3.1-70B', 'Llama-3.1-405B'], 'Mistral AI': ['Mistral-7B', 'Mixtral-8x7B', 'Mixtral-8x22B', 'Mistral Nemo', 'Mistral Small', 'Mistral Medium', 'Mistral Large'], 'xAI': ['Grok-1', 'Grok-1.5', 'Grok-1.5 Vision', 'Grok-2'], } // Add frontier closed models for (const [provider, modelList] of Object.entries(frontierClosed)) { for (const modelId of modelList) { models.push({ model_id: modelId, provider, family: extractFamily(modelId, provider), release_date: null, // Will be enriched by Python pipeline tier: 'Tier 1: Frontier Closed', }) } } // Add open weight models for (const [provider, modelList] of Object.entries(openWeight)) { for (const modelId of modelList) { models.push({ model_id: modelId, provider, family: extractFamily(modelId, provider), release_date: null, tier: 'Tier 1B: Open Weight', }) } } // Add a few more key models models.push( { model_id: 'command', provider: 'Cohere', family: 'Command', release_date: '2023-03-15', tier: 'Tier 2' }, { model_id: 'command-r', provider: 'Cohere', family: 'Command', release_date: '2024-03-11', tier: 'Tier 1' }, { model_id: 'command-r-plus', provider: 'Cohere', family: 'Command', release_date: '2024-03-11', tier: 'Tier 1' }, { model_id: 'jurassic-2-ultra', provider: 'AI21 Labs', family: 'Jurassic', release_date: '2023-03-01', tier: 'Tier 1' }, { model_id: 'jurassic-2-mid', provider: 'AI21 Labs', family: 'Jurassic', release_date: '2023-03-01', tier: 'Tier 2' }, ) return models }