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

输出带 markdown 围栏 — 模型把 HTML 包在代码围栏里返回,提取时已剥离;记录在此以便追溯。
截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居本 session 没有 similarity 数据 —— 这个 batch 没有计算 pairs。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymatchcoverage 24/24 · 24 命中 · 0 不符 · 0 未展示
- 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-top: #0b1023;
--bg-mid: #1b2a4a;
--bg-bottom: #243b57;
--card-bg: rgba(255, 255, 255, 0.08);
--card-border: rgba(255, 255, 255, 0.14);
--text: #eef2ff;
--text-dim: #aab4d0;
--accent: #7aa2ff;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: var(--text);
background: linear-gradient(160deg, var(--bg-top), var(--bg-mid) 45%, var(--bg-bottom));
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 24px;
-webkit-font-smoothing: antialiased;
}
.card {
width: 100%;
max-width: 760px;
background: var(--card-bg);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid var(--card-border);
border-radius: 28px;
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255,255,255,0.08);
padding: 40px 44px;
position: relative;
overflow: hidden;
}
.card::before {
content: "";
position: absolute;
top: -60%;
right: -20%;
width: 320px;
height: 320px;
border-radius: 50%;
background: radial-gradient(circle, rgba(122,162,255,0.35), transparent 70%);
filter: blur(10px);
pointer-events: none;
}
header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
}
.location {
display: flex;
align-items: center;
gap: 10px;
font-size: 1.15rem;
font-weight: 600;
letter-spacing: 0.2px;
}
.location svg { flex-shrink: 0; opacity: 0.85; }
.date {
color: var(--text-dim);
font-size: 1rem;
margin-top: 8px;
font-weight: 500;
}
.condition-badge {
text-align: right;
flex-shrink: 0;
}
.condition-badge .cond {
font-size: 1.05rem;
font-weight: 600;
color: #dfe7ff;
}
.cond-icon {
font-size: 3.2rem;
line-height: 1;
margin-top: 4px;
filter: drop-shadow(0 4px 10px rgba(0,0,0,0.3));
}
.temps {
display: flex;
align-items: flex-end;
gap: 28px;
margin: 34px 0 8px;
}
.hero {
display: flex;
flex-direction: column;
}
.hero .max-temp {
font-size: 5rem;
font-weight: 300;
line-height: 1;
letter-spacing: -2px;
color: #ffffff;
}
.hero .unit {
font-size: 1.8rem;
font-weight: 300;
color: var(--text-dim);
vertical-align: super;
margin-left: 2px;
}
.range {
display: flex;
flex-direction: column;
gap: 6px;
padding-bottom: 10px;
color: var(--text-dim);
font-size: 1rem;
font-weight: 500;
}
.range .r {
display: flex;
align-items: center;
gap: 8px;
}
.range .r svg { opacity: 0.8; }
.range strong {
color: var(--text);
font-weight: 600;
font-size: 1.15rem;
margin-right: 2px;
}
.rule {
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
margin: 22px 0 24px;
}
.hourly-title {
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 1.4px;
color: var(--text-dim);
font-weight: 600;
margin-bottom: 16px;
}
.hourly {
display: flex;
gap: 8px;
overflow-x: auto;
padding-bottom: 6px;
}
.hourly::-webkit-scrollbar { height: 6px; }
.hourly::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.18);
border-radius: 3px;
}
.hour-col {
flex: 1 0 auto;
min-width: 54px;
text-align: center;
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 14px;
padding: 12px 6px;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.hour-col .h-label {
font-size: 0.78rem;
color: var(--text-dim);
font-weight: 600;
}
.hour-col .h-temp {
font-size: 1.05rem;
font-weight: 600;
color: #fff;
}
.status {
display: none;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 30px 10px;
gap: 14px;
}
.status.visible { display: flex; }
.spinner {
width: 42px;
height: 42px;
border-radius: 50%;
border: 3px solid rgba(255,255,255,0.15);
border-top-color: var(--accent);
animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.status .st-msg {
color: var(--text-dim);
font-size: 1rem;
}
.status.error .st-msg {
color: #ffb4a8;
font-weight: 600;
}
.status .st-sub {
color: var(--text-dim);
font-size: 0.9rem;
max-width: 420px;
line-height: 1.5;
}
.content.hidden { display: none; }
</style>
</head>
<body>
<div class="card">
<div class="status visible" id="status">
<div class="spinner" id="spinner"></div>
<div class="st-msg" id="stMsg">Loading weather…</div>
<div class="st-sub" id="stSub"></div>
</div>
<div class="content hidden" id="content">
<header>
<div>
<div class="location">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#7aa2ff" stroke-width="2" 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 id="locName">Berlin</span>
</div>
<div class="date" id="dateLabel"></div>
</div>
<div class="condition-badge">
<div class="cond" id="condLabel"></div>
<div class="cond-icon" id="condIcon"></div>
</div>
</header>
<div class="temps">
<div class="hero">
<span class="max-temp" id="maxTemp">–</span><span class="unit">°C</span>
</div>
<div class="range">
<div class="r">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#ff9e6e" stroke-width="2" stroke-linecap="round"><path d="M12 9v4"/><path d="M12 3v2"/><path d="M10 13h4"/><path d="M4 12a8 8 0 0 1 16 0z"/></svg>
<span>Max <strong id="maxTemp2">–°</strong></span>
</div>
<div class="r">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#7aa2ff" stroke-width="2" stroke-linecap="round"><path d="M12 9v4"/><path d="M12 3v2"/><path d="M10 13h4"/><path d="M4 12a8 8 0 0 1 16 0z"/></svg>
<span>Min <strong id="minTemp">–°</strong></span>
</div>
</div>
</div>
<div class="rule"></div>
<div class="hourly-title">Hourly temperatures</div>
<div class="hourly" id="hourly"></div>
</div>
</div>
<script>
(function () {
var params = new URLSearchParams(window.location.search);
var lat = parseFloat(params.get("lat") || "52.52");
var lon = parseFloat(params.get("lon") || "13.405");
var name = params.get("name") || "Berlin";
var dateStr = params.get("date") || todayUTC();
if (!Number.isFinite(lat) || !Number.isFinite(lon)) {
lat = 52.52; lon = 13.405;
}
var statusEl = document.getElementById("status");
var contentEl = document.getElementById("content");
var stMsg = document.getElementById("stMsg");
var stSub = document.getElementById("stSub");
var stSpin = document.getElementById("spinner");
function setStatus(type, msg, sub) {
statusEl.classList.add("visible");
statusEl.classList.remove("error");
if (type === "error") statusEl.classList.add("error");
stMsg.textContent = msg;
stSub.textContent = sub || "";
stSpin.style.display = "none";
}
function showLoading() {
statusEl.classList.add("visible");
statusEl.classList.remove("error");
stSpin.style.display = "block";
stMsg.textContent = "Loading weather…";
stSub.textContent = "";
}
function showContent() {
statusEl.classList.remove("visible");
contentEl.classList.remove("hidden");
}
function todayUTC() {
var d = new Date();
return d.getUTCFullYear() + "-" + pad2(d.getUTCMonth() + 1) + "-" + pad2(d.getUTCDate());
}
function pad2(n) { return String(n).padStart(2, "0"); }
function wmo(code) {
var map = {
0: ["Clear sky", "☀️"],
1: ["Mainly clear", "🌤️"],
2: ["Partly cloudy", "⛅"],
3: ["Overcast", "☁️"],
45: ["Fog", "🌫️"],
48: ["Depositing rime fog", "🌫️"],
51: ["Light drizzle", "🌦️"],
53: ["Drizzle", "🌦️"],
55: ["Dense 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: ["Heavy showers", "⛈️"],
85: ["Snow showers", "🌨️"],
86: ["Snow showers", "🌨️"],
95: ["Thunderstorm", "⛈️"],
96: ["Thunderstorm w/ hail", "⛈️"],
99: ["Thunderstorm w/ hail", "⛈️"]
};
return map[code] || ["Unknown", "🌡️"];
}
function formatDate(str) {
var parts = str.split("-").map(Number);
if (parts.length !== 3) return str;
var 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 fmtTemp(t) {
if (t === null || t === undefined || Number.isNaN(t)) return "–";
return Math.round(t) + "°";
}
function fmtHour(iso) {
// iso like "2024-01-15T00:00"
var h = parseInt(iso.slice(11, 13), 10);
var ampm = h < 12 ? "AM" : "PM";
var hh = h % 12; if (hh === 0) hh = 12;
return hh + " " + ampm;
}
async function load() {
showLoading();
var today = todayUTC();
// Archive for strictly past dates, forecast otherwise (today & future).
var endpoint = dateStr < today ? "/api/om/archive" : "/api/om/forecast";
var qs = new URLSearchParams({
latitude: String(lat),
longitude: String(lon),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: dateStr,
end_date: dateStr
});
var url = endpoint + "?" + qs.toString();
var res;
try {
res = await fetch(url);
} catch (e) {
return fail("Could not reach the weather service.");
}
if (!res.ok) {
return fail("The weather service returned an error (" + res.status + ").");
}
var data;
try {
data = await res.json();
} catch (e) {
return fail("Received an unreadable response from the weather service.");
}
if (!data || !data.daily) {
return fail("Weather data was not available for this day.");
}
var d = data.daily;
var tmax = d.temperature_2m_max && d.temperature_2m_max[0];
var tmin = d.temperature_2m_min && d.temperature_2m_min[0];
var code = d.weather_code && d.weather_code[0];
// Build an hourly set for exactly the requested date, in order.
var hourlyList = [];
if (data.hourly && Array.isArray(data.hourly.time) && Array.isArray(data.hourly.temperature_2m)) {
var want = dateStr;
for (var i = 0; i < data.hourly.time.length; i++) {
if (String(data.hourly.time[i]).slice(0, 10) === want) {
hourlyList.push({ time: data.hourly.time[i], t: data.hourly.temperature_2m[i] });
}
}
}
var cond = wmo(code);
document.getElementById("locName").textContent = name;
document.getElementById("dateLabel").textContent = formatDate(dateStr);
document.getElementById("condLabel").textContent = cond[0];
document.getElementById("condIcon").textContent = cond[1];
if (tmax !== null && tmax !== undefined && !Number.isNaN(tmax)) {
document.getElementById("maxTemp").textContent = Math.round(tmax);
document.getElementById("maxTemp2").textContent = fmtTemp(tmax);
}
document.getElementById("minTemp").textContent = fmtTemp(tmin);
var hourlyEl = document.getElementById("hourly");
hourlyEl.innerHTML = "";
if (hourlyList.length === 0) {
hourlyEl.innerHTML = '<div style="color:var(--text-dim);font-size:0.95rem;padding:8px 2px;">No hourly data available for this day.</div>';
} else {
hourlyList.forEach(function (h) {
var col = document.createElement("div");
col.className = "hour-col";
var lbl = document.createElement("div");
lbl.className = "h-label";
lbl.textContent = fmtHour(h.time);
var tmp = document.createElement("div");
tmp.className = "h-temp";
tmp.textContent = fmtTemp(h.t);
col.appendChild(lbl);
col.appendChild(tmp);
hourlyEl.appendChild(col);
});
}
showContent();
}
function fail(msg) {
setStatus("error", "Unable to load weather data", msg);
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 13,749 | html / css / js | 2,175 / 4,795 / 6,779 |
|---|---|---|---|
| dom 节点 | 49 | dom 深度 | 9 |
| css 规则 | 38 | 含 js | 是 |
| brightness | 47.4 | contrast | 16.2 |
| colorfulness | 17.5 | 留白 | 67.1% |
该 slot 的 telemetry
| prompt tokens | 13,354 | completion tokens | 8,877 |
|---|---|---|---|
| total tokens | 22,231 | wall | 72.3 s |
| cost | — | request id | — |
config.json624 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_DEEPSEEK_KEY",
"method": "api-key"
},
"billing": "api",
"config_id": "deepseek-v4-flash-vision-exp-eff-low--cli--dsh--dev",
"effort": "low",
"family": "deepseek",
"m": {
"min": 2,
"q": 2
},
"model_id": "deepseek-v4-flash-vision-exp",
"protocol": "cli",
"served_model": "deepseek-v4-flash-vision-exp",
"telemetry": {
"completion_tokens": 29418,
"cost_usd": null,
"prompt_tokens": 37562,
"total_tokens": 66980,
"wall_ms": 243106
},
"transport": "dsh-0.1.0-rc.8-headless-isolated-home",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-08-22--dsh-vision-s1",
"config_id": "deepseek-v4-flash-vision-exp-eff-low--cli--dsh--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-08-21T16:53:26.336869+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:52:41.141391+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-21T16:54:43.579346+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:53:31.279820+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-21T16:56:02.893149+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:54:47.061932+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-21T16:56:55.691205+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-08-21T16:56:05.902601+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
}
}
}