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

输出带 markdown 围栏 — 模型把 HTML 包在代码围栏里返回,提取时已剥离;记录在此以便追溯。
截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
deepseek-v4-flash-free · api0.66deepseek-v4-flash-0731 @minimal · api0.66claude-opus-4-6 @max · kiro0.66claude-fable-5 @low · CC0.65deepseek-v4-flash @high · api0.65最远
gpt-5.4 @high · codex-oauth0.53claude-opus-4-8 @max · kiro0.54claude-opus-4-8 @max · CC0.54gpt-5.6-terra @high · codex-oauth0.55gpt-5.6-luna @max · codex-oauth0.55限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymismatchcoverage 1/24 · 1 命中 · 4 不符 · 19 未展示
- request sidematch0 处违规
extractor fidelity-extractor-v1+Berlin-2026-07-15
源码 —— 原始模型输出,一字节未改
下载 card.html<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Weather Card</title>
<style>
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body {
width: 100%;
height: 100%;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: linear-gradient(135deg, #dfe6ee 0%, #edf0f4 40%, #cfd8e3 100%);
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
color: #1b2a3a;
}
/* ─── Card Shell ─── */
.weather-card {
width: 660px;
border-radius: 28px;
background: #ffffff;
box-shadow: 0 24px 80px rgba(20, 40, 60, .14), 0 6px 24px rgba(20, 40, 60, .06);
overflow: hidden;
transition: transform .25s ease, box-shadow .25s ease;
animation: cardIn .5s ease-out both;
}
@keyframes cardIn {
from {
opacity: 0;
transform: translateY(24px) scale(.97);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* ─── Header ─── */
.card-header {
padding: 36px 44px 22px;
text-align: center;
background: linear-gradient(150deg, #f7f9fc 0%, #edf1f7 100%);
border-bottom: 1px solid #e8ecf1;
position: relative;
}
.card-header::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 4px;
background: linear-gradient(90deg, transparent, rgba(74, 144, 217, .25), transparent);
}
.location {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
font-size: 22px;
font-weight: 700;
letter-spacing: -.3px;
color: #102a43;
}
.location svg {
width: 20px;
height: 20px;
fill: #d64545;
}
.date-label {
font-size: 14px;
color: #627d98;
margin-top: 4px;
font-weight: 500;
letter-spacing: .2px;
text-transform: capitalize;
}
/* ─── Main Metrics ─── */
.card-body {
padding: 30px 44px 34px;
}
.weather-main {
text-align: center;
margin-bottom: 26px;
position: relative;
}
.weather-icon {
font-size: 80px;
line-height: 1.1;
display: block;
margin-bottom: 2px;
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .06));
}
.temp-max {
font-size: 66px;
font-weight: 200;
line-height: 1.05;
color: #0e1b2e;
letter-spacing: -2px;
display: inline-block;
background: linear-gradient(135deg, #1a2a3a 30%, #39607e 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.temp-unit {
font-size: 34px;
font-weight: 300;
vertical-align: super;
margin-left: 2px;
-webkit-text-fill-color: #94a8ba;
}
.condition {
font-size: 17px;
color: #486581;
margin-top: 2px;
font-weight: 500;
letter-spacing: .2px;
}
.temp-range {
display: flex;
justify-content: center;
gap: 28px;
margin-top: 14px;
font-size: 15px;
font-weight: 600;
background: #f3f6f9;
border-radius: 40px;
padding: 8px 20px;
width: fit-content;
margin-left: auto;
margin-right: auto;
}
.temp-range .max {
color: #d97706;
display: flex;
align-items: center;
gap: 4px;
}
.temp-range .min {
color: #2b6cb0;
display: flex;
align-items: center;
gap: 4px;
}
.temp-range .dot {
width: 6px;
height: 6px;
border-radius: 50%;
display: inline-block;
}
.temp-range .dot.max {
background: #d97706;
}
.temp-range .dot.min {
background: #2b6cb0;
}
/* ─── Hourly Chart ─── */
.hourly-section {
background: #f8fafc;
border-radius: 18px;
padding: 22px 20px 18px;
border: 1px solid #edf0f4;
margin-top: 6px;
}
.hourly-title {
font-size: 13px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: #829ab1;
margin-bottom: 12px;
display: flex;
align-items: center;
gap: 8px;
}
.hourly-title svg {
width: 14px;
height: 14px;
fill: #829ab1;
}
svg#chart {
display: block;
width: 100%;
height: auto;
}
/* ─── Error ─── */
.error-message {
text-align: center;
padding: 70px 40px;
}
.error-message .icon {
font-size: 56px;
margin-bottom: 16px;
}
.error-message .title {
font-size: 20px;
font-weight: 600;
color: #b33c3c;
margin-bottom: 8px;
}
.error-message .detail {
font-size: 14px;
color: #829ab1;
}
/* ─── Loading ─── */
.loading {
text-align: center;
padding: 80px 40px;
}
.spinner {
width: 48px;
height: 48px;
border: 4px solid #e2e8f0;
border-top-color: #4a90d9;
border-radius: 50%;
margin: 0 auto 20px;
animation: spin .8s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.loading p {
color: #627d98;
font-size: 15px;
}
</style>
</head>
<body>
<div class="weather-card" id="weatherCard">
<div class="loading" id="loadingState">
<div class="spinner"></div>
<p>Loading weather…</p>
</div>
</div>
<script>
(function() {
"use strict";
// ─── Helpers ───
function getParams() {
const p = new URLSearchParams(window.location.search);
return {
lat: parseFloat(p.get('lat')) || 52.52,
lon: parseFloat(p.get('lon')) || 13.405,
name: p.get('name') || 'Berlin',
date: p.get('date') || null
};
}
function getTodayUTC() {
return new Date().toISOString().split('T')[0];
}
function formatDate(dateStr) {
if (!dateStr) return '';
const parts = dateStr.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'
});
}
// ─── Weather Codes ───
const WEATHER_MAP = {
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: 'Rime fog', icon: '🌫️' },
51: { label: 'Light drizzle', icon: '🌦️' },
53: { label: 'Moderate drizzle', icon: '🌧️' },
55: { label: 'Dense drizzle', icon: '🌧️' },
56: { label: 'Freezing drizzle', icon: '🌧️' },
57: { label: 'Freezing drizzle', icon: '🌧️' },
61: { label: 'Slight rain', icon: '🌦️' },
63: { label: 'Moderate rain', icon: '🌧️' },
65: { label: 'Heavy rain', icon: '🌧️' },
66: { label: 'Freezing rain', icon: '🌧️' },
67: { label: '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: 'Rain showers', icon: '🌦️' },
81: { label: 'Rain showers', icon: '🌧️' },
82: { label: 'Violent showers', icon: '⛈️' },
85: { label: 'Snow showers', icon: '🌨️' },
86: { label: 'Snow showers', icon: '❄️' },
95: { label: 'Thunderstorm', icon: '⛈️' },
96: { label: 'Thunderstorm w/ hail', icon: '⛈️' },
99: { label: 'Thunderstorm w/ hail', icon: '⛈️' }
};
function getWeatherInfo(code) {
return WEATHER_MAP[code] || { label: 'Unknown', icon: '❓' };
}
// ─── Card Render ───
function renderCard(data) {
const card = document.getElementById('weatherCard');
const wi = getWeatherInfo(data.weatherCode);
let hourlyHtml = '';
if (data.hourlyData && data.hourlyData.length > 0) {
hourlyHtml = `
<div class="hourly-section">
<div class="hourly-title">
<svg viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
Hourly Temperature
</div>
<svg id="chart" viewBox="0 0 560 220" width="100%" height="220" role="img" aria-label="Hourly temperature chart"></svg>
</div>
`;
}
card.innerHTML = `
<div class="card-header">
<div class="location">
<svg viewBox="0 0 24 24" width="20" height="20"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
${escapeHtml(data.location)}
</div>
<div class="date-label">${formatDate(data.date)}</div>
</div>
<div class="card-body">
<div class="weather-main">
<span class="weather-icon">${wi.icon}</span>
<div class="temp-max">${Math.round(data.maxTemp)}<span class="temp-unit">°C</span></div>
<div class="condition">${wi.label}</div>
<div class="temp-range">
<span class="max"><span class="dot max"></span>H: ${Math.round(data.maxTemp)}°C</span>
<span class="min"><span class="dot min"></span>L: ${Math.round(data.minTemp)}°C</span>
</div>
</div>
${hourlyHtml}
</div>
`;
if (data.hourlyData && data.hourlyData.length > 0) {
renderChart(data.hourlyData, data.minTemp, data.maxTemp);
}
}
function escapeHtml(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
// ─── Chart ───
function renderChart(hourlyData, minTemp, maxTemp) {
const svg = document.getElementById('chart');
if (!svg) return;
const W = 560,
H = 220;
const pad = { left: 44, right: 18, top: 22, bottom: 32 };
const plotW = W - pad.left - pad.right;
const plotH = H - pad.top - pad.bottom;
const yMin = Math.floor(minTemp - 2);
const yMax = Math.ceil(maxTemp + 2);
const yRange = Math.max(yMax - yMin, 1);
const n = hourlyData.length;
const pts = hourlyData.map((d, i) => {
const x = pad.left + (n === 1 ? plotW / 2 : (i / (n - 1)) * plotW);
const y = pad.top + ((yMax - d.temp) / yRange) * plotH;
return { x, y, temp: d.temp, time: d.time };
});
let s = '<defs>';
s += '<linearGradient id="areaG" x1="0" y1="0" x2="0" y2="1">';
s += '<stop offset="0%" stop-color="#4a90d9" stop-opacity="0.28"/>';
s += '<stop offset="100%" stop-color="#4a90d9" stop-opacity="0"/>';
s += '</linearGradient>';
s += '</defs>';
// Grid + Y labels
const gridLines = 4;
for (let i = 0; i <= gridLines; i++) {
const y = pad.top + (i / gridLines) * plotH;
const val = yMax - (i / gridLines) * yRange;
s += `<line x1="${pad.left}" y1="${y}" x2="${W - pad.right}" y2="${y}" stroke="#e8edf2" stroke-width="1" stroke-dasharray="4,4"/>`;
s += `<text x="${pad.left - 10}" y="${y + 4}" text-anchor="end" font-size="12" fill="#8ba3b8" font-weight="500">${Math.round(val)}°</text>`;
}
// X labels
const labelIdx = [0, 6, 12, 18, 23].filter(i => i < n);
for (const idx of labelIdx) {
const x = pad.left + (n === 1 ? plotW / 2 : (idx / (n - 1)) * plotW);
const t = hourlyData[idx].time.split('T')[1] || '';
const timeStr = t.substring(0, 5);
s += `<text x="${x}" y="${H - 8}" text-anchor="middle" font-size="12" fill="#8ba3b8" font-weight="500">${timeStr}</text>`;
}
// Area + Line
if (pts.length > 1) {
let linePath = `M ${pts[0].x} ${pts[0].y}`;
for (let i = 1; i < pts.length; i++) {
linePath += ` L ${pts[i].x} ${pts[i].y}`;
}
let areaPath = `${linePath} L ${pts[pts.length - 1].x} ${pad.top + plotH} L ${pts[0].x} ${pad.top + plotH} Z`;
s += `<path d="${areaPath}" fill="url(#areaG)"/>`;
s += `<path d="${linePath}" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>`;
}
// Dots
for (const p of pts) {
s += `<circle cx="${p.x}" cy="${p.y}" r="4" fill="#4a90d9" stroke="#ffffff" stroke-width="2"/>`;
s += `<title>${p.time} — ${Math.round(p.temp)}°C</title>`;
}
// Highlight min & max points
if (pts.length > 0) {
let maxIdx = 0,
minIdx = 0;
pts.forEach((p, i) => {
if (p.temp > pts[maxIdx].temp) maxIdx = i;
if (p.temp < pts[minIdx].temp) minIdx = i;
});
if (maxIdx !== minIdx) {
s += `<circle cx="${pts[maxIdx].x}" cy="${pts[maxIdx].y}" r="6" fill="none" stroke="#d97706" stroke-width="2"/>`;
s += `<circle cx="${pts[minIdx].x}" cy="${pts[minIdx].y}" r="6" fill="none" stroke="#2b6cb0" stroke-width="2"/>`;
}
}
svg.innerHTML = s;
}
// ─── Error / Loading ───
function showError(msg) {
const card = document.getElementById('weatherCard');
card.innerHTML = `
<div class="error-message">
<div class="icon">🌧️</div>
<div class="title">Unable to Load Weather</div>
<div class="detail">${escapeHtml(msg || 'Please try again later.')}</div>
</div>
`;
}
function showLoading() {
const card = document.getElementById('weatherCard');
card.innerHTML = `
<div class="loading">
<div class="spinner"></div>
<p>Loading weather…</p>
</div>
`;
}
// ─── Main ───
async function main() {
const params = getParams();
const todayStr = getTodayUTC();
const requestedDate = params.date || todayStr;
// Validate date format
if (!/^\d{4}-\d{2}-\d{2}$/.test(requestedDate)) {
showError('Invalid date format. Expected YYYY-MM-DD.');
return;
}
const useArchive = requestedDate < todayStr;
const apiBase = useArchive ? '/api/om/archive' : '/api/om/forecast';
const url = apiBase +
'?latitude=' + params.lat +
'&longitude=' + params.lon +
'&daily=temperature_2m_max,temperature_2m_min,weather_code' +
'&hourly=temperature_2m' +
'&timezone=UTC' +
'&temperature_unit=celsius' +
'&start_date=' + requestedDate +
'&end_date=' + requestedDate;
showLoading();
try {
const resp = await fetch(url);
if (!resp.ok) {
throw new Error('Server returned ' + resp.status + ' ' + resp.statusText);
}
const data = await resp.json();
// Validate response
if (!data.daily || !data.daily.time || data.daily.time.length === 0) {
throw new Error('No weather data available for this date.');
}
const maxTemp = data.daily.temperature_2m_max[0];
const minTemp = data.daily.temperature_2m_min[0];
const weatherCode = data.daily.weather_code[0];
if (maxTemp === null || maxTemp === undefined || minTemp === null || minTemp === undefined) {
throw new Error('Incomplete temperature data.');
}
// Filter hourly
const hourlyData = [];
if (data.hourly && data.hourly.time) {
for (let i = 0; i < data.hourly.time.length; i++) {
const ts = data.hourly.time[i];
if (ts && ts.startsWith(requestedDate)) {
hourlyData.push({
time: ts,
temp: data.hourly.temperature_2m[i]
});
}
}
}
renderCard({
location: params.name,
date: requestedDate,
maxTemp: maxTemp,
minTemp: minTemp,
weatherCode: weatherCode,
hourlyData: hourlyData
});
} catch (err) {
console.error('Weather fetch error:', err);
showError(err.message || 'Failed to fetch weather data.');
}
}
// ─── Boot ───
document.addEventListener('DOMContentLoaded', main);
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 21,186 | html / css / js | 374 / 6,615 / 14,197 |
|---|---|---|---|
| dom 节点 | 11 | dom 深度 | 5 |
| css 规则 | 37 | 含 js | 是 |
| brightness | 237.5 | contrast | 13.5 |
| colorfulness | 9.7 | 留白 | 99.3% |
该 slot 的 telemetry
| prompt tokens | 321 | completion tokens | 16,387 |
|---|---|---|---|
| total tokens | 16,708 | wall | 107.1 s |
| cost | — | request id | — |
config.json595 B
{
"N": 4,
"auth": {
"credential_ref": "WCB_DEEPSEEK_KEY",
"method": "api-key"
},
"billing": "metered",
"config_id": "deepseek-v4-flash-0731-eff-low--api--official--dev",
"effort": "low",
"family": "deepseek",
"m": {
"min": 4,
"q": 4
},
"model_id": "deepseek-v4-flash-0731",
"protocol": "api",
"served_model": "deepseek-v4-flash",
"telemetry": {
"completion_tokens": 124148,
"cost_usd": null,
"prompt_tokens": 2536,
"total_tokens": 126684,
"wall_ms": 831327
},
"transport": "deepseek-official-api",
"vendor_sanction_ref": null
}send-log4.7 KB
{
"N": 4,
"batch_id": "2026-07-31--official-deepseek-flash-0731",
"config_id": "deepseek-v4-flash-0731-eff-low--api--official--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-31T06:29:47.165656+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:28:00.088909+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-31T06:31:30.224712+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:29:50.688306+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-31T06:33:40.633314+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:31:33.736920+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-31T06:35:47.055242+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:33:44.390814+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-31T06:36:09.519294+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:35:51.057617+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-31T06:38:06.869394+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:36:12.810517+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-31T06:40:09.695147+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:38:10.927952+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-31T06:42:17.318712+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-31T06:40:13.437640+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
}
}
}