fix(models): keep litellm sync schema-compatible

This commit is contained in:
zap
2026-03-11 20:23:17 +00:00
parent d51250bd23
commit 54f9921953

View File

@@ -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