grok-4.5 @ low · api

apilow
config
grok-4.5-eff-low--api--official--dev
batch
2026-07-19--unified
transport
xai-official-api
protocol
api · metered
served model
grok-4.5
采集于
2026年7月18日 11:54 · N=4
variant
live
slot 0 · P-q · sandboxed iframe
grok-4.5 @low · api P-q slot 0 截图

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。

similarity 邻居

限于 session 2026-07-19--unified

similarity 衡量本 session 内的趋同程度 —— 不是质量。

Fidelity —— 卡片展示的数据对不对?

  • namematch
  • conditionmatch
  • datematch
  • max tempmismatch展示值:17.4
  • min tempmismatch展示值:17.2
  • hourlymatchcoverage 22/24 · 22 命中 · 0 不符 · 2 未展示
  • request sidematch0 处违规

extractor fidelity-extractor-v1+Berlin-2026-07-15

源码 —— 原始模型输出,一字节未改

下载 card.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weather Card</title>
<style>
  :root {
    --bg-deep: #0b1220;
    --bg-mid: #152238;
    --glass: rgba(255, 255, 255, 0.08);
    --glass-border: rgba(255, 255, 255, 0.14);
    --text: #f4f7fb;
    --muted: #9aadc2;
    --accent: #5ec8ff;
    --accent-warm: #ffb454;
    --danger: #ff6b7a;
    --shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
    --radius: 28px;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }

  html, body {
    width: 1280px;
    height: 800px;
    overflow: hidden;
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    color: var(--text);
    background: var(--bg-deep);
  }

  body {
    display: grid;
    place-items: center;
    background:
      radial-gradient(1200px 600px at 15% 10%, rgba(94, 200, 255, 0.18), transparent 55%),
      radial-gradient(900px 500px at 85% 90%, rgba(255, 180, 84, 0.12), transparent 50%),
      radial-gradient(700px 400px at 60% 30%, rgba(120, 90, 255, 0.1), transparent 45%),
      linear-gradient(160deg, #0a101c 0%, #121c30 45%, #0d1524 100%);
  }

  .card {
    width: 920px;
    min-height: 560px;
    padding: 40px 48px 36px;
    border-radius: var(--radius);
    background:
      linear-gradient(145deg, rgba(255,255,255,0.1), rgba(255,255,255,0.03)),
      var(--glass);
    border: 1px solid var(--glass-border);
    box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.12);
    backdrop-filter: blur(22px);
    position: relative;
    overflow: hidden;
  }

  .card::before {
    content: "";
    position: absolute;
    inset: -40% auto auto -20%;
    width: 420px;
    height: 420px;
    background: radial-gradient(circle, rgba(94,200,255,0.22), transparent 65%);
    pointer-events: none;
  }

  .card::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(255,180,84,0.16), transparent 70%);
    pointer-events: none;
  }

  .header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 28px;
    position: relative;
    z-index: 1;
  }

  .location {
    font-size: 2rem;
    font-weight: 650;
    letter-spacing: -0.02em;
    line-height: 1.15;
  }

  .date-label {
    margin-top: 8px;
    color: var(--muted);
    font-size: 1.05rem;
    font-weight: 500;
  }

  .badge {
    flex-shrink: 0;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(94, 200, 255, 0.12);
    border: 1px solid rgba(94, 200, 255, 0.28);
    color: var(--accent);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .main {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 32px;
    align-items: center;
    margin-bottom: 36px;
    position: relative;
    z-index: 1;
  }

  .condition-block {
    display: flex;
    align-items: center;
    gap: 22px;
  }

  .icon-wrap {
    width: 112px;
    height: 112px;
    border-radius: 28px;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, rgba(255,255,255,0.14), rgba(255,255,255,0.03));
    border: 1px solid rgba(255,255,255,0.12);
    box-shadow: 0 12px 30px rgba(0,0,0,0.2);
    font-size: 3.4rem;
  }

  .condition-text {
    font-size: 1.55rem;
    font-weight: 600;
    letter-spacing: -0.01em;
  }

  .condition-sub {
    margin-top: 6px;
    color: var(--muted);
    font-size: 0.95rem;
  }

  .temps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }

  .temp-box {
    padding: 18px 20px;
    border-radius: 18px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255,255,255,0.08);
  }

  .temp-box .label {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 8px;
  }

  .temp-box .value {
    font-size: 2.35rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
  }

  .temp-box.max .value { color: var(--accent-warm); }
  .temp-box.min .value { color: var(--accent); }
  .temp-box .unit {
    font-size: 1.1rem;
    font-weight: 500;
    opacity: 0.75;
    margin-left: 2px;
  }

  .hourly-section {
    position: relative;
    z-index: 1;
  }

  .hourly-title {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--muted);
    font-weight: 650;
    margin-bottom: 14px;
  }

  .hourly-scroll {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.2) transparent;
  }

  .hour-pill {
    flex: 0 0 auto;
    width: 72px;
    padding: 14px 8px;
    border-radius: 16px;
    text-align: center;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
  }

  .hour-pill:hover {
    background: rgba(94, 200, 255, 0.12);
    border-color: rgba(94, 200, 255, 0.28);
    transform: translateY(-2px);
  }

  .hour-pill .h {
    font-size: 0.78rem;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 8px;
  }

  .hour-pill .t {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
  }

  .state {
    position: relative;
    z-index: 1;
    min-height: 280px;
    display: grid;
    place-items: center;
    text-align: center;
  }

  .state .msg {
    font-size: 1.25rem;
    color: var(--muted);
    max-width: 420px;
    line-height: 1.5;
  }

  .state.error .msg { color: var(--danger); }

  .spinner {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,0.12);
    border-top-color: var(--accent);
    animation: spin 0.8s linear infinite;
    margin: 0 auto 18px;
  }

  @keyframes spin { to { transform: rotate(360deg); } }

  .footer-meta {
    margin-top: 22px;
    font-size: 0.75rem;
    color: rgba(154, 173, 194, 0.7);
    letter-spacing: 0.02em;
    position: relative;
    z-index: 1;
  }
</style>
</head>
<body>
  <div class="card" id="card">
    <div class="state" id="state">
      <div>
        <div class="spinner"></div>
        <p class="msg">Loading weather…</p>
      </div>
    </div>
  </div>

<script>
(function () {
  const WMO = {
    0:  { label: "Clear sky", icon: "☀️" },
    1:  { label: "Mainly clear", icon: "🌤️" },
    2:  { label: "Partly cloudy", icon: "⛅" },
    3:  { label: "Overcast", icon: "☁️" },
    45: { label: "Fog", icon: "🌫️" },
    48: { label: "Depositing rime fog", icon: "🌫️" },
    51: { label: "Light drizzle", icon: "🌦️" },
    53: { label: "Moderate drizzle", icon: "🌦️" },
    55: { label: "Dense drizzle", icon: "🌧️" },
    56: { label: "Light freezing drizzle", icon: "🌧️" },
    57: { label: "Dense freezing drizzle", icon: "🌧️" },
    61: { label: "Slight rain", icon: "🌧️" },
    63: { label: "Moderate rain", icon: "🌧️" },
    65: { label: "Heavy rain", icon: "🌧️" },
    66: { label: "Light freezing rain", icon: "🌧️" },
    67: { label: "Heavy freezing rain", icon: "🌧️" },
    71: { label: "Slight snow", icon: "🌨️" },
    73: { label: "Moderate snow", icon: "🌨️" },
    75: { label: "Heavy snow", icon: "❄️" },
    77: { label: "Snow grains", icon: "❄️" },
    80: { label: "Slight rain showers", icon: "🌦️" },
    81: { label: "Moderate rain showers", icon: "🌧️" },
    82: { label: "Violent rain showers", icon: "⛈️" },
    85: { label: "Slight snow showers", icon: "🌨️" },
    86: { label: "Heavy snow showers", icon: "❄️" },
    95: { label: "Thunderstorm", icon: "⛈️" },
    96: { label: "Thunderstorm with slight hail", icon: "⛈️" },
    99: { label: "Thunderstorm with heavy hail", icon: "⛈️" }
  };

  function todayUTC() {
    const d = new Date();
    const y = d.getUTCFullYear();
    const m = String(d.getUTCMonth() + 1).padStart(2, "0");
    const day = String(d.getUTCDate()).padStart(2, "0");
    return y + "-" + m + "-" + day;
  }

  function parseParams() {
    const q = new URLSearchParams(window.location.search);
    const lat = parseFloat(q.get("lat"));
    const lon = parseFloat(q.get("lon"));
    return {
      lat: Number.isFinite(lat) ? lat : 52.52,
      lon: Number.isFinite(lon) ? lon : 13.405,
      name: q.get("name") || "Berlin",
      date: q.get("date") || todayUTC()
    };
  }

  function formatDisplayDate(iso) {
    const parts = iso.split("-").map(Number);
    const d = new Date(Date.UTC(parts[0], parts[1] - 1, parts[2]));
    return d.toLocaleDateString("en-US", {
      weekday: "long",
      year: "numeric",
      month: "long",
      day: "numeric",
      timeZone: "UTC"
    });
  }

  function weatherInfo(code) {
    return WMO[code] || { label: "Unknown (" + code + ")", icon: "🌡️" };
  }

  function showError(message) {
    const card = document.getElementById("card");
    card.innerHTML =
      '<div class="state error"><div><p class="msg">' +
      escapeHtml(message) +
      "</p></div></div>";
  }

  function escapeHtml(s) {
    return String(s)
      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;");
  }

  function buildUrl(base, params) {
    const u = new URL(base, window.location.origin);
    Object.keys(params).forEach(function (k) {
      u.searchParams.set(k, params[k]);
    });
    return u.pathname + u.search;
  }

  async function load() {
    const p = parseParams();
    const today = todayUTC();
    const isPast = p.date < today;
    const endpoint = isPast ? "/api/om/archive" : "/api/om/forecast";

    const query = {
      latitude: p.lat,
      longitude: p.lon,
      daily: "temperature_2m_max,temperature_2m_min,weather_code",
      hourly: "temperature_2m",
      timezone: "UTC",
      temperature_unit: "celsius",
      start_date: p.date,
      end_date: p.date
    };

    let data;
    try {
      const res = await fetch(buildUrl(endpoint, query));
      if (!res.ok) throw new Error("HTTP " + res.status);
      data = await res.json();
      if (data.error) throw new Error(data.reason || "API error");
    } catch (err) {
      showError("Weather data could not be loaded. Please try again later.");
      return;
    }

    const daily = data.daily;
    const hourly = data.hourly;
    if (
      !daily ||
      !daily.time ||
      !daily.time.length ||
      daily.temperature_2m_max[0] == null ||
      daily.temperature_2m_min[0] == null
    ) {
      showError("Weather data could not be loaded for this date and location.");
      return;
    }

    const maxT = daily.temperature_2m_max[0];
    const minT = daily.temperature_2m_min[0];
    const code = daily.weather_code[0];
    const w = weatherInfo(code);

    const hours = [];
    if (hourly && hourly.time && hourly.temperature_2m) {
      for (let i = 0; i < hourly.time.length; i++) {
        if (hourly.time[i].startsWith(p.date)) {
          hours.push({
            time: hourly.time[i],
            temp: hourly.temperature_2m[i]
          });
        }
      }
    }

    const hourHtml = hours
      .map(function (h) {
        const hh = h.time.slice(11, 13);
        const t =
          h.temp == null ? "—" : (Math.round(h.temp * 10) / 10).toFixed(1);
        return (
          '<div class="hour-pill"><div class="h">' +
          hh +
          ':00</div><div class="t">' +
          t +
          "°</div></div>"
        );
      })
      .join("");

    const card = document.getElementById("card");
    card.innerHTML =
      '<div class="header">' +
      '<div><div class="location">' +
      escapeHtml(p.name) +
      '</div><div class="date-label">' +
      escapeHtml(formatDisplayDate(p.date)) +
      '</div></div><div class="badge">' +
      (isPast ? "Historical" : p.date === today ? "Today" : "Forecast") +
      "</div></div>" +
      '<div class="main">' +
      '<div class="condition-block">' +
      '<div class="icon-wrap" aria-hidden="true">' +
      w.icon +
      '</div><div><div class="condition-text">' +
      escapeHtml(w.label) +
      '</div><div class="condition-sub">WMO code ' +
      code +
      " · UTC</div></div></div>" +
      '<div class="temps">' +
      '<div class="temp-box max"><div class="label">High</div><div class="value">' +
      (Math.round(maxT * 10) / 10).toFixed(1) +
      '<span class="unit">°C</span></div></div>' +
      '<div class="temp-box min"><div class="label">Low</div><div class="value">' +
      (Math.round(minT * 10) / 10).toFixed(1) +
      '<span class="unit">°C</span></div></div>' +
      "</div></div>" +
      '<div class="hourly-section"><div class="hourly-title">Hourly temperature</div>' +
      '<div class="hourly-scroll">' +
      (hourHtml ||
        '<div class="hour-pill"><div class="h">—</div><div class="t">n/a</div></div>') +
      "</div></div>" +
      '<div class="footer-meta">' +
      escapeHtml(p.lat.toFixed(4) + ", " + p.lon.toFixed(4)) +
      " · " +
      escapeHtml(p.date) +
      "</div>";
  }

  load();
})();
</script>
</body>
</html>

L1 —— 廉价的确定性描述量

bytes 总计13,271html / css / js420 / 6,006 / 6,845
dom 节点13dom 深度6
css 规则37含 js
brightness47.8contrast23.4
colorfulness17.4留白47.5%

该 slot 的 telemetry

prompt tokens526completion tokens4,546
total tokens5,072wall42.8 s
costrequest id
config.json551 B
{
  "N": 4,
  "auth": {
    "credential_ref": "WCB_XAI_OFFICIAL_KEY",
    "method": "api-key"
  },
  "billing": "metered",
  "config_id": "grok-4.5-eff-low--api--official--dev",
  "effort": "low",
  "family": "grok",
  "m": {
    "min": 4,
    "q": 4
  },
  "model_id": "grok-4.5",
  "protocol": "api",
  "served_model": "grok-4.5",
  "telemetry": {
    "completion_tokens": 32415,
    "cost_usd": null,
    "prompt_tokens": 4176,
    "total_tokens": 36591,
    "wall_ms": 290358
  },
  "transport": "xai-official-api",
  "vendor_sanction_ref": null
}
send-log4.6 KB
{
  "N": 4,
  "batch_id": "2026-07-18--official-grok",
  "config_id": "grok-4.5-eff-low--api--official--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:14:53.144864+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:14:10.365537+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:15:21.049656+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:14:57.014123+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:15:46.796576+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:15:24.688458+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:16:39.177295+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:15:50.698731+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:17:35.307119+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:16:42.760528+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": 0,
      "slot_index": 2,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:18:02.674093+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:17:39.307824+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": 0,
      "slot_index": 2,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:18:33.375027+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:18:06.381790+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-17T15:19:26.976154+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-17T15:18:36.924685+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}