{% extends "ewoooc_base.html" %} {% block title %}AI 觀測戰情室{% endblock %} {% block ewooo_content %} {% import "admin/_observability_labels.html" as obs_label %} {% set ai = summary.ai_calls if summary.ai_calls else none %} {% set host_count = summary.hosts|length if summary.hosts else 0 %} {% set host_bad = namespace(value=0) %} {% if summary.hosts %} {% for h in summary.hosts %} {% if h.uptime_pct < 90 %}{% set host_bad.value = host_bad.value + 1 %}{% endif %} {% endfor %} {% endif %} {% set risk_count = (summary.budget_alerts|length if summary.budget_alerts else 0) + host_bad.value + (1 if ai and ai.error_rate >= 15 else 0) + (1 if summary.episodes and summary.episodes.pending > 0 else 0) %}
01 指揮總覽 · {{ today }}

AI 觀測戰情室

AI 觀測 風險優先 下一步

私有 AI 中樞的第一入口:模型主機、AI 呼叫、知識學習、工具編排、自癒、預算與 PPT 視覺審核收斂到同一張工作台。所有數字只讀正式資料來源;缺資料時呈現可診斷空狀態。

已自動落地
已接入
主機探測、AI 呼叫、自癒、預算與品質訊號已進總覽。
已驗證
{% if host_bad.value == 0 and (not ai or ai.error_rate < 15) %}正常{% else %}需追蹤{% endif %}
以正式資料回讀主機健康、錯誤率、成本與知識命中。
異動狀態
{{ risk_count }}
即時風險分層;詳細事件保留在各子頁。
下一步
{% if risk_count == 0 %}維持監控{% else %}先處理風險{% endif %}
{% if risk_count == 0 %}持續觀察健康、成本與自癒訊號。{% else %}依風險數進入主機、預算、呼叫或知識頁。{% endif %}
即時風險
{{ risk_count }}
主機、預算、錯誤率、待審核的即時風險數
24 小時呼叫
{{ "{:,}".format(ai.total) if ai else '—' }}
用量:{{ "{:,}".format(ai.tokens) if ai else '—' }}
成本水位
${{ "%.2f"|format(ai.cost_24h) if ai else '0.00' }}
當月累計 ${{ "%.2f"|format(summary.month_cost|default(0)) }}
知識命中率
{{ "%.1f"|format(ai.rag_rate) if ai else '—' }}{% if ai %}%{% endif %}
快取命中 {{ "%.0f"|format(ai.cache_rate) if ai else '—' }}{% if ai %}%{% endif %}
02 主機級聯

三主機生命線

主機健康
{% if summary.hosts %}
{% for h in summary.hosts %}
{{ h.label }} {{ "%.1f"|format(h.uptime_pct) }}%
{{ h.up }}/{{ h.total }} 次探測 · 平均 {{ h.avg_ms }} ms · 24 小時視窗
{% if host_sparkline.get(h.label) %} {% else %}
尚無趨勢資料
{% endif %}
{% endfor %}
{% else %}
主機探測尚無資料。請確認第 029 號資料遷移與排程探測任務是否已啟動。
{% endif %}
{% if summary.budget_alerts %}
預算守門

預算告警

處理預算
{% for b in summary.budget_alerts %} {% endfor %}
週期供應商已花費預算使用率
{{ b.period }} {{ obs_label.provider(b.provider) }} ${{ "%.2f"|format(b.spent) }} ${{ "%.2f"|format(b.budget) }} {{ "%.0f"|format(b.ratio * 100) }}%
{% endif %}
{% endblock %}