Fix TEXTGEN_AI_MODELS full-name mapping and unify model resolution

This commit is contained in:
ي
2026-03-12 15:02:47 +05:30
parent b410ece4ca
commit 4b7f443509
5 changed files with 436 additions and 376 deletions

View File

@@ -0,0 +1,22 @@
"""Structured observability helpers for LLM routing decisions."""
from __future__ import annotations
import hashlib
import json
from typing import Any, Dict, Optional
def _mask_user_id(user_id: Optional[str]) -> str:
if not user_id:
return "anonymous"
return hashlib.sha256(str(user_id).encode("utf-8")).hexdigest()[:12]
def emit_routing_event(logger, event: str, *, user_id: Optional[str] = None, **fields: Any) -> None:
payload: Dict[str, Any] = {
"event": event,
"tenant": _mask_user_id(user_id),
**fields,
}
logger.info("[llm_routing] {}", json.dumps(payload, sort_keys=True, default=str))