Add detailed logging for session runtime configuration and service resolution

This commit is contained in:
Xin Wang
2026-02-26 11:02:15 +08:00
parent f77f7c7531
commit 8bc21c7874

View File

@@ -306,6 +306,29 @@ class Session:
workflow_runtime = self._bootstrap_workflow(raw_metadata)
server_runtime = await self._load_server_runtime_metadata(raw_metadata, workflow_runtime)
client_runtime = self._sanitize_client_metadata(raw_metadata)
requested_assistant_id = (
workflow_runtime.get("assistantId")
or raw_metadata.get("assistantId")
or raw_metadata.get("appId")
or raw_metadata.get("app_id")
)
if server_runtime:
logger.info(
"Session {} loaded trusted runtime config from backend "
"(requested_assistant_id={}, resolved_assistant_id={}, configVersionId={}, has_services={})",
self.id,
requested_assistant_id,
server_runtime.get("assistantId"),
server_runtime.get("configVersionId") or server_runtime.get("config_version_id"),
isinstance(server_runtime.get("services"), dict),
)
else:
logger.warning(
"Session {} missing trusted backend runtime config "
"(requested_assistant_id={}); falling back to engine defaults + safe client overrides",
self.id,
requested_assistant_id,
)
metadata = self._merge_runtime_metadata(server_runtime, self._sanitize_untrusted_runtime_metadata(workflow_runtime))
metadata = self._merge_runtime_metadata(metadata, client_runtime)
@@ -314,6 +337,27 @@ class Session:
# Apply runtime service/prompt overrides from backend if provided
self.pipeline.apply_runtime_overrides(metadata)
resolved_preview = self.pipeline.resolved_runtime_config()
resolved_services = resolved_preview.get("services", {}) if isinstance(resolved_preview, dict) else {}
llm_cfg = resolved_services.get("llm", {}) if isinstance(resolved_services, dict) else {}
asr_cfg = resolved_services.get("asr", {}) if isinstance(resolved_services, dict) else {}
tts_cfg = resolved_services.get("tts", {}) if isinstance(resolved_services, dict) else {}
logger.info(
"Session {} effective runtime services "
"(assistantId={}, configVersionId={}, output_mode={}, "
"llm={}/{}, asr={}/{}, tts={}/{}, tts_enabled={})",
self.id,
metadata.get("assistantId") or metadata.get("appId") or metadata.get("app_id"),
metadata.get("configVersionId") or metadata.get("config_version_id"),
(resolved_preview.get("output") or {}).get("mode") if isinstance(resolved_preview, dict) else None,
llm_cfg.get("provider"),
llm_cfg.get("model"),
asr_cfg.get("provider"),
asr_cfg.get("model"),
tts_cfg.get("provider"),
tts_cfg.get("model"),
tts_cfg.get("enabled"),
)
# Start duplex pipeline
if not self._pipeline_started: