Ctrl K
ComunidadGuías…

butler/gateway/media_diagnostic_ops.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Gateway inbound media lines for /诊断 (L1/L9 diagnostic only)."""

from __future__ import annotations

from butler.core.best_effort import safe_best_effort


def extend_gateway_media_diagnostic_lines(lines: list[str]) -> None:
    def _run() -> None:
        from butler.gateway.inbound_media import inbound_media_enabled
        from butler.gateway.media_telemetry import format_media_diagnostic_lines
        from butler.configuration.gateway import (
            format_gateway_inbound_config_source_line,
            format_gateway_queue_config_source_line,
            resolve_gateway_inbound_config,
            vision_api_host,
            vision_endpoint_path,
        )

        lines.append(format_gateway_inbound_config_source_line())
        lines.append(format_gateway_queue_config_source_line())
        if inbound_media_enabled():
            gw = resolve_gateway_inbound_config()
            lines.append(
                f"  gateway(识图): {gw.vision.provider} VLM @ "
                f"{vision_api_host()}/v1/{vision_endpoint_path()}"
            )
            ilink = "iLink 优先" if gw.speech.prefer_ilink_text else "本地 STT 优先"
            lines.append(
                f"  gateway(语音): {ilink}; STT={gw.speech.stt_provider}; "
                f"whisper={gw.speech.whisper_model}"
            )
            lines.extend(format_media_diagnostic_lines())

    result = safe_best_effort(_run, label="gateway.media_diagnostic", default=False)
    if result is False:
        lines.append("  gateway(入站媒体): 不可用")


__all__ = ["extend_gateway_media_diagnostic_lines"]