(model: ModelEntry)
| 478 | } |
| 479 | |
| 480 | function modelPageMetadata(model: ModelEntry): PageMetadata { |
| 481 | const metadata = model.metadata; |
| 482 | const providerCount = model.providers.length; |
| 483 | const title = `${metadata.name} pricing, providers, and specs | Models.dev`; |
| 484 | const context = metadata.limit?.context |
| 485 | ? `${formatNumber(metadata.limit.context)} token context` |
| 486 | : undefined; |
| 487 | const output = metadata.limit?.output |
| 488 | ? `${formatNumber(metadata.limit.output)} token output` |
| 489 | : undefined; |
| 490 | const cost = |
| 491 | model.minInputCost !== undefined || model.minOutputCost !== undefined |
| 492 | ? `${costSummary(model.minInputCost, model.minOutputCost)} per 1M tokens` |
| 493 | : undefined; |
| 494 | const capabilities = capabilitySummary([ |
| 495 | ["tool calling", metadata.tool_call], |
| 496 | ["reasoning", metadata.reasoning], |
| 497 | ["structured output", metadata.structured_output], |
| 498 | ["temperature control", metadata.temperature], |
| 499 | ]); |
| 500 | const modalities = modalitySummary(metadata.modalities?.input, metadata.modalities?.output); |
| 501 | const description = compactMetadataDescription( |
| 502 | [ |
| 503 | metadata.description, |
| 504 | `Compare ${metadata.name} from ${model.labName} across ${plural(providerCount, "provider")}.`, |
| 505 | factSentence( |
| 506 | [context, output, cost, modalities, capabilities !== "-" ? capabilities : undefined], |
| 507 | "Specs include", |
| 508 | ), |
| 509 | ], |
| 510 | 280, |
| 511 | ); |
| 512 | |
| 513 | return { title, description }; |
| 514 | } |
| 515 | |
| 516 | function providerPageMetadata( |
| 517 | providerId: string, |
no test coverage detected