From fee716faab8c8a0989007fd517d857ab6b7f916e Mon Sep 17 00:00:00 2001 From: ciaranbor Date: Fri, 28 Nov 2025 12:21:45 +0000 Subject: [PATCH] Add get_model_card function --- src/exo/master/api.py | 19 +++++++++++++++---- src/exo/shared/models/model_cards.py | 2 -- src/exo/shared/types/models.py | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/exo/master/api.py b/src/exo/master/api.py index b6e95ba6..418f9b02 100644 --- a/src/exo/master/api.py +++ b/src/exo/master/api.py @@ -24,7 +24,7 @@ from exo.master.placement import place_instance as get_instance_placements from exo.shared.apply import apply from exo.shared.election import ElectionMessage from exo.shared.logging import InterceptLogger -from exo.shared.models.model_cards import MODEL_CARDS +from exo.shared.models.model_cards import MODEL_CARDS, ModelCard from exo.shared.models.model_meta import get_model_meta from exo.shared.types.api import ( ChatCompletionChoice, @@ -88,12 +88,23 @@ def chunk_to_response( ) -async def resolve_model_meta(model_id: str) -> ModelMetadata: +def get_model_card(model_id: str) -> ModelCard | None: if model_id in MODEL_CARDS: model_card = MODEL_CARDS[model_id] + return model_card + + for _, model_card in MODEL_CARDS.items(): + if model_id == model_card.model_id: + return model_card + + +async def resolve_model_meta(model_id: str) -> ModelMetadata: + model_card = get_model_card(model_id) + + if model_card is not None: return model_card.metadata - else: - return await get_model_meta(model_id) + + return await get_model_meta(model_id) class API: diff --git a/src/exo/shared/models/model_cards.py b/src/exo/shared/models/model_cards.py index 581e90e9..7c058662 100644 --- a/src/exo/shared/models/model_cards.py +++ b/src/exo/shared/models/model_cards.py @@ -1,5 +1,3 @@ -from typing import Literal - from exo.shared.types.memory import Memory from exo.shared.types.models import ModelId, ModelMetadata, ModelTask from exo.utils.pydantic_ext import CamelCaseModel diff --git a/src/exo/shared/types/models.py b/src/exo/shared/types/models.py index 94167532..35c01331 100644 --- a/src/exo/shared/types/models.py +++ b/src/exo/shared/types/models.py @@ -1,4 +1,5 @@ from enum import Enum + from pydantic import PositiveInt from exo.shared.types.common import Id