fix(models): keep litellm sync schema-compatible
This commit is contained in:
@@ -232,6 +232,7 @@ def official_alias_metadata(model_id: str, official_models: dict[str, Any]) -> d
|
||||
|
||||
def merge_metadata(existing: dict[str, Any], official: dict[str, Any], litellm_meta: dict[str, Any], model_id: str) -> tuple[dict[str, Any], str]:
|
||||
merged = dict(existing)
|
||||
merged.pop("metadataSource", None)
|
||||
merged["id"] = model_id
|
||||
merged.setdefault("name", existing.get("name") if isinstance(existing.get("name"), str) else model_id)
|
||||
|
||||
@@ -255,15 +256,14 @@ def merge_metadata(existing: dict[str, Any], official: dict[str, Any], litellm_m
|
||||
elif field == "reasoning":
|
||||
merged[field] = False
|
||||
|
||||
merged["metadataSource"] = source_used
|
||||
return merged, source_used
|
||||
|
||||
|
||||
def build_sync_report(models: list[dict[str, Any]], official_meta: dict[str, Any]):
|
||||
fallback = [m["id"] for m in models if m.get("metadataSource") == "fallback-default"]
|
||||
from_official = [m["id"] for m in models if str(m.get("metadataSource", "")).startswith("official-")]
|
||||
alias_derived = [m["id"] for m in models if str(m.get("metadataSource", "")).startswith("alias:")]
|
||||
unresolved = [m["id"] for m in models if m.get("metadataSource") == "fallback-default"]
|
||||
def build_sync_report(models: list[dict[str, Any]], official_meta: dict[str, Any], source_map: dict[str, str]):
|
||||
fallback = [mid for mid, src in source_map.items() if src == "fallback-default"]
|
||||
from_official = [mid for mid, src in source_map.items() if src.startswith("official-")]
|
||||
alias_derived = [mid for mid, src in source_map.items() if src.startswith("alias:")]
|
||||
unresolved = list(fallback)
|
||||
return {
|
||||
"total": len(models),
|
||||
"officialCount": len(from_official),
|
||||
@@ -308,14 +308,16 @@ def main():
|
||||
}
|
||||
|
||||
new_models = []
|
||||
source_map: dict[str, str] = {}
|
||||
for mid in model_ids:
|
||||
existing = dict(existing_by_id.get(mid, {}))
|
||||
official = official_alias_metadata(mid, official_models)
|
||||
litellm_meta = metadata_from_litellm(mid, model_rows, model_info)
|
||||
merged, _ = merge_metadata(existing, official, litellm_meta, mid)
|
||||
merged, source_used = merge_metadata(existing, official, litellm_meta, mid)
|
||||
new_models.append(merged)
|
||||
source_map[mid] = source_used
|
||||
|
||||
report = build_sync_report(new_models, official_models)
|
||||
report = build_sync_report(new_models, official_models, source_map)
|
||||
if info_error:
|
||||
report["modelInfoWarning"] = info_error
|
||||
|
||||
|
||||
Reference in New Issue
Block a user