gpt-5.6-terra @ low · codex-oauth
codex-oauthlow
- config
- gpt-5.6-terra-eff-low--cli--codex-oauth--dev
- batch
- 2026-07-19--unified
- transport
- codex-cli-oauth-chatgpt
- protocol
- cli · plan
- served model
- gpt-5.6-terra
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-7 @low · kiro0.72gpt-5.6-sol @low · kiro0.72gpt-5.6-sol @low · codex-oauth0.69gpt-5.6-terra @low · kiro0.69qwen3.8-max-preview · qoder0.69最远
gpt-5.6-luna @low · codex-oauth0.38gpt-5.6-luna @medium · codex-oauth0.39kimi-k2.6 · go0.41gpt-5.5 @medium · codex-oauth0.41gpt-5.5 @low · codex-oauth0.41限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempambiguousinsufficient-distinct-temperature-nodes
- min tempambiguousinsufficient-distinct-temperature-nodes
- 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 {
color-scheme: dark;
--ink: #f7f7fb;
--muted: #babdd0;
--line: rgba(255,255,255,.13);
--panel: rgba(16, 18, 38, .68);
}
* { box-sizing: border-box; }
body {
margin: 0;
min-width: 1280px;
min-height: 800px;
overflow: hidden;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background:
radial-gradient(circle at 16% 12%, rgba(113, 151, 255, .34), transparent 29%),
radial-gradient(circle at 87% 82%, rgba(94, 219, 210, .20), transparent 30%),
linear-gradient(135deg, #151b42 0%, #22285d 47%, #0b1937 100%);
color: var(--ink);
}
.orb {
position: absolute; border-radius: 50%; filter: blur(1px); opacity: .75;
pointer-events: none;
}
.orb.one { width: 420px; height: 420px; right: -120px; top: -105px; background: rgba(255,197,105,.18); }
.orb.two { width: 310px; height: 310px; left: -100px; bottom: -110px; background: rgba(145,113,255,.20); }
main {
width: 1120px; min-height: 646px; margin: 77px auto;
border: 1px solid rgba(255,255,255,.18);
border-radius: 30px;
background: linear-gradient(120deg, rgba(34,42,94,.88), rgba(11,21,50,.76));
box-shadow: 0 28px 80px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
backdrop-filter: blur(18px);
overflow: hidden;
position: relative;
}
.top {
display: flex; align-items: flex-start; justify-content: space-between;
padding: 44px 48px 34px;
}
.eyebrow {
color: #cfd4ff; text-transform: uppercase; letter-spacing: .16em;
font-size: 11px; font-weight: 800; margin-bottom: 11px;
}
h1 { margin: 0; font-size: 34px; line-height: 1.08; letter-spacing: -.04em; }
.date { margin: 11px 0 0; color: var(--muted); font-size: 15px; }
.badge {
border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.08);
border-radius: 999px; padding: 10px 15px; color: #e7e9ff;
font-size: 12px; font-weight: 700; letter-spacing: .04em;
}
.hero {
margin: 0 48px; padding: 31px 34px;
border: 1px solid var(--line); border-radius: 22px;
background: linear-gradient(105deg, rgba(255,255,255,.11), rgba(255,255,255,.035));
display: grid; grid-template-columns: 1fr 1.18fr; align-items: center;
}
.condition { display: flex; align-items: center; gap: 22px; }
.weather-icon {
width: 94px; height: 94px; flex: 0 0 94px; display: grid; place-items: center;
border-radius: 28px; background: rgba(255,255,255,.11); font-size: 53px;
box-shadow: inset 0 1px 0 rgba(255,255,255,.13);
}
.condition-name { font-size: 21px; font-weight: 750; letter-spacing: -.02em; }
.condition-detail { color: var(--muted); margin-top: 7px; font-size: 14px; }
.temperatures { display: flex; justify-content: flex-end; align-items: center; gap: 27px; }
.current-like { font-size: 74px; line-height: .9; font-weight: 300; letter-spacing: -.08em; }
.temp-pair { border-left: 1px solid var(--line); padding-left: 27px; display: grid; gap: 10px; }
.temp-pair div { font-size: 15px; color: var(--muted); }
.temp-pair strong { color: var(--ink); font-size: 18px; margin-left: 9px; }
.section-title {
display: flex; justify-content: space-between; align-items: center;
margin: 34px 48px 16px;
}
.section-title h2 { margin: 0; font-size: 14px; letter-spacing: .02em; }
.section-title span { color: var(--muted); font-size: 12px; }
.hours {
display: flex; gap: 9px; margin: 0 48px 40px;
}
.hour {
min-width: 0; flex: 1; min-height: 145px; padding: 17px 9px 13px;
border: 1px solid var(--line); border-radius: 16px;
background: rgba(255,255,255,.045); text-align: center;
display: flex; flex-direction: column; justify-content: space-between;
}
.hour .time { font-size: 11px; color: var(--muted); font-weight: 650; }
.hour .dot { width: 7px; height: 7px; border-radius: 50%; background: #b8c8ff; margin: 0 auto; box-shadow: 0 0 14px #adc4ff; }
.hour .value { font-size: 17px; font-weight: 700; letter-spacing: -.03em; }
.message {
margin: 0 48px 42px; padding: 28px; border: 1px solid var(--line);
border-radius: 18px; background: rgba(255,255,255,.06); color: var(--muted);
}
.message strong { display: block; color: var(--ink); font-size: 18px; margin-bottom: 7px; }
</style>
</head>
<body>
<div class="orb one"></div><div class="orb two"></div>
<main>
<section class="top">
<div>
<div class="eyebrow">Daily weather</div>
<h1 id="location">Berlin</h1>
<p class="date" id="date">Loading date…</p>
</div>
<div class="badge">UTC · CELSIUS</div>
</section>
<div id="content"><div class="message"><strong>Loading weather</strong>Gathering the day’s forecast…</div></div>
</main>
<script>
(() => {
const params = new URLSearchParams(location.search);
const utcToday = new Date().toISOString().slice(0, 10);
const date = /^\d{4}-\d{2}-\d{2}$/.test(params.get("date") || "") ? params.get("date") : utcToday;
const lat = Number(params.get("lat"));
const lon = Number(params.get("lon"));
const latitude = Number.isFinite(lat) ? lat : 52.52;
const longitude = Number.isFinite(lon) ? lon : 13.405;
const name = (params.get("name") || "Berlin").trim() || "Berlin";
const locationEl = document.getElementById("location");
const dateEl = document.getElementById("date");
const content = document.getElementById("content");
locationEl.textContent = name;
dateEl.textContent = new Intl.DateTimeFormat("en-US", {
weekday: "long", month: "long", day: "numeric", year: "numeric", timeZone: "UTC"
}).format(new Date(date + "T12:00:00Z"));
const conditions = {
0: ["☀️", "Clear sky"], 1: ["🌤️", "Mainly clear"], 2: ["⛅", "Partly cloudy"],
3: ["☁️", "Overcast"], 45: ["🌫️", "Foggy"], 48: ["🌫️", "Rime fog"],
51: ["🌦️", "Light drizzle"], 53: ["🌦️", "Drizzle"], 55: ["🌧️", "Heavy drizzle"],
56: ["🌧️", "Freezing drizzle"], 57: ["🌧️", "Heavy freezing drizzle"],
61: ["🌦️", "Light rain"], 63: ["🌧️", "Rain"], 65: ["🌧️", "Heavy rain"],
66: ["🌧️", "Freezing rain"], 67: ["🌧️", "Heavy freezing rain"],
71: ["🌨️", "Light snow"], 73: ["🌨️", "Snowfall"], 75: ["❄️", "Heavy snow"],
77: ["❄️", "Snow grains"], 80: ["🌦️", "Rain showers"], 81: ["🌧️", "Rain showers"],
82: ["⛈️", "Violent showers"], 85: ["🌨️", "Snow showers"], 86: ["❄️", "Heavy snow showers"],
95: ["⛈️", "Thunderstorm"], 96: ["⛈️", "Thunderstorm with hail"], 99: ["⛈️", "Severe thunderstorm"]
};
const q = new URLSearchParams({
latitude, longitude,
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC", temperature_unit: "celsius",
start_date: date, end_date: date
});
const endpoint = date < utcToday ? "/api/om/archive" : "/api/om/forecast";
fetch(endpoint + "?" + q)
.then(r => { if (!r.ok) throw new Error("Request failed"); return r.json(); })
.then(data => {
const daily = data.daily || {};
const max = daily.temperature_2m_max && daily.temperature_2m_max[0];
const min = daily.temperature_2m_min && daily.temperature_2m_min[0];
const code = daily.weather_code && daily.weather_code[0];
const hourly = (data.hourly?.time || []).map((time, i) => ({ time, value: data.hourly.temperature_2m?.[i] }))
.filter(item => item.time.slice(0, 10) === date && Number.isFinite(item.value));
if (!Number.isFinite(max) || !Number.isFinite(min) || !hourly.length) throw new Error("Incomplete weather data");
const [icon, label] = conditions[code] || ["🌡️", "Weather conditions"];
const picks = hourly.filter((_, i) => i % 3 === 0).slice(0, 8);
content.innerHTML = `
<section class="hero">
<div class="condition">
<div class="weather-icon">${icon}</div>
<div><div class="condition-name">${label}</div><div class="condition-detail">A look at today’s temperature range</div></div>
</div>
<div class="temperatures">
<div class="current-like">${Math.round(max)}°</div>
<div class="temp-pair"><div>High <strong>${Math.round(max)}°C</strong></div><div>Low <strong>${Math.round(min)}°C</strong></div></div>
</div>
</section>
<div class="section-title"><h2>Hourly temperatures</h2><span>24-hour outlook</span></div>
<section class="hours">${picks.map((item, i) => `
<div class="hour"><div class="time">${item.time.slice(11, 16)}</div><div class="dot" style="opacity:${.45 + i / 16}"></div><div class="value">${Math.round(item.value)}°</div></div>
`).join("")}</section>`;
})
.catch(() => {
content.innerHTML = `<div class="message"><strong>Weather data couldn’t be loaded.</strong>Please check the location and try again.</div>`;
});
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 9,160 | html / css / js | 650 / 4,317 / 4,193 |
|---|---|---|---|
| dom 节点 | 20 | dom 深度 | 6 |
| css 规则 | 32 | 含 js | 是 |
| brightness | 45.6 | contrast | 16.6 |
| colorfulness | 23.2 | 留白 | 92.3% |
该 slot 的 telemetry
| prompt tokens | 0 | completion tokens | 8,728 |
|---|---|---|---|
| total tokens | 0 | wall | 58.7 s |
| cost | — | request id | — |
config.json563 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-terra-eff-low--cli--codex-oauth--dev",
"effort": "low",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-terra",
"protocol": "cli",
"served_model": "gpt-5.6-terra",
"telemetry": {
"completion_tokens": 34301,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 219176
},
"transport": "codex-cli-oauth-chatgpt",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-17--dev-codex-oauth-gpt-5.6-terra",
"config_id": "gpt-5.6-terra-eff-low--cli--codex-oauth--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:51:16.533292+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:50:17.805720+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-17T13:52:15.298866+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:51:20.917876+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-17T13:53:06.540803+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:52:19.054660+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-17T13:54:09.105448+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:53:10.509802+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-q"
}
],
"retry_policy": {
"max_unreachable_retries": 5,
"rate_limit_backoff": {
"max_attempts": 4,
"max_total_ms": 60000
}
}
}