fix(assistant): #91 le SSE renvoie le modele reellement utilise (tag fournisseur - modele complet)
CI / lint (push) Successful in 1m24s
CI / security (push) Successful in 58s
CI / test (push) Successful in 2m21s
CI / build (push) Successful in 52s
CI / e2e (push) Successful in 10m38s

This commit is contained in:
2026-09-15 20:46:58 -04:00
parent daf9ff3b2d
commit 19e12fa22e
4 changed files with 89 additions and 2 deletions
+22 -2
View File
@@ -317,6 +317,22 @@ def _resolve_provider_name(requested: str | None) -> str | None:
return None
def _effective_model(provider: str | None, requested: str | None) -> str:
"""Model actually used for a request.
The client may leave `model` empty (provider default) — reporting the raw
request would show nothing in the "provider · model" tag, so the provider's
configured default is returned instead.
"""
if requested:
return requested
if not provider:
return ""
from backend.ai import PROVIDERS
return PROVIDERS.get(provider, {}).get("model", "") or ""
def _tool_event_sse(rec) -> str:
"""Serialize one executed tool call as an SSE ``tool`` event."""
payload = json.dumps(
@@ -407,7 +423,11 @@ async def api_bookslm_chat(
max_tokens=4096,
):
data = json.dumps(
{"token": token, "provider": cfg_name, "model": req.model or ""},
{
"token": token,
"provider": cfg_name,
"model": _effective_model(cfg_name, req.model),
},
ensure_ascii=False,
)
yield f"event: message\ndata: {data}\n\n"
@@ -532,7 +552,7 @@ async def api_bookslm_agent(
{
"token": result.content,
"provider": cfg_name,
"model": req.model or "",
"model": _effective_model(cfg_name, req.model),
"iterations": result.iterations,
"stopped": result.stopped,
},