deepseek-v4-pro-0812 @ off · dsh

dshoff
config
deepseek-v4-pro-0812-eff-off--cli--dsh--dev
batch
2026-07-19--unified
transport
dsh-0.1.0-rc.8-headless-isolated-home
protocol
cli · api
served model
deepseek-v4-pro
采集于
2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe
deepseek-v4-pro-0812 @off · dsh P-q slot 0 截图

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

similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。

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

  • namematch
  • conditionmatch
  • datematch
  • max tempambiguous展示值:25max-equals-min
  • min tempambiguous展示值:25max-equals-min
  • hourlyambiguouscoverage · 0 命中 · 0 不符 · 24 未展示
  • 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">
<title>Weather Card</title>
<style>
  :root {
    --ink: #1b2333;
    --muted: #6b7590;
    --line: rgba(27, 35, 51, 0.1);
    --card-bg: #ffffff;
    --page-bg: #eef1f6;
    --chip-bg: #f4f6fb;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html, body { height: 100%; }
  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--page-bg);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 40px;
    -webkit-font-smoothing: antialiased;
  }
  .card {
    width: 560px;
    max-width: 100%;
    background: var(--card-bg);
    border-radius: 28px;
    box-shadow:
      0 1px 2px rgba(27, 35, 51, 0.04),
      0 12px 32px rgba(27, 35, 51, 0.08),
      0 32px 64px rgba(27, 35, 51, 0.06);
    padding: 40px;
    position: relative;
    overflow: hidden;
  }
  .card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: linear-gradient(90deg, #4f9cf9, #7f5bff, #ff8a5c);
  }
  .topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
  }
  .location {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
  }
  .pin {
    width: 34px; height: 34px;
    border-radius: 11px;
    background: linear-gradient(135deg, #4f9cf9, #7f5bff);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .pin svg { width: 17px; height: 17px; }
  .date {
    font-size: 14px;
    color: var(--muted);
    font-weight: 600;
    background: var(--chip-bg);
    padding: 8px 14px;
    border-radius: 999px;
    white-space: nowrap;
  }
  .hero {
    margin: 12px 0 26px;
    display: flex;
    align-items: center;
    gap: 20px;
  }
  .temps {
    display: flex;
    align-items: baseline;
    gap: 12px;
  }
  .temp-max {
    font-size: 64px;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
  }
  .temp-min {
    font-size: 24px;
    font-weight: 600;
    color: var(--muted);
  }
  .cond {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 17px;
    font-weight: 600;
    color: #3a445c;
    margin-left: auto;
    text-align: right;
  }
  .cond .icon { font-size: 30px; line-height: 1; }
  .divider {
    height: 1px;
    background: var(--line);
    margin: 0 0 24px;
  }
  .section-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 14px;
  }
  .hourly {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 8px;
  }
  .hour {
    background: var(--chip-bg);
    border-radius: 14px;
    padding: 12px 4px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: background 0.15s ease;
  }
  .hour.highlight {
    background: linear-gradient(160deg, #eef4ff, #f3ecff);
    box-shadow: inset 0 0 0 1px rgba(79, 156, 249, 0.25);
  }
  .hour .h-time {
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
  }
  .hour .h-temp {
    font-size: 16px;
    font-weight: 700;
  }
  .hour .h-dot {
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--muted);
    margin: 0 auto;
    opacity: 0.4;
  }
  .error {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
    padding: 40px 20px;
    color: var(--muted);
  }
  .error.visible { display: flex; }
  .error .big {
    font-size: 46px;
  }
  .error .msg { font-size: 15px; font-weight: 500; }
  .meta {
    margin-top: 22px;
    font-size: 11.5px;
    color: var(--muted);
    display: flex;
    gap: 16px;
  }
  .meta span { display: inline-flex; align-items: center; gap: 5px; }
  .meta .dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #34c759;
    display: inline-block;
  }
</style>
</head>
<body>
  <div class="card">
    <div id="error" class="error">
      <div class="big">⛅</div>
      <div class="msg">Could not load weather data for this location and date.</div>
    </div>

    <div id="content" style="display: none;">
      <div class="topbar">
        <div class="location">
          <span class="pin">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4"
                 stroke-linecap="round" stroke-linejoin="round">
              <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
              <circle cx="12" cy="10" r="3"/>
            </svg>
          </span>
          <span id="location-name"></span>
        </div>
        <div class="date" id="date-label"></div>
      </div>

      <div class="hero">
        <div class="temps">
          <div class="temp-max" id="temp-max"></div>
          <div class="temp-min" id="temp-min"></div>
        </div>
        <div class="cond">
          <span class="icon" id="cond-icon"></span>
          <span id="cond-label"></span>
        </div>
      </div>

      <div class="divider"></div>

      <div class="section-label">Hourly · <span id="hourly-note"></span></div>
      <div class="hourly" id="hourly-grid"></div>

      <div class="meta">
        <span><span class="dot"></span>Open-Meteo</span>
        <span id="coords"></span>
        <span>°C</span>
      </div>
    </div>
  </div>

<script>
(function () {
  "use strict";

  // ---- Query parameters ---
  function qs(name) {
    var m = new URLSearchParams(window.location.search).get(name);
    return m;
  }
  function todayUTC() {
    var d = new Date();
    return d.toISOString().slice(0, 10); // YYYY-MM-DD in UTC
  }

  var lat = parseFloat(qs("lat")) || 52.52;
  var lon = parseFloat(qs("lon")) || 13.405;
  var name = qs("name") || "Berlin";
  var dateStr = qs("date") || todayUTC();

  // Basic validation of date string
  var dateValid = /^\d{4}-\d{2}-\d{2}$/.test(dateStr);
  var reqDate = new Date(dateStr + "T00:00:00Z");

  // ---- Helpers ---
  function fmtDate(iso) {
    var d = new Date(iso + "T00:00:00Z");
    return d.toLocaleDateString("en-US", {
      weekday: "long", year: "numeric", month: "long", day: "numeric",
      timeZone: "UTC"
    });
  }
  function fmtTemp(v) {
    return Math.round(v);
  }

  // ---- Weather code -> { label, icon } ----
  function wmo(code) {
    var map = {
      0:  ["Clear sky", "☀️"],
      1:  ["Mainly clear", "🌤️"],
      2:  ["Partly cloudy", "⛅"],
      3:  ["Overcast", "☁️"],
      45: ["Fog", "🌫️"],
      48: ["Rime fog", "🌫️"],
      51: ["Light drizzle", "🌦️"],
      53: ["Drizzle", "🌦️"],
      55: ["Dense drizzle", "🌧️"],
      56: ["Freezing drizzle", "🌧️"],
      57: ["Freezing drizzle", "🌧️"],
      61: ["Light rain", "🌧️"],
      63: ["Rain", "🌧️"],
      65: ["Heavy rain", "🌧️"],
      66: ["Freezing rain", "🌧️"],
      67: ["Freezing rain", "🌧️"],
      71: ["Light snow", "🌨️"],
      73: ["Snow", "🌨️"],
      75: ["Heavy snow", "❄️"],
      77: ["Snow grains", "🌨️"],
      80: ["Light showers", "🌦️"],
      81: ["Showers", "🌧️"],
      82: ["Violent showers", "⛈️"],
      85: ["Snow showers", "🌨️"],
      86: ["Heavy snow showers", "❄️"],
      95: ["Thunderstorm", "⛈️"],
      96: ["Storm with hail", "⛈️"],
      99: ["Storm with hail", "⛈️"]
    };
    return map[code] || (code == null ? null : ["Unknown", "🌡️"]);
  }

  // ---- Pick endpoint based on requested date ---
  var endpoint = "/api/om/forecast";
  if (dateValid && reqDate.getTime() < new Date(todayUTC() + "T00:00:00Z").getTime()) {
    endpoint = "/api/om/archive";
  }

  // ---- Build request ---
  var params = new URLSearchParams({
    latitude: lat,
    longitude: lon,
    daily: "temperature_2m_max,temperature_2m_min,weather_code",
    hourly: "temperature_2m",
    timezone: "UTC",
    temperature_unit: "celsius",
    start_date: dateStr,
    end_date: dateStr
  });

  function showError() {
    document.getElementById("error").classList.add("visible");
    document.getElementById("content").style.display = "none";
  }
  function showContent() {
    document.getElementById("error").classList.remove("visible");
    document.getElementById("content").style.display = "block";
  }

  // ---- Populate, given data for the requested date ---
  function render(data) {
    var daily = (data.daily && data.daily.time) || [];
    if (!daily.length) { showError(); return; }

    var idx = daily.indexOf(dateStr);
    if (idx === -1) { idx = 0; }

    var tmax = data.daily.temperature_2m_max[idx];
    var tmin = data.daily.temperature_2m_min[idx];
    var code = data.daily.weather_code[idx];

    if (tmax == null || tmin == null) { showError(); return; }

    var cond = wmo(code) || ["Unknown", "🌡️"];

    document.getElementById("location-name").textContent = name;
    document.getElementById("date-label").textContent = fmtDate(dateStr);
    document.getElementById("temp-max").textContent = fmtTemp(tmax) + "°";
    document.getElementById("temp-min").textContent =
      "L: " + fmtTemp(tmin) + "°";
    document.getElementById("cond-icon").textContent = cond[1];
    document.getElementById("cond-label").textContent = cond[0];
    document.getElementById("coords").textContent =
      lat.toFixed(3) + "°, " + lon.toFixed(3) + "°";

    // Hourly temperatures for the requested date
    var times = data.hourly && data.hourly.time || [];
    var temps = data.hourly && data.hourly.temperature_2m || [];
    var hours = [];
    for (var i = 0; i < times.length; i++) {
      if (times[i].slice(0, 10) === dateStr) {
        hours.push({ t: times[i], v: temps[i] });
      }
    }

    var grid = document.getElementById("hourly-grid");
    grid.innerHTML = "";

    if (!hours.length) {
      document.getElementById("hourly-note").textContent = "no hourly data";
      grid.innerHTML =
        '<div style="grid-column:1/-1;color:var(--muted);font-size:13px;' +
        'text-align:center">Hourly data unavailable.</div>';
    } else {
      document.getElementById("hourly-note").textContent = hours.length + " readings";
      var step = Math.max(1, Math.ceil(hours.length / 8));
      var samples = [];
      for (var s = 0; s < hours.length; s += step) samples.push(hours[s]);
      if (samples[samples.length - 1] !== hours[hours.length - 1]) {
        samples.push(hours[hours.length - 1]);
      }
      samples = samples.slice(0, 8);

      var maxNow = Math.max.apply(null, samples.map(function (h) { return h.v; }));

      samples.forEach(function (h) {
        var el = document.createElement("div");
        el.className = "hour";
        var hv = h.t.slice(11, 13) + ":00";
        el.innerHTML =
          '<span class="h-time">' + hv + "</span>" +
          '<span class="h-temp">' + Math.round(h.v) + "°</span>";
        if (h.v === maxNow) el.classList.add("highlight");
        grid.appendChild(el);
      });
    }

    showContent();
  }

  // ---- Fetch ---
  fetch(endpoint + "?" + params.toString(), {
    method: "GET",
    headers: { "Accept": "application/json" }
  })
    .then(function (r) {
      if (!r.ok) throw new Error("HTTP " + r.status);
      return r.json();
    })
    .then(function (data) {
      if (!data || data.error) throw new Error("API error");
      render(data);
    })
    .catch(function () {
      showError();
    });
})();
</script>
</body>
</html>

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

bytes 总计11,774html / css / js1,638 / 4,068 / 6,068
dom 节点37dom 深度8
css 规则32含 js
brightness240.8contrast11.9
colorfulness8.4留白98.7%

该 slot 的 telemetry

prompt tokens12,870completion tokens7,693
total tokens20,563wall68.4 s
costrequest id
config.json595 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_DEEPSEEK_KEY",
    "method": "api-key"
  },
  "billing": "api",
  "config_id": "deepseek-v4-pro-0812-eff-off--cli--dsh--dev",
  "effort": "off",
  "family": "deepseek",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "deepseek-v4-pro-0812",
  "protocol": "cli",
  "served_model": "deepseek-v4-pro",
  "telemetry": {
    "completion_tokens": 28287,
    "cost_usd": null,
    "prompt_tokens": 41672,
    "total_tokens": 69959,
    "wall_ms": 248078
  },
  "transport": "dsh-0.1.0-rc.8-headless-isolated-home",
  "vendor_sanction_ref": null
}
send-log2.8 KB
{
  "N": 2,
  "batch_id": "2026-08-21--dsh-s0",
  "config_id": "deepseek-v4-pro-0812-eff-off--cli--dsh--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-21T12:55:06.146290+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-21T12:53:59.165807+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-08-21T12:56:17.807079+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-21T12:55:09.425928+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-08-21T12:57:27.414852+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-21T12:56:20.407777+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": 500,
          "charged": false,
          "ended_at": "2026-08-21T12:58:14.175008+00:00",
          "http_status": null,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "http-429",
          "request_id": null,
          "started_at": "2026-08-21T12:57:30.270839+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-21T12:59:00.391786+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-21T12:58:14.678200+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 1,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}