Chat model picker: value-tier emoji + friendly names in /v1/models (🔒 private / 🌱 green / 📖 public), id stays canonical

This commit is contained in:
inference-bot committed 2026-10-02 22:30:11 -06:00
1 parent 1fe0e47802
commit 3cdc250d52
1 file changed
+33
+33
View File
@@ -1701,6 +1701,29 @@ async def opencollective_webhook(request: Request, token: str):
# --- B. Key injector (proxy) ---
# --- Model picker: value-based naming ---
# The chat model picker displays each model's `name` field. We set it to a
# friendly name prefixed with an emoji for the provider's value tier, so the
# flat picker list clusters by what members care about (privacy / green /
# openness). The `id` field is left untouched — it remains the canonical key
# used for actual API calls. Same emoji as the docs (models.md).
MODEL_VALUE_EMOJI = {
"tinfoil": "🔒", # architecturally private (TEE)
"greenpt": "🌱", # 100% renewable energy
"publicai": "📖", # publicly developed, sovereign open models
}
MODEL_FRIENDLY_NAMES = {
"greenpt/deepseek-v4.1-flash": "DeepSeek V4.1",
"tinfoil/deepseek-v4-1-flash": "DeepSeek V4.1",
"tinfoil/glm-5-3-flash": "GLM-5.3 Flash",
"greenpt/glm-5.3-flash": "GLM-5.3 Flash",
"greenpt/glm-5.3": "GLM-5.3",
"tinfoil/gpt-oss-120b": "GPT-OSS 120B",
"publicai/apertus-v1.5-8b": "Apertus 8B",
"publicai/apertus-v1.5-70b": "Apertus 70B",
}
@app.get("/v1/models")
@limiter.limit("60/minute")
async def list_models(request: Request):
@@ -1742,6 +1765,16 @@ async def list_models(request: Request):
payload["data"] = [m for m in payload.get("data", []) if not is_audio_model(m)]
for model in payload.get("data", []):
# Friendly display name: emoji value-tier + short name. The `id`
# stays canonical (Open WebUI keys lookups and requests on it).
mid = model.get("id", "")
provider = mid.split("/", 1)[0] if "/" in mid else ""
emoji = MODEL_VALUE_EMOJI.get(provider, "")
friendly = MODEL_FRIENDLY_NAMES.get(
mid, mid.split("/", 1)[-1] if "/" in mid else mid
)
model["name"] = f"{emoji} {friendly}".strip()
model.setdefault("info", {}).setdefault("meta", {})
model["info"]["meta"].setdefault("capabilities", {})["web_search"] = True
model["info"]["meta"].setdefault("defaultFeatureIds", [])