hy3-free · api
api
- config
- hy3-free--zen-free--dev
- batch
- 2026-07-19--unified
- transport
- opencode-zen-free-tier
- protocol
- api · plan
- served model
- tencent/hy3:free
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-opus-4-8 @high · CC0.64claude-opus-4-8 @medium · kiro0.64claude-sonnet-5 @medium · kiro0.64minimax-m2.7 · opencode0.64glm-5 · kiro0.63最远
gpt-5.6-sol @ultra · codex-oauth0.44gemini-3.1-pro-preview @low · api0.44minimax-m2.5 · kiro0.45grok-4.3 @medium · api0.45gpt-5.6-luna @medium · codex-oauth0.45限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmatch展示值:25.3
- 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">
<title>Weather Card</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
width: 1280px;
height: 800px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.card {
width: 960px;
height: 640px;
background: rgba(255, 255, 255, 0.08);
backdrop-filter: blur(20px);
border: 1px solid rgba(255,255,255,0.18);
border-radius: 24px;
padding: 48px 56px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: auto 1fr;
gap: 32px;
box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}
.header {
grid-column: 1 / 3;
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.loc {
font-size: 42px;
font-weight: 600;
letter-spacing: 0.5px;
}
.date {
font-size: 20px;
opacity: 0.85;
margin-top: 6px;
}
.summary {
display: flex;
flex-direction: column;
justify-content: center;
}
.weather-icon {
font-size: 96px;
line-height: 1;
margin-bottom: 12px;
}
.condition {
font-size: 28px;
font-weight: 500;
}
.temps {
margin-top: 24px;
font-size: 22px;
}
.temps span { display:inline-block; margin-right: 28px; }
.max b { color: #ffd166; }
.min b { color: #8ecae6; }
.hourly {
background: rgba(0,0,0,0.15);
border-radius: 16px;
padding: 20px;
overflow-y: auto;
}
.hourly h3 {
font-size: 18px;
font-weight: 600;
margin-bottom: 16px;
opacity: 0.9;
}
.hour-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px 16px;
}
.hour {
display: flex;
justify-content: space-between;
font-size: 15px;
padding: 6px 10px;
background: rgba(255,255,255,0.06);
border-radius: 8px;
}
.hour .t { font-weight: 600; }
.error {
grid-column: 1 / 3;
text-align: center;
font-size: 24px;
color: #ffb3b3;
align-self: center;
}
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; }
</style>
</head>
<body>
<div class="card" id="card">
<div class="header">
<div>
<div class="loc" id="loc">—</div>
<div class="date" id="date">—</div>
</div>
</div>
<div class="summary">
<div class="weather-icon" id="icon">⛅</div>
<div class="condition" id="cond">—</div>
<div class="temps">
<span class="max">Max: <b id="tmax">—</b></span>
<span class="min">Min: <b id="tmin">—</b></span>
</div>
</div>
<div class="hourly">
<h3>Hourly Temperature (UTC)</h3>
<div class="hour-grid" id="hours"></div>
</div>
</div>
<script>
(function(){
const params = new URLSearchParams(location.search);
const lat = parseFloat(params.get('lat')) || 52.52;
const lon = parseFloat(params.get('lon')) || 13.405;
const name = params.get('name') || 'Berlin';
const todayUTC = new Date().toISOString().slice(0,10);
const date = params.get('date') || todayUTC;
document.getElementById('loc').textContent = name;
document.getElementById('date').textContent = date;
const isPast = date < todayUTC;
const base = isPast ? '/api/om/archive' : '/api/om/forecast';
const url = `${base}?latitude=${lat}&longitude=${lon}` +
`&daily=temperature_2m_max,temperature_2m_min,weather_code` +
`&hourly=temperature_2m&timezone=UTC&temperature_unit=celsius` +
`&start_date=${date}&end_date=${date}`;
const codeMap = {
0:['Clear sky','☀️'],1:['Mainly clear','🌤️'],2:['Partly cloudy','⛅'],
3:['Overcast','☁️'],45:['Fog','🌫️'],48:['Rime fog','🌫️'],
51:['Light drizzle','🌦️'],53:['Drizzle','🌦️'],55:['Dense drizzle','🌧️'],
56:['Freezing drizzle','🌧️'],57:['Freezing 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:['Rain showers','🌦️'],81:['Rain showers','🌧️'],
82:['Violent showers','⛈️'],85:['Snow showers','🌨️'],86:['Snow showers','❄️'],
95:['Thunderstorm','⛈️'],96:['Thunderstorm','⛈️'],99:['Thunderstorm','⛈️']
};
fetch(url)
.then(r => { if(!r.ok) throw new Error('HTTP '+r.status); return r.json(); })
.then(data => {
const dIdx = data.daily.time.indexOf(date);
if(dIdx === -1) throw new Error('Date not found');
const tmax = data.daily.temperature_2m_max[dIdx];
const tmin = data.daily.temperature_2m_min[dIdx];
const code = data.daily.weather_code[dIdx];
const [cond, icon] = codeMap[code] || ['Unknown','❓'];
document.getElementById('tmax').textContent = tmax + '°C';
document.getElementById('tmin').textContent = tmin + '°C';
document.getElementById('cond').textContent = cond;
document.getElementById('icon').textContent = icon;
const hours = data.hourly.time;
const temps = data.hourly.temperature_2m;
const hg = document.getElementById('hours');
for(let i=0;i<hours.length;i++){
const hh = hours[i].split('T')[1];
const div = document.createElement('div');
div.className = 'hour';
div.innerHTML = `<span>${hh}</span><span class="t">${temps[i]}°</span>`;
hg.appendChild(div);
}
})
.catch(err => {
const card = document.getElementById('card');
card.innerHTML = `<div class="error">Weather data could not be loaded.<br>${err.message}</div>`;
});
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 5,866 | html / css / js | 725 / 2,187 / 2,954 |
|---|---|---|---|
| dom 节点 | 23 | dom 深度 | 7 |
| css 规则 | 21 | 含 js | 是 |
| brightness | 76.9 | contrast | 18.2 |
| colorfulness | 35.6 | 留白 | 64.6% |
该 slot 的 telemetry
| prompt tokens | 323 | completion tokens | 1,968 |
|---|---|---|---|
| total tokens | 2,291 | wall | 25.9 s |
| cost | — | request id | — |
config.json539 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_ZEN_KEY",
"method": "api-key"
},
"billing": "plan",
"config_id": "hy3-free--zen-free--dev",
"effort": null,
"family": "hunyuan",
"m": {
"min": 2,
"q": 2
},
"model_id": "hy3-free",
"protocol": "api",
"served_model": "tencent/hy3:free",
"telemetry": {
"completion_tokens": 7018,
"cost_usd": null,
"prompt_tokens": 1276,
"total_tokens": 8294,
"wall_ms": 70437
},
"transport": "opencode-zen-free-tier",
"vendor_sanction_ref": null
}send-log2.4 KB
{
"N": 2,
"batch_id": "2026-07-18--dev-zen-free",
"config_id": "hy3-free--zen-free--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T00:54:37.445276+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T00:54:11.591415+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-18T00:54:50.758325+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T00:54:40.869969+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-18T00:55:02.854992+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T00:54:53.548609+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-18T00:55:31.003695+00:00",
"http_status": 200,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T00:55:05.612687+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
}
}
}