(props: { model: ModelEntry })
| 812 | } |
| 813 | |
| 814 | function ModelPage(props: { model: ModelEntry }) { |
| 815 | const { model } = props; |
| 816 | const metadata = model.metadata; |
| 817 | |
| 818 | return ( |
| 819 | <Fragment> |
| 820 | <DetailHeader |
| 821 | eyebrow={ |
| 822 | <Fragment> |
| 823 | <a href="/models">Models</a> |
| 824 | <span>/</span> |
| 825 | <a href={labHref(model.labId)}>{model.labName}</a> |
| 826 | </Fragment> |
| 827 | } |
| 828 | title={metadata.name} |
| 829 | description={metadata.description} |
| 830 | code={model.id} |
| 831 | copyValue={model.id} |
| 832 | /> |
| 833 | <Facts |
| 834 | items={[ |
| 835 | ["Lab", <LabLink labId={model.labId} labName={model.labName} />], |
| 836 | ["Family", metadata.family ?? "-"], |
| 837 | ["Providers", model.providers.length], |
| 838 | ["Context", formatNumber(metadata.limit?.context)], |
| 839 | ["Output limit", formatNumber(metadata.limit?.output)], |
| 840 | ["Knowledge", knowledgeText(metadata.knowledge)], |
| 841 | ["Release", metadata.release_date ?? "-"], |
| 842 | ["Updated", metadata.last_updated ?? "-"], |
| 843 | ["Weights", <WeightsValue metadata={metadata} />], |
| 844 | ["Input", <FactModalities modalities={metadata.modalities?.input} />], |
| 845 | ["Output types", <FactModalities modalities={metadata.modalities?.output} />], |
| 846 | [ |
| 847 | "Capabilities", |
| 848 | capabilitySummary([ |
| 849 | ["tools", metadata.tool_call], |
| 850 | ["reasoning", metadata.reasoning], |
| 851 | ["structured", metadata.structured_output], |
| 852 | ["temperature", metadata.temperature], |
| 853 | ]), |
| 854 | ], |
| 855 | ]} |
| 856 | /> |
| 857 | <TableSection |
| 858 | id="providers" |
| 859 | title="Providers" |
| 860 | count={model.providers.length} |
| 861 | columns={10} |
| 862 | > |
| 863 | <ProviderModelsTable models={model.providers} mode="model" /> |
| 864 | </TableSection> |
| 865 | </Fragment> |
| 866 | ); |
| 867 | } |
| 868 | |
| 869 | function ProviderPage(props: { |
| 870 | providerId: string; |
nothing calls this directly
no test coverage detected