deepseek-v4-flash-0731 @ max · dsh
dshmax
- config
- deepseek-v4-flash-0731-eff-max--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-flash
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-5 @xhigh · CC0.70claude-opus-5-thinking @medium · cursor-xl0.69deepseek-v4.1-flash @max · api0.69claude-fable-5 @high · cursor0.69claude-fable-5-thinking @high · cursor0.68最远
north-mini-code-free · api0.47claude-sonnet-4-5-thinking · cursor-xl0.49claude-sonnet-4 · cursor0.50claude-sonnet-4-5-thinking · cursor0.51qwen3.5-plus · go0.51限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- dateambiguousmulti-candidate-conflict
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlynot-foundcoverage · 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.0" />
<link rel="icon" href="data:," />
<title>Weather</title>
<style>
:root {
--text: #eef1fa;
--muted: rgba(238, 241, 250, 0.58);
--muted-2: rgba(238, 241, 250, 0.38);
--line: rgba(255, 255, 255, 0.1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 48px;
overflow: auto;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
color: var(--text);
background-color: #0a0f1e;
background-image:
radial-gradient(1100px 700px at 12% -8%, rgba(56, 89, 199, 0.30), transparent 60%),
radial-gradient(1000px 650px at 105% 112%, rgba(146, 64, 190, 0.22), transparent 60%),
radial-gradient(820px 520px at 85% -10%, rgba(14, 165, 233, 0.15), transparent 55%);
background-attachment: fixed;
position: relative;
}
.blob {
position: fixed;
border-radius: 50%;
filter: blur(110px);
opacity: 0.5;
pointer-events: none;
z-index: 0;
}
.blob.a { width: 430px; height: 430px; left: -140px; top: -150px; background: #26418f; animation: drift 22s ease-in-out infinite alternate; }
.blob.b { width: 390px; height: 390px; right: -110px; bottom: -170px; background: #5b2a86; animation: drift 26s ease-in-out infinite alternate-reverse; }
@keyframes drift {
from { transform: translate(0, 0) scale(1); }
to { transform: translate(56px, 38px) scale(1.12); }
}
.card {
position: relative;
z-index: 1;
width: 660px;
max-width: 100%;
border-radius: 28px;
padding: 44px 50px 34px;
background: linear-gradient(165deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.035));
border: 1px solid var(--line);
-webkit-backdrop-filter: blur(22px);
backdrop-filter: blur(22px);
box-shadow: 0 40px 90px rgba(2, 6, 18, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
overflow: hidden;
animation: rise 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.card::before {
content: "";
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: linear-gradient(90deg, #38bdf8, #818cf8 48%, #c084fc);
}
@keyframes rise {
from { opacity: 0; transform: translateY(18px) scale(0.985); }
to { opacity: 1; transform: none; }
}
/* ---------- header ---------- */
.head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.loc { display: flex; align-items: center; gap: 14px; }
.loc-name { font-size: 23px; font-weight: 600; letter-spacing: 0.01em; }
.pin {
flex: none;
width: 40px; height: 40px;
border-radius: 13px;
display: flex; align-items: center; justify-content: center;
background: rgba(248, 113, 113, 0.13);
border: 1px solid rgba(248, 113, 113, 0.28);
color: #fda4a4;
}
.pin svg { width: 20px; height: 20px; }
.date { margin-top: 12px; display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--muted); font-weight: 500; }
.rel {
font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
color: #93c5fd;
background: rgba(147, 197, 253, 0.10);
border: 1px solid rgba(147, 197, 253, 0.24);
padding: 3px 9px;
border-radius: 999px;
}
.pill {
flex: none;
display: inline-flex; align-items: center; gap: 7px;
font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
color: var(--muted);
padding: 7px 13px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.pill i { width: 7px; height: 7px; border-radius: 50%; }
.pill.fcst i { background: #38bdf8; box-shadow: 0 0 8px #38bdf8; }
.pill.arch i { background: #c084fc; box-shadow: 0 0 8px #c084fc; }
/* ---------- main temp ---------- */
.main { display: flex; align-items: center; gap: 40px; margin-top: 36px; }
.temp-col { display: flex; flex-direction: column; gap: 20px; }
.temp-wrap { display: flex; align-items: flex-start; }
.temp-big {
font-size: 116px; font-weight: 200; line-height: 0.85;
letter-spacing: -0.03em;
font-variant-numeric: tabular-nums;
}
.deg { font-size: 50px; font-weight: 200; margin: 8px 0 0 4px; color: rgba(238, 241, 250, 0.72); }
.stats { display: flex; gap: 12px; }
.stat {
display: inline-flex; align-items: center; gap: 8px;
font-size: 13.5px; font-weight: 600; color: var(--muted);
padding: 8px 15px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.055);
border: 1px solid rgba(255, 255, 255, 0.09);
}
.stat svg { width: 13px; height: 13px; }
.stat b { color: var(--text); font-weight: 700; font-variant-numeric: tabular-nums; }
.stat.hi svg { color: #fbbf24; }
.stat.lo svg { color: #7dd3fc; }
.cond { display: flex; flex-direction: column; align-items: center; margin-left: auto; }
.cond .icon {
width: 92px; height: 92px;
border-radius: 26px;
display: flex; align-items: center; justify-content: center;
font-size: 46px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.11);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 40px -18px rgba(0, 0, 0, 0.5);
}
.cond .label { margin-top: 14px; font-size: 17px; font-weight: 600; text-align: center; }
.cond .sub { margin-top: 4px; font-size: 12.5px; color: var(--muted); }
/* ---------- hourly ---------- */
.divider {
height: 1px;
margin: 34px 0 26px;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.16), transparent);
}
.section-label {
display: flex; align-items: center; justify-content: space-between;
font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
color: var(--muted-2);
margin-bottom: 18px;
}
.section-label .unit { letter-spacing: 0.06em; font-weight: 500; text-transform: none; }
.chart {
display: flex; align-items: flex-end; gap: 6px;
height: 168px;
position: relative;
padding-bottom: 2px;
border-bottom: 1px solid rgba(255, 255, 255, 0.07);
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
background-size: 100% 25%;
}
.col { flex: 1; height: 100%; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; position: relative; }
.col.now { background: linear-gradient(to top, rgba(56, 189, 248, 0.14), rgba(56, 189, 248, 0) 75%); border-radius: 10px 10px 0 0; }
.bar {
width: 100%;
border-radius: 6px 6px 2px 2px;
min-height: 3px;
opacity: 0.92;
box-shadow: 0 0 14px -2px currentColor;
transition: opacity 0.15s;
}
.col:hover .bar { opacity: 1; }
.col.now .bar { opacity: 1; box-shadow: 0 0 18px -2px currentColor; }
.tip {
position: absolute;
left: 50%; bottom: calc(100% - 6px);
transform: translate(-50%, 6px);
opacity: 0; pointer-events: none;
transition: opacity 0.15s, transform 0.15s;
background: rgba(10, 15, 32, 0.92);
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 10px;
padding: 6px 10px;
font-size: 12.5px; font-weight: 600; text-align: center;
white-space: nowrap;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
z-index: 5;
font-variant-numeric: tabular-nums;
}
.tip small { display: block; color: var(--muted); font-weight: 500; margin-bottom: 1px; }
.col:hover .tip { opacity: 1; transform: translate(-50%, 0); }
.axis { display: flex; margin-top: 12px; }
.axis span {
flex: 1; text-align: center;
font-size: 11px; color: var(--muted-2);
font-variant-numeric: tabular-nums;
}
.axis span.now { color: #7dd3fc; font-weight: 700; }
.axis span.now::after {
content: "";
display: block;
width: 4px; height: 4px;
margin: 3px auto 0;
border-radius: 50%;
background: #38bdf8;
box-shadow: 0 0 6px #38bdf8;
}
.foot {
display: flex; justify-content: space-between;
margin-top: 28px; padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, 0.07);
font-size: 11.5px; color: var(--muted-2); letter-spacing: 0.03em;
}
/* ---------- loading / error ---------- */
.status {
min-height: 430px;
display: flex; flex-direction: column; align-items: center; justify-content: center;
text-align: center;
padding: 40px 20px;
}
.spinner {
width: 46px; height: 46px;
border-radius: 50%;
border: 3px solid rgba(255, 255, 255, 0.12);
border-top-color: #818cf8;
animation: spin 0.8s linear infinite;
margin-bottom: 24px;
}
@keyframes spin { to { transform: rotate(360deg); } }
.msg { font-size: 14.5px; color: var(--muted); }
.err-ico {
width: 74px; height: 74px;
border-radius: 24px;
display: flex; align-items: center; justify-content: center;
font-size: 32px;
background: rgba(248, 113, 113, 0.10);
border: 1px solid rgba(248, 113, 113, 0.28);
margin-bottom: 22px;
}
.err-title { font-size: 19px; font-weight: 700; }
.err-sub { margin-top: 8px; font-size: 14px; color: var(--muted); line-height: 1.6; max-width: 400px; }
.btn {
appearance: none;
margin-top: 26px;
font: inherit; font-size: 14px; font-weight: 600;
color: var(--text);
padding: 11px 28px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.18);
background: rgba(255, 255, 255, 0.08);
cursor: pointer;
transition: background 0.15s, transform 0.1s;
}
.btn:hover { background: rgba(255, 255, 255, 0.14); }
.btn:active { transform: scale(0.97); }
@media (prefers-reduced-motion: reduce) {
.blob, .card, .spinner { animation: none; }
}
</style>
</head>
<body>
<div class="blob a" aria-hidden="true"></div>
<div class="blob b" aria-hidden="true"></div>
<main class="card" id="card" aria-live="polite">
<div class="status" role="status">
<div class="spinner"></div>
<div class="msg">Loading weather…</div>
</div>
</main>
<script>
(function () {
"use strict";
var card = document.getElementById("card");
var qs = new URLSearchParams(window.location.search);
/* ---------------- query parameters ---------------- */
var DEFAULT_LAT = 52.52, DEFAULT_LON = 13.405, DEFAULT_NAME = "Berlin";
function readCoord(key, fallback, min, max) {
var raw = qs.get(key);
var n = raw == null ? NaN : Number(raw);
return Number.isFinite(n) && n >= min && n <= max ? n : fallback;
}
var lat = readCoord("lat", DEFAULT_LAT, -90, 90);
var lon = readCoord("lon", DEFAULT_LON, -180, 180);
var rawName = (qs.get("name") || "").replace(/[\u0000-\u001f\u007f]/g, "").trim().slice(0, 60);
var name = rawName || DEFAULT_NAME;
function pad(n) { return String(n).padStart(2, "0"); }
function toUTCDateStr(d) { return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()); }
function parseUTC(s) {
var p = s.split("-").map(Number);
return new Date(Date.UTC(p[0], p[1] - 1, p[2]));
}
function shiftDate(s, delta) {
var d = parseUTC(s);
return toUTCDateStr(new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() + delta)));
}
var today = new Date();
var todayStr = toUTCDateStr(today);
var dateStr = todayStr;
var rawDate = qs.get("date") || "";
if (/^\d{4}-\d{2}-\d{2}$/.test(rawDate)) {
var p = rawDate.split("-").map(Number);
if (p.every(function (n) { return Number.isInteger(n); }) && toUTCDateStr(parseUTC(rawDate)) === rawDate) {
dateStr = rawDate;
}
}
var isPast = dateStr < todayStr;
var endpoint = isPast ? "/api/om/archive" : "/api/om/forecast";
var url = endpoint + "?" + new URLSearchParams({
latitude: String(Number(lat.toFixed(5))),
longitude: String(Number(lon.toFixed(5))),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: dateStr,
end_date: dateStr
}).toString();
/* ---------------- WMO weather codes ---------------- */
var CODES = {
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: ["Rain showers", "🌧️"],
82: ["Violent showers", "⛈️"],
85: ["Snow showers", "🌨️"],
86: ["Snow showers", "🌨️"],
95: ["Thunderstorm", "⛈️"],
96: ["Thunderstorm with hail", "⛈️"],
99: ["Thunderstorm with hail", "⛈️"]
};
function condFor(code) { return CODES[code] || ["Unknown", "🌡️"]; }
/* ---------------- UI helpers ---------------- */
var PIN_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><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>';
var UP_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="18 15 12 9 6 15"/></svg>';
var DOWN_SVG = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg>';
function escapeHtml(s) {
return String(s).replace(/[&<>"']/g, function (c) {
return { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }[c];
});
}
function fmtTemp(v) { return Number.isFinite(v) ? String(Math.round(v)) : "–"; }
function showLoading() {
card.innerHTML =
'<div class="status" role="status">' +
'<div class="spinner"></div>' +
'<div class="msg">Loading weather for ' + escapeHtml(name) + '…</div>' +
'</div>';
document.title = "Weather · " + name;
}
function showError(detail) {
card.innerHTML =
'<div class="status" role="alert">' +
'<div class="err-ico">⚠️</div>' +
'<div class="err-title">Weather data could not be loaded</div>' +
'<div class="err-sub">' + escapeHtml(detail) + '</div>' +
'<button type="button" class="btn" id="retry">Try again</button>' +
'</div>';
document.title = "Weather · unavailable";
var btn = card.querySelector("#retry");
if (btn) btn.addEventListener("click", init);
}
/* ---------------- render ---------------- */
function render(data) {
var daily = (data && data.daily) || {};
var hourly = (data && data.hourly) || {};
var dailyTime = Array.isArray(daily.time) ? daily.time : [];
var di = Math.max(0, dailyTime.indexOf(dateStr));
function numAt(arr) { return Array.isArray(arr) && arr[di] != null ? Number(arr[di]) : NaN; }
var hi = numAt(daily.temperature_2m_max);
var lo = numAt(daily.temperature_2m_min);
var code = Array.isArray(daily.weather_code) && daily.weather_code[di] != null ? Number(daily.weather_code[di]) : NaN;
/* hourly values for the requested date */
var hours = [];
if (Array.isArray(hourly.time)) {
hourly.time.forEach(function (t, i) {
if (typeof t === "string" && t.slice(0, 10) === dateStr &&
Array.isArray(hourly.temperature_2m) && hourly.temperature_2m[i] != null) {
hours.push({ t: t, v: Number(hourly.temperature_2m[i]) });
}
});
}
/* fallback: first 24 hourly entries, in case times are missing */
if (!hours.length && Array.isArray(hourly.temperature_2m)) {
for (var i = 0; i < 24 && i < hourly.temperature_2m.length; i++) {
if (hourly.temperature_2m[i] != null) {
hours.push({ t: hourly.time && hourly.time[i] ? hourly.time[i] : "", v: Number(hourly.temperature_2m[i]) });
}
}
}
if (!Number.isFinite(hi) || !Number.isFinite(lo)) {
var vs = [];
hours.forEach(function (h) { if (Number.isFinite(h.v)) vs.push(h.v); });
if (vs.length) { hi = Math.max.apply(null, vs); lo = Math.min.apply(null, vs); }
else { hi = NaN; lo = NaN; }
}
if (!hours.length || (!Number.isFinite(hi) && !Number.isFinite(lo))) {
showError("The weather service returned incomplete data for " + dateStr + ".");
return;
}
if (!Number.isFinite(code)) code = -1;
var cond = condFor(code);
var rel = dateStr === todayStr ? "Today"
: dateStr === shiftDate(todayStr, 1) ? "Tomorrow"
: dateStr === shiftDate(todayStr, -1) ? "Yesterday" : "";
var prettyDate = parseUTC(dateStr).toLocaleDateString("en-US", {
weekday: "long", month: "long", day: "numeric", year: "numeric", timeZone: "UTC"
});
card.innerHTML =
'<div class="head">' +
'<div>' +
'<div class="loc"><span class="pin">' + PIN_SVG + '</span><span class="loc-name"></span></div>' +
'<div class="date"><span class="rel"></span><span class="date-full"></span></div>' +
'</div>' +
'<span class="pill ' + (isPast ? "arch" : "fcst") + '"><i></i>' + (isPast ? "Archive" : "Forecast") + '</span>' +
'</div>' +
'<div class="main">' +
'<div class="temp-col">' +
'<div class="temp-wrap"><span class="temp-big"></span><span class="deg">°</span></div>' +
'<div class="stats">' +
'<span class="stat hi">' + UP_SVG + 'Max <b></b></span>' +
'<span class="stat lo">' + DOWN_SVG + 'Min <b></b></span>' +
'</div>' +
'</div>' +
'<div class="cond">' +
'<div class="icon"></div>' +
'<div class="label"></div>' +
'<div class="sub"></div>' +
'</div>' +
'</div>' +
'<div class="divider"></div>' +
'<div class="section-label"><span>Hourly temperatures</span><span class="unit">24 h · °C · UTC</span></div>' +
'<div class="chart"></div>' +
'<div class="axis"></div>' +
'<div class="foot"><span>Open-Meteo · ' + (isPast ? "historical data" : "forecast") + '</span><span class="updated"></span></div>';
var displayT = Number.isFinite(hi) ? hi : lo;
card.querySelector(".loc-name").textContent = name;
card.querySelector(".rel").textContent = rel;
if (!rel) card.querySelector(".rel").style.display = "none";
card.querySelector(".date-full").textContent = prettyDate;
card.querySelector(".temp-big").textContent = fmtTemp(displayT);
card.querySelector(".stat.hi b").textContent = fmtTemp(hi) + "°";
card.querySelector(".stat.lo b").textContent = fmtTemp(lo) + "°";
card.querySelector(".cond .icon").textContent = cond[1];
card.querySelector(".cond .label").textContent = cond[0];
/* warmest hour */
var peak = "";
if (hours.length) {
var bi = 0;
hours.forEach(function (h, i) { if (h.v > hours[bi].v) bi = i; });
if (hours[bi].t) peak = "High at " + hours[bi].t.slice(11, 16);
}
card.querySelector(".cond .sub").textContent = peak;
/* hourly bar chart */
var chart = card.querySelector(".chart");
var axis = card.querySelector(".axis");
var loV = Number.isFinite(lo) ? lo : hi;
var hiV = Number.isFinite(hi) ? hi : lo;
var loP = loV - 2, hiP = hiV + 2, range = Math.max(1, hiP - loP);
var nowHour = dateStr === todayStr ? today.getUTCHours() : -1;
hours.forEach(function (h, i) {
var pct = Math.max(2, Math.min(100, ((h.v - loP) / range) * 100));
var hue = Math.max(5, Math.min(225, Math.round(225 - (h.v + 10) * 5)));
var col = document.createElement("div");
col.className = "col" + (i === nowHour ? " now" : "");
var tip = document.createElement("div");
tip.className = "tip";
var tipT = document.createElement("small");
tipT.textContent = h.t ? h.t.slice(11, 16) : "—";
tip.appendChild(tipT);
tip.appendChild(document.createTextNode(fmtTemp(h.v) + "°"));
var bar = document.createElement("div");
bar.className = "bar";
bar.style.height = pct.toFixed(1) + "%";
bar.style.background = "linear-gradient(180deg, hsl(" + hue + " 92% 72%), hsl(" + hue + " 80% 50%))";
bar.style.color = "hsl(" + hue + " 90% 64%)";
col.appendChild(tip);
col.appendChild(bar);
chart.appendChild(col);
var lab = document.createElement("span");
if (i % 3 === 0 && h.t) lab.textContent = h.t.slice(11, 16);
if (i === nowHour) lab.classList.add("now");
axis.appendChild(lab);
});
card.querySelector(".updated").textContent =
"Updated " + today.toISOString().slice(0, 16).replace("T", " ") + " UTC";
document.title = fmtTemp(displayT) + "° " + name + " · " + cond[0];
}
/* ---------------- fetch ---------------- */
function friendlyError(err) {
if (!err) return "A network error occurred.";
if (err.name === "AbortError") return "The request timed out.";
if (/failed to fetch|load failed|network/i.test(err.message || "")) return "A network error occurred.";
return err.message;
}
function init() {
showLoading();
var ctrl = new AbortController();
var timer = setTimeout(function () { ctrl.abort(); }, 12000);
fetch(url, { signal: ctrl.signal, headers: { Accept: "application/json" } })
.then(function (res) {
if (!res.ok) throw new Error("The server responded with HTTP " + res.status + ".");
return res.json();
})
.then(function (data) { render(data); })
.catch(function (err) { showError(friendlyError(err)); })
.finally(function () { clearTimeout(timer); });
}
init();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 22,383 | html / css / js | 550 / 9,720 / 12,113 |
|---|---|---|---|
| dom 节点 | 15 | dom 深度 | 5 |
| css 规则 | 71 | 含 js | 是 |
| brightness | 35.4 | contrast | 34.5 |
| colorfulness | 38.8 | 留白 | 78.2% |
该 slot 的 telemetry
| prompt tokens | 9,295 | completion tokens | 38,868 |
|---|---|---|---|
| total tokens | 48,163 | wall | 225.9 s |
| cost | — | request id | — |
config.json603 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_DEEPSEEK_KEY",
"method": "api-key"
},
"billing": "api",
"config_id": "deepseek-v4-flash-0731-eff-max--cli--dsh--dev",
"effort": "max",
"family": "deepseek",
"m": {
"min": 2,
"q": 2
},
"model_id": "deepseek-v4-flash-0731",
"protocol": "cli",
"served_model": "deepseek-v4-flash",
"telemetry": {
"completion_tokens": 145450,
"cost_usd": null,
"prompt_tokens": 48216,
"total_tokens": 193666,
"wall_ms": 848018
},
"transport": "dsh-0.1.0-rc.8-headless-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-21--dsh-s0",
"config_id": "deepseek-v4-flash-0731-eff-max--cli--dsh--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-21T13:25:22.044802+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T13:23:19.777550+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-21T13:29:11.853372+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T13:25:25.929723+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-21T13:35:59.321883+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T13:29:15.619554+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-08-21T13:37:39.016633+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T13:36:02.877437+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"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
}
}
}