Spaces:
Running
Running
File size: 4,933 Bytes
0efb0d1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /**
* 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<string, string[]> = {
'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<string, string[]> = {
'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
}
|