deepseek-v4-flash · opencode
opencode
- config
- deepseek-v4-flash--cli--opencode--dev
- batch
- 2026-07-19--unified
- transport
- opencode-cli-isolated-xdg-go-subscription
- protocol
- cli · plan
- 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-4-6 @max · kiro0.78qwen3.6-plus · opencode0.77claude-opus-4-6 @low · kiro0.72claude-opus-4-6 @high · kiro0.69claude-opus-4-8 @medium · kiro0.69最远
claude-fable-5 · CC0.38claude-haiku-4-5 @high · CC0.41kimi-k2.6 · go0.42gpt-5.6-sol @max · codex-oauth0.42claude-haiku-4-5 @xhigh · CC0.42限于 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=1280">
<title>Weather Card</title>
<style>
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
background:linear-gradient(145deg,#0b091d,#1c1642,#2a1f5e);
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
padding:40px;
color:#fff;
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale
}
.card{
width:680px;
background:rgba(255,255,255,0.055);
backdrop-filter:blur(28px);
-webkit-backdrop-filter:blur(28px);
border-radius:28px;
border:1px solid rgba(255,255,255,0.08);
padding:44px 48px 40px;
box-shadow:0 30px 80px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.06)
}
.card-header{
display:flex;
justify-content:space-between;
align-items:flex-start;
margin-bottom:28px
}
.location{font-size:30px;font-weight:600;letter-spacing:-0.4px}
.date-display{font-size:15px;color:rgba(255,255,255,0.5);margin-top:3px}
.weather-main{
display:flex;
align-items:center;
gap:28px;
margin-bottom:20px
}
.weather-icon{font-size:80px;line-height:1;width:90px;text-align:center}
.temp-group{display:flex;flex-direction:column}
.temp-max{font-size:68px;font-weight:250;line-height:1;letter-spacing:-3px}
.temp-deg{font-size:32px;font-weight:250;vertical-align:super;line-height:1}
.temp-min{
font-size:22px;
color:rgba(255,255,255,0.45);
margin-top:2px;
font-weight:400
}
.condition-label{
font-size:17px;
color:rgba(255,255,255,0.6);
margin-bottom:28px;
padding-bottom:24px;
border-bottom:1px solid rgba(255,255,255,0.06)
}
.hourly-title{
font-size:12px;
font-weight:600;
text-transform:uppercase;
letter-spacing:1.2px;
color:rgba(255,255,255,0.35);
margin-bottom:16px
}
.hourly-chart{
display:flex;
align-items:flex-end;
gap:3px;
height:130px;
padding:0 2px
}
.hour-bar{
flex:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:flex-end;
height:100%;
position:relative
}
.bar-fill{
width:100%;
border-radius:3px 3px 0 0;
min-height:2px;
transition:height .4s ease
}
.bar-temp{
font-size:10px;
color:rgba(255,255,255,0.45);
margin-bottom:3px;
font-variant-numeric:tabular-nums
}
.bar-label{
font-size:9px;
color:rgba(255,255,255,0.2);
margin-top:5px
}
.error-state,.loading-state{
text-align:center;
padding:80px 20px;
color:rgba(255,255,255,0.5);
font-size:17px
}
.loading-dot{display:inline-block;animation:dotPulse 1.4s infinite}
.loading-dot:nth-child(2){animation-delay:.2s}
.loading-dot:nth-child(3){animation-delay:.4s}
@keyframes dotPulse{
0%,80%,100%{opacity:.3;transform:scale(.8)}
40%{opacity:1;transform:scale(1)}
}
.error-icon{font-size:40px;display:block;margin-bottom:12px}
.error-msg{font-size:15px;color:rgba(255,255,255,0.4);margin-top:6px}
</style>
</head>
<body>
<div class="card" id="app">
<div class="loading-state" id="loading">
<span class="loading-dot">·</span>
<span class="loading-dot">·</span>
<span class="loading-dot">·</span>
<div style="margin-top:16px;font-size:14px;color:rgba(255,255,255,0.35)">Loading weather data</div>
</div>
<div class="error-state" id="error" style="display:none">
<div class="error-icon">⚠</div>
<div>Unable to load weather data</div>
<div class="error-msg" id="errorMsg"></div>
</div>
<div id="content" style="display:none">
<div class="card-header">
<div>
<div class="location" id="locationName"></div>
<div class="date-display" id="dateDisplay"></div>
</div>
</div>
<div class="weather-main">
<div class="weather-icon" id="weatherIcon"></div>
<div class="temp-group">
<div class="temp-max"><span id="tempMax"></span><span class="temp-deg">°</span></div>
<div class="temp-min">Low <span id="tempMin"></span><span class="temp-deg" style="font-size:14px">°</span></div>
</div>
</div>
<div class="condition-label" id="conditionLabel"></div>
<div class="hourly-section">
<div class="hourly-title">Hourly Temperature</div>
<div class="hourly-chart" id="hourlyChart"></div>
</div>
</div>
</div>
<script>
(function(){
var p=new URLSearchParams(location.search);
var lat=p.get('lat')||'52.52';
var lon=p.get('lon')||'13.405';
var loc=p.get('name')||'Berlin';
var ds=p.get('date')||new Date().toISOString().slice(0,10);
var today=new Date().toISOString().slice(0,10);
var isPast=ds<today;
var ep=isPast?'/api/om/archive':'/api/om/forecast';
var url=ep+'?latitude='+lat+'&longitude='+lon+'&daily=temperature_2m_max,temperature_2m_min,weather_code&hourly=temperature_2m&timezone=UTC&temperature_unit=celsius&start_date='+ds+'&end_date='+ds;
var wc={
0:{e:'☀️',l:'Clear Sky'},1:{e:'🌤️',l:'Mainly Clear'},2:{e:'⛅',l:'Partly Cloudy'},
3:{e:'☁️',l:'Overcast'},45:{e:'🌫️',l:'Foggy'},48:{e:'🌫️',l:'Fog'},
51:{e:'🌦️',l:'Light Drizzle'},53:{e:'🌦️',l:'Drizzle'},55:{e:'🌦️',l:'Heavy Drizzle'},
56:{e:'🌨️',l:'Freezing Drizzle'},57:{e:'🌨️',l:'Freezing Drizzle'},
61:{e:'🌧️',l:'Slight Rain'},63:{e:'🌧️',l:'Rain'},65:{e:'🌧️',l:'Heavy Rain'},
66:{e:'🌨️',l:'Freezing Rain'},67:{e:'🌨️',l:'Freezing Rain'},
71:{e:'🌨️',l:'Slight Snow'},73:{e:'🌨️',l:'Snow'},75:{e:'❄️',l:'Heavy Snow'},
77:{e:'❄️',l:'Snow Grains'},80:{e:'🌦️',l:'Rain Showers'},81:{e:'🌧️',l:'Rain Showers'},
82:{e:'🌧️',l:'Heavy Showers'},85:{e:'🌨️',l:'Snow Showers'},86:{e:'🌨️',l:'Heavy Snow'},
95:{e:'⛈️',l:'Thunderstorm'},96:{e:'⛈️',l:'Thunderstorm'},99:{e:'⛈️',l:'Thunderstorm'}
};
function fmtDate(s){return new Date(s+'T00:00:00Z').toLocaleDateString('en-US',{weekday:'long',month:'long',day:'numeric',year:'numeric',timeZone:'UTC'})}
function tempColor(t,mn,mx){
var r=mx-mn||1;
var v=(t-mn)/r;
return 'hsl('+Math.round(240-v*240)+',78%,58%)';
}
function renderHourly(a){
var c=document.getElementById('hourlyChart');
var mx=Math.max.apply(null,a),mn=Math.min.apply(null,a),rg=mx-mn||1;
var lbls={};
[0,3,6,9,12,15,18,21].forEach(function(h){lbls[h]=1});
a.forEach(function(t,i){
var b=document.createElement('div');b.className='hour-bar';
var tl=document.createElement('div');tl.className='bar-temp';tl.textContent=Math.round(t)+'°';
var f=document.createElement('div');f.className='bar-fill';
var pct=(t-mn)/rg;
f.style.height=(16+pct*84)+'%';
f.style.background='linear-gradient(180deg,'+tempColor(t,mn,mx)+','+tempColor(t-2,mn,mx)+')';
var lb=document.createElement('div');lb.className='bar-label';
lb.textContent=i in lbls?String(i).padStart(2,'0'):'';
b.appendChild(tl);b.appendChild(f);b.appendChild(lb);c.appendChild(b);
});
}
(function load(){
var ld=document.getElementById('loading'),er=document.getElementById('error'),ct=document.getElementById('content');
fetch(url).then(function(r){
if(!r.ok)throw new Error('HTTP '+r.status);
return r.json();
}).then(function(d){
var mx=d.daily.temperature_2m_max[0],mn=d.daily.temperature_2m_min[0],cd=d.daily.weather_code[0],hr=d.hourly.temperature_2m;
var co=wc[cd]||{e:'❓',l:'Unknown'};
document.getElementById('locationName').textContent=loc;
document.getElementById('dateDisplay').textContent=fmtDate(ds);
document.getElementById('weatherIcon').textContent=co.e;
document.getElementById('tempMax').textContent=Math.round(mx);
document.getElementById('tempMin').textContent=Math.round(mn);
document.getElementById('conditionLabel').textContent=co.l;
renderHourly(hr);
ld.style.display='none';ct.style.display='block';
}).catch(function(e){
ld.style.display='none';er.style.display='block';
document.getElementById('errorMsg').textContent=e.message;
});
})();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 8,099 | html / css / js | 1,515 / 2,817 / 3,767 |
|---|---|---|---|
| dom 节点 | 36 | dom 深度 | 8 |
| css 规则 | 28 | 含 js | 是 |
| brightness | 37.7 | contrast | 28.6 |
| colorfulness | 43.0 | 留白 | 57.5% |
该 slot 的 telemetry
| prompt tokens | 0 | completion tokens | 0 |
|---|---|---|---|
| total tokens | 0 | wall | 72.9 s |
| cost | — | request id | — |
config.json593 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_OPENCODE_KEY",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "deepseek-v4-flash--cli--opencode--dev",
"effort": null,
"family": "deepseek",
"m": {
"min": 2,
"q": 2
},
"model_id": "deepseek-v4-flash",
"protocol": "cli",
"served_model": "deepseek-v4-flash",
"telemetry": {
"completion_tokens": null,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 390157
},
"transport": "opencode-cli-isolated-xdg-go-subscription",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-18--dev-opencode-cli",
"config_id": "deepseek-v4-flash--cli--opencode--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T14:26:27.043929+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T14:24:45.959876+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-17T14:27:45.712068+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T14:26:32.828254+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-17T14:30:57.540560+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T14:27:49.544651+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-17T14:31:30.919703+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T14:31:02.722076+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
}
}
}