gpt-5.5 @ high · api
apihigh
- config
- gpt-5.5-eff-high--api--official--dev
- batch
- 2026-07-19--unified
- transport
- openai-official-api
- protocol
- api · metered
- served model
- gpt-5.5-2026-04-23
- 采集于
- 2026年7月18日 11:54 · N=4
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-8 @high · CC0.69gpt-5.6-sol @xhigh · codex-oauth0.69gpt-5.6-terra @low · kiro0.69claude-opus-4-7 @low · kiro0.67claude-fable-5 @xhigh · CC0.66最远
gpt-5.6-luna @medium · codex-oauth0.41gpt-5.6-luna @low · codex-oauth0.42gpt-5.6-luna @high · kiro0.42gpt-5.5 @low · codex-oauth0.42gpt-5.5 @medium · codex-oauth0.44限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25
- min tempmatch展示值:16
- hourlymatchcoverage 8/24 · 8 命中 · 0 不符 · 16 未展示
- 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=1280, initial-scale=1">
<title>Weather Card</title>
<style>
:root {
--bg-1: #071427;
--bg-2: #102a48;
--bg-3: #1a5f7a;
--card: rgba(255, 255, 255, 0.13);
--card-strong: rgba(255, 255, 255, 0.2);
--stroke: rgba(255, 255, 255, 0.22);
--text: #f7fbff;
--muted: rgba(247, 251, 255, 0.72);
--soft: rgba(247, 251, 255, 0.52);
--shadow: rgba(0, 0, 0, 0.32);
--warm: #ffd166;
--cool: #7bdff2;
--hot: #ff8a65;
--cold: #80bfff;
--danger: #ff6b6b;
}
* {
box-sizing: border-box;
}
html,
body {
width: 100%;
min-height: 100%;
margin: 0;
}
body {
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
color: var(--text);
background:
radial-gradient(circle at 18% 18%, rgba(255, 209, 102, 0.22), transparent 25%),
radial-gradient(circle at 82% 22%, rgba(123, 223, 242, 0.22), transparent 28%),
radial-gradient(circle at 50% 100%, rgba(62, 146, 204, 0.28), transparent 36%),
linear-gradient(135deg, var(--bg-1), var(--bg-2) 48%, var(--bg-3));
overflow-x: hidden;
}
.stage {
width: 1280px;
min-height: 800px;
margin: 0 auto;
position: relative;
display: grid;
place-items: center;
padding: 44px;
isolation: isolate;
}
.orb {
position: absolute;
border-radius: 999px;
filter: blur(0.5px);
opacity: 0.7;
z-index: -1;
}
.orb.one {
width: 330px;
height: 330px;
right: 74px;
top: 54px;
background: radial-gradient(circle at 34% 32%, rgba(255,255,255,0.95), rgba(255, 209, 102, 0.44) 30%, rgba(255, 177, 66, 0.11) 67%, transparent 70%);
}
.orb.two {
width: 230px;
height: 230px;
left: 86px;
bottom: 74px;
background: radial-gradient(circle at 38% 36%, rgba(255,255,255,0.56), rgba(123, 223, 242, 0.25) 38%, rgba(123, 223, 242, 0.06) 70%, transparent 73%);
}
.weather-shell {
width: 1080px;
min-height: 640px;
border: 1px solid var(--stroke);
border-radius: 38px;
background:
linear-gradient(135deg, rgba(255,255,255,0.20), rgba(255,255,255,0.08)),
radial-gradient(circle at 12% 8%, rgba(255,255,255,0.16), transparent 34%),
radial-gradient(circle at 92% 92%, rgba(123,223,242,0.16), transparent 36%);
box-shadow:
0 36px 90px var(--shadow),
inset 0 1px 0 rgba(255,255,255,0.26);
backdrop-filter: blur(26px);
-webkit-backdrop-filter: blur(26px);
overflow: hidden;
position: relative;
}
.weather-shell::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px),
linear-gradient(0deg, rgba(255,255,255,0.06) 1px, transparent 1px);
background-size: 80px 80px;
mask-image: radial-gradient(circle at 50% 45%, black, transparent 76%);
opacity: 0.35;
}
.content {
position: relative;
z-index: 1;
padding: 42px;
min-height: 640px;
display: grid;
grid-template-columns: 410px 1fr;
gap: 28px;
}
.hero {
border-radius: 30px;
padding: 32px;
background:
linear-gradient(160deg, rgba(255,255,255,0.24), rgba(255,255,255,0.08)),
radial-gradient(circle at 72% 20%, rgba(255,209,102,0.24), transparent 34%);
border: 1px solid rgba(255,255,255,0.2);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.22);
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 556px;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 13px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--muted);
font-weight: 750;
}
.pulse {
width: 9px;
height: 9px;
border-radius: 50%;
background: #89f7c1;
box-shadow: 0 0 0 7px rgba(137,247,193,0.12);
}
.location {
margin: 20px 0 8px;
font-size: 48px;
line-height: 1.03;
letter-spacing: -0.055em;
font-weight: 820;
overflow-wrap: anywhere;
}
.date {
color: var(--muted);
font-size: 18px;
font-weight: 560;
}
.condition-area {
margin-top: 40px;
display: grid;
place-items: center;
text-align: center;
}
.weather-icon {
width: 178px;
height: 178px;
display: grid;
place-items: center;
font-size: 102px;
line-height: 1;
border-radius: 50%;
background:
radial-gradient(circle at 35% 30%, rgba(255,255,255,0.44), rgba(255,255,255,0.12) 45%, rgba(255,255,255,0.03) 72%),
linear-gradient(135deg, rgba(255,255,255,0.18), rgba(255,255,255,0.05));
box-shadow:
0 20px 54px rgba(0,0,0,0.2),
inset 0 1px 0 rgba(255,255,255,0.32);
border: 1px solid rgba(255,255,255,0.22);
}
.condition {
margin-top: 22px;
font-size: 26px;
font-weight: 760;
letter-spacing: -0.025em;
}
.summary {
color: var(--muted);
margin-top: 8px;
font-size: 15px;
line-height: 1.5;
max-width: 310px;
}
.temp-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
margin-top: 34px;
}
.temp-tile {
border-radius: 24px;
padding: 20px;
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.16);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.14);
}
.temp-label {
color: var(--muted);
font-size: 13px;
letter-spacing: 0.09em;
text-transform: uppercase;
font-weight: 760;
}
.temp-value {
margin-top: 8px;
font-size: 38px;
line-height: 1;
font-weight: 820;
letter-spacing: -0.06em;
}
.temp-value.max {
color: #ffe0a1;
}
.temp-value.min {
color: #bbecff;
}
.details {
display: grid;
grid-template-rows: auto 1fr;
gap: 22px;
min-width: 0;
}
.top-strip {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.mini-card {
border-radius: 26px;
padding: 22px;
background: rgba(255,255,255,0.105);
border: 1px solid rgba(255,255,255,0.16);
min-height: 126px;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.13);
}
.mini-title {
color: var(--soft);
font-size: 13px;
letter-spacing: 0.095em;
text-transform: uppercase;
font-weight: 790;
}
.mini-value {
margin-top: 12px;
font-size: 25px;
font-weight: 800;
letter-spacing: -0.035em;
line-height: 1.15;
overflow-wrap: anywhere;
}
.mini-sub {
color: var(--muted);
font-size: 13px;
margin-top: 8px;
line-height: 1.35;
}
.hourly-panel {
border-radius: 30px;
padding: 28px;
background:
linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.075));
border: 1px solid rgba(255,255,255,0.17);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
min-height: 408px;
display: flex;
flex-direction: column;
min-width: 0;
}
.panel-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 20px;
margin-bottom: 24px;
}
.panel-title {
font-size: 24px;
line-height: 1.1;
letter-spacing: -0.035em;
font-weight: 820;
}
.panel-subtitle {
color: var(--muted);
font-size: 14px;
margin-top: 6px;
}
.range-pill {
flex: 0 0 auto;
border-radius: 999px;
padding: 11px 15px;
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.17);
color: var(--muted);
font-size: 13px;
font-weight: 720;
}
.chart-wrap {
position: relative;
flex: 1;
min-height: 258px;
border-radius: 24px;
padding: 22px 18px 14px;
background:
linear-gradient(180deg, rgba(6,17,31,0.18), rgba(6,17,31,0.08));
border: 1px solid rgba(255,255,255,0.12);
overflow: hidden;
}
.chart-wrap::before {
content: "";
position: absolute;
left: 18px;
right: 18px;
top: 22px;
bottom: 48px;
background:
linear-gradient(to bottom, rgba(255,255,255,0.14) 1px, transparent 1px);
background-size: 100% 25%;
opacity: 0.5;
pointer-events: none;
}
.bars {
height: 210px;
display: grid;
grid-template-columns: repeat(var(--count, 24), minmax(10px, 1fr));
gap: 6px;
align-items: end;
position: relative;
z-index: 1;
}
.hour {
min-width: 0;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
gap: 7px;
}
.bar-label {
font-size: 11px;
color: rgba(247,251,255,0.76);
font-weight: 720;
line-height: 1;
white-space: nowrap;
transform: translateY(1px);
}
.bar {
width: 100%;
max-width: 18px;
min-height: 8px;
height: var(--h);
border-radius: 999px 999px 6px 6px;
background:
linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.14)),
linear-gradient(180deg, var(--bar-top), var(--bar-bottom));
box-shadow:
0 8px 18px rgba(0,0,0,0.15),
inset 0 1px 0 rgba(255,255,255,0.45);
border: 1px solid rgba(255,255,255,0.16);
}
.hour-time {
margin-top: 3px;
font-size: 10px;
color: rgba(247,251,255,0.52);
font-weight: 680;
line-height: 1;
white-space: nowrap;
}
.loading,
.error {
width: 100%;
min-height: 556px;
grid-column: 1 / -1;
border-radius: 30px;
display: grid;
place-items: center;
text-align: center;
padding: 48px;
background: rgba(255,255,255,0.105);
border: 1px solid rgba(255,255,255,0.17);
}
.loader {
width: 66px;
height: 66px;
border-radius: 50%;
border: 5px solid rgba(255,255,255,0.17);
border-top-color: rgba(255,255,255,0.9);
margin: 0 auto 24px;
animation: spin 1s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.state-title {
font-size: 34px;
font-weight: 820;
letter-spacing: -0.045em;
margin: 0;
}
.state-text {
max-width: 560px;
margin: 12px auto 0;
color: var(--muted);
line-height: 1.6;
font-size: 16px;
}
.error-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 66px;
height: 66px;
border-radius: 50%;
margin-bottom: 24px;
background: rgba(255,107,107,0.16);
border: 1px solid rgba(255,107,107,0.32);
color: #ffd0d0;
font-size: 34px;
font-weight: 900;
}
.footnote {
position: absolute;
right: 46px;
bottom: 22px;
color: rgba(247,251,255,0.42);
font-size: 12px;
letter-spacing: 0.03em;
}
</style>
</head>
<body>
<main class="stage">
<div class="orb one"></div>
<div class="orb two"></div>
<section class="weather-shell" aria-live="polite">
<div class="content" id="app">
<div class="loading">
<div>
<div class="loader" aria-hidden="true"></div>
<h1 class="state-title">Loading weather</h1>
<p class="state-text">Fetching the requested day’s forecast in Celsius.</p>
</div>
</div>
</div>
<div class="footnote">UTC weather data · Celsius</div>
</section>
</main>
<script>
(function () {
"use strict";
var DEFAULTS = {
lat: 52.52,
lon: 13.405,
name: "Berlin"
};
var app = document.getElementById("app");
function todayUTC() {
return new Date().toISOString().slice(0, 10);
}
function validDateString(value) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(value || "")) return false;
var d = new Date(value + "T00:00:00Z");
return !isNaN(d.getTime()) && d.toISOString().slice(0, 10) === value;
}
function clampNumber(value, fallback, min, max) {
var n = Number(value);
if (!Number.isFinite(n)) return fallback;
return Math.min(max, Math.max(min, n));
}
function parseParams() {
var params = new URLSearchParams(window.location.search);
var date = params.get("date") || todayUTC();
if (!validDateString(date)) date = todayUTC();
var rawName = params.get("name");
var name = rawName && rawName.trim() ? rawName.trim().slice(0, 80) : DEFAULTS.name;
return {
lat: clampNumber(params.get("lat"), DEFAULTS.lat, -90, 90),
lon: clampNumber(params.get("lon"), DEFAULTS.lon, -180, 180),
name: name,
date: date
};
}
function endpointForDate(date) {
return date < todayUTC() ? "/api/om/archive" : "/api/om/forecast";
}
function buildUrl(endpoint, cfg) {
var query = new URLSearchParams({
latitude: String(cfg.lat),
longitude: String(cfg.lon),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: cfg.date,
end_date: cfg.date
});
return endpoint + "?" + query.toString();
}
function weatherInfo(code) {
var map = {
0: ["Clear sky", "☀️"],
1: ["Mainly clear", "🌤️"],
2: ["Partly cloudy", "⛅"],
3: ["Overcast", "☁️"],
45: ["Fog", "🌫️"],
48: ["Depositing rime fog", "🌫️"],
51: ["Light drizzle", "🌦️"],
53: ["Moderate drizzle", "🌦️"],
55: ["Dense drizzle", "🌧️"],
56: ["Light freezing drizzle", "🌧️"],
57: ["Dense freezing drizzle", "🌧️"],
61: ["Slight rain", "🌦️"],
63: ["Moderate rain", "🌧️"],
65: ["Heavy rain", "🌧️"],
66: ["Light freezing rain", "🌧️"],
67: ["Heavy freezing rain", "🌧️"],
71: ["Slight snow fall", "🌨️"],
73: ["Moderate snow fall", "🌨️"],
75: ["Heavy snow fall", "❄️"],
77: ["Snow grains", "❄️"],
80: ["Slight rain showers", "🌦️"],
81: ["Moderate rain showers", "🌧️"],
82: ["Violent rain showers", "⛈️"],
85: ["Slight snow showers", "🌨️"],
86: ["Heavy snow showers", "❄️"],
95: ["Thunderstorm", "⛈️"],
96: ["Thunderstorm with slight hail", "⛈️"],
99: ["Thunderstorm with heavy hail", "⛈️"]
};
return map[Number(code)] || ["Unknown conditions", "🌡️"];
}
function formatDate(dateString) {
var d = new Date(dateString + "T00:00:00Z");
return new Intl.DateTimeFormat("en", {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
timeZone: "UTC"
}).format(d);
}
function roundTemp(value) {
if (value === null || value === undefined || !Number.isFinite(Number(value))) return "—";
return Math.round(Number(value)) + "°";
}
function preciseTemp(value) {
if (value === null || value === undefined || !Number.isFinite(Number(value))) return "—";
return Number(value).toFixed(1).replace(/\.0$/, "") + "°C";
}
function escapeHTML(value) {
return String(value)
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
function extractDaily(data, date) {
if (!data || !data.daily) throw new Error("Missing daily weather data.");
var times = data.daily.time || [];
var index = times.indexOf(date);
if (index < 0 && times.length === 1) index = 0;
if (index < 0) throw new Error("No daily weather data for the requested date.");
return {
max: data.daily.temperature_2m_max ? data.daily.temperature_2m_max[index] : null,
min: data.daily.temperature_2m_min ? data.daily.temperature_2m_min[index] : null,
code: data.daily.weather_code ? data.daily.weather_code[index] : null
};
}
function extractHourly(data, date) {
if (!data || !data.hourly || !Array.isArray(data.hourly.time) || !Array.isArray(data.hourly.temperature_2m)) {
throw new Error("Missing hourly weather data.");
}
var rows = [];
for (var i = 0; i < data.hourly.time.length; i++) {
var time = data.hourly.time[i];
if (typeof time === "string" && time.slice(0, 10) === date) {
rows.push({
time: time,
temp: data.hourly.temperature_2m[i]
});
}
}
if (!rows.length && data.hourly.time.length === data.hourly.temperature_2m.length) {
for (var j = 0; j < data.hourly.time.length; j++) {
rows.push({
time: data.hourly.time[j],
temp: data.hourly.temperature_2m[j]
});
}
}
if (!rows.length) throw new Error("No hourly temperatures for the requested date.");
return rows;
}
function tempColor(temp, min, max) {
var span = Math.max(1, max - min);
var t = (temp - min) / span;
if (t < 0.33) return ["#bbecff", "#5aa9e6"];
if (t < 0.66) return ["#e9f7a9", "#7bdff2"];
return ["#ffd166", "#ff8a65"];
}
function render(data, cfg) {
var daily = extractDaily(data, cfg.date);
var hourly = extractHourly(data, cfg.date);
var info = weatherInfo(daily.code);
var temps = hourly
.map(function (h) { return Number(h.temp); })
.filter(function (n) { return Number.isFinite(n); });
var minHour = temps.length ? Math.min.apply(null, temps) : Number(daily.min);
var maxHour = temps.length ? Math.max.apply(null, temps) : Number(daily.max);
if (!Number.isFinite(minHour)) minHour = 0;
if (!Number.isFinite(maxHour)) maxHour = minHour + 1;
var chartMin = Math.min(minHour, Number(daily.min));
var chartMax = Math.max(maxHour, Number(daily.max));
if (!Number.isFinite(chartMin)) chartMin = minHour;
if (!Number.isFinite(chartMax)) chartMax = maxHour;
if (chartMax === chartMin) chartMax = chartMin + 1;
var barsHTML = hourly.map(function (h, index) {
var temp = Number(h.temp);
var safeTemp = Number.isFinite(temp) ? temp : chartMin;
var normalized = (safeTemp - chartMin) / Math.max(1, chartMax - chartMin);
var height = 18 + normalized * 76;
var colors = tempColor(safeTemp, chartMin, chartMax);
var hour = "—";
if (typeof h.time === "string") {
var parts = h.time.split("T");
if (parts[1]) hour = parts[1].slice(0, 2);
}
var showTime = index % 3 === 0 || hourly.length <= 12;
return '<div class="hour">' +
'<div class="bar-label">' + escapeHTML(roundTemp(temp)) + '</div>' +
'<div class="bar" style="--h:' + height.toFixed(2) + '%;--bar-top:' + colors[0] + ';--bar-bottom:' + colors[1] + '"></div>' +
'<div class="hour-time">' + (showTime ? escapeHTML(hour + ":00") : " ") + '</div>' +
'</div>';
}).join("");
var avg = temps.length ? temps.reduce(function (a, b) { return a + b; }, 0) / temps.length : null;
var source = endpointForDate(cfg.date).indexOf("archive") >= 0 ? "Historical archive" : "Forecast";
var tempSpread = Number.isFinite(Number(daily.max)) && Number.isFinite(Number(daily.min))
? preciseTemp(Number(daily.max) - Number(daily.min)).replace("°C", "°C swing")
: "—";
app.innerHTML =
'<aside class="hero">' +
'<div>' +
'<div class="eyebrow"><span class="pulse"></span><span>Daily weather</span></div>' +
'<h1 class="location">' + escapeHTML(cfg.name) + '</h1>' +
'<div class="date">' + escapeHTML(formatDate(cfg.date)) + '</div>' +
'<div class="condition-area">' +
'<div class="weather-icon" aria-hidden="true">' + escapeHTML(info[1]) + '</div>' +
'<div class="condition">' + escapeHTML(info[0]) + '</div>' +
'<div class="summary">Temperatures shown in Celsius for the selected UTC calendar day.</div>' +
'</div>' +
'</div>' +
'<div class="temp-row">' +
'<div class="temp-tile">' +
'<div class="temp-label">Maximum</div>' +
'<div class="temp-value max">' + escapeHTML(roundTemp(daily.max)) + '</div>' +
'</div>' +
'<div class="temp-tile">' +
'<div class="temp-label">Minimum</div>' +
'<div class="temp-value min">' + escapeHTML(roundTemp(daily.min)) + '</div>' +
'</div>' +
'</div>' +
'</aside>' +
'<section class="details">' +
'<div class="top-strip">' +
'<div class="mini-card">' +
'<div class="mini-title">Coordinates</div>' +
'<div class="mini-value">' + escapeHTML(Number(cfg.lat).toFixed(3)) + '°, ' + escapeHTML(Number(cfg.lon).toFixed(3)) + '°</div>' +
'<div class="mini-sub">Latitude / longitude</div>' +
'</div>' +
'<div class="mini-card">' +
'<div class="mini-title">Average hourly</div>' +
'<div class="mini-value">' + escapeHTML(preciseTemp(avg)) + '</div>' +
'<div class="mini-sub">' + escapeHTML(hourly.length) + ' hourly readings</div>' +
'</div>' +
'<div class="mini-card">' +
'<div class="mini-title">Day range</div>' +
'<div class="mini-value">' + escapeHTML(tempSpread) + '</div>' +
'<div class="mini-sub">' + escapeHTML(source) + ' data</div>' +
'</div>' +
'</div>' +
'<div class="hourly-panel">' +
'<div class="panel-head">' +
'<div>' +
'<div class="panel-title">Hourly temperatures</div>' +
'<div class="panel-subtitle">UTC readings for ' + escapeHTML(cfg.date) + '</div>' +
'</div>' +
'<div class="range-pill">' + escapeHTML(preciseTemp(chartMin)) + ' – ' + escapeHTML(preciseTemp(chartMax)) + '</div>' +
'</div>' +
'<div class="chart-wrap">' +
'<div class="bars" style="--count:' + hourly.length + '">' + barsHTML + '</div>' +
'</div>' +
'</div>' +
'</section>';
}
function renderError(message) {
app.innerHTML =
'<div class="error" role="alert">' +
'<div>' +
'<div class="error-badge">!</div>' +
'<h1 class="state-title">Weather data could not be loaded</h1>' +
'<p class="state-text">The page could not load the requested weather information. Please check the location/date parameters and try again.</p>' +
(message ? '<p class="state-text">' + escapeHTML(message) + '</p>' : '') +
'</div>' +
'</div>';
}
async function load() {
var cfg = parseParams();
var url = buildUrl(endpointForDate(cfg.date), cfg);
try {
var response = await fetch(url, {
method: "GET",
headers: { "Accept": "application/json" },
credentials: "same-origin"
});
if (!response.ok) {
throw new Error("Request failed with status " + response.status + ".");
}
var data = await response.json();
render(data, cfg);
} catch (err) {
renderError(err && err.message ? err.message : "");
}
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 24,969 | html / css / js | 790 / 11,428 / 12,751 |
|---|---|---|---|
| dom 节点 | 19 | dom 深度 | 8 |
| css 规则 | 52 | 含 js | 是 |
| brightness | 99.8 | contrast | 41.4 |
| colorfulness | 37.7 | 留白 | 23.2% |
该 slot 的 telemetry
| prompt tokens | 312 | completion tokens | 8,209 |
|---|---|---|---|
| total tokens | 8,521 | wall | 73.6 s |
| cost | — | request id | — |
config.json568 B
{
"N": 4,
"auth": {
"credential_ref": "WCB_OPENAI_OFFICIAL_KEY",
"method": "api-key"
},
"billing": "metered",
"config_id": "gpt-5.5-eff-high--api--official--dev",
"effort": "high",
"family": "gpt",
"m": {
"min": 4,
"q": 4
},
"model_id": "gpt-5.5",
"protocol": "api",
"served_model": "gpt-5.5-2026-04-23",
"telemetry": {
"completion_tokens": 106575,
"cost_usd": null,
"prompt_tokens": 2464,
"total_tokens": 109039,
"wall_ms": 868507
},
"transport": "openai-official-api",
"vendor_sanction_ref": null
}send-log4.6 KB
{
"N": 4,
"batch_id": "2026-07-18--official-gpt",
"config_id": "gpt-5.5-eff-high--api--official--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T23:42:07.896700+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:41:04.774875+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-17T23:43:26.044431+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:42:12.491506+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-17T23:46:27.765865+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:43:30.740079+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-17T23:47:35.878126+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:46:32.810783+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-17T23:48:53.674345+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:47:40.522006+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-17T23:53:09.680317+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:48:57.837610+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-17T23:54:49.135651+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:53:15.150443+00:00"
}
],
"block_index": 3,
"model_reaching_attempt_index": 0,
"slot_index": 3,
"terminal_state": "valid",
"variant": "P-q"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T23:56:05.855397+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T23:54:53.094082+00:00"
}
],
"block_index": 3,
"model_reaching_attempt_index": 0,
"slot_index": 3,
"terminal_state": "valid",
"variant": "P-min"
}
],
"retry_policy": {
"max_unreachable_retries": 5,
"rate_limit_backoff": {
"max_attempts": 4,
"max_total_ms": 60000
}
}
}