fix(assistant): #91 le SSE renvoie le modele reellement utilise (tag fournisseur - modele complet)
This commit is contained in:
@@ -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,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user