kimi-k3 @ disabled · api

apidisabled
config
kimi-k3-eff-disabled--api--official--dev
batch
2026-07-19--unified
transport
moonshot-official-api
protocol
api · metered
served model
kimi-k3
采集于
2026年7月18日 11:54 · N=4
variant
live
slot 0 · P-q · sandboxed iframe
kimi-k3 @disabled · api P-q slot 0 截图

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。

similarity 邻居

限于 session 2026-07-19--unified

similarity 衡量本 session 内的趋同程度 —— 不是质量。

Fidelity —— 卡片展示的数据对不对?

  • namematch
  • conditionmatch
  • datematch
  • max tempambiguous展示值:17max-equals-min
  • min tempambiguous展示值:17max-equals-min
  • 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.0">
<title>Weather Card</title>
<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    :root {
        --card-bg: rgba(255, 255, 255, 0.08);
        --card-border: rgba(255, 255, 255, 0.18);
        --text-primary: #ffffff;
        --text-secondary: rgba(255, 255, 255, 0.75);
        --text-muted: rgba(255, 255, 255, 0.55);
    }

    body {
        font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
        min-height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #1a2a6c 0%, #2a4d8f 40%, #3d6db5 70%, #4a7fc1 100%);
        background-attachment: fixed;
        overflow-x: hidden;
        padding: 40px 20px;
        position: relative;
    }

    body::before {
        content: '';
        position: fixed;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background: radial-gradient(ellipse at 30% 20%, rgba(255, 200, 100, 0.15) 0%, transparent 50%),
                    radial-gradient(ellipse at 70% 80%, rgba(100, 150, 255, 0.12) 0%, transparent 50%);
        pointer-events: none;
        z-index: 0;
    }

    .weather-card {
        position: relative;
        z-index: 1;
        width: 100%;
        max-width: 880px;
        background: var(--card-bg);
        backdrop-filter: blur(24px);
        -webkit-backdrop-filter: blur(24px);
        border: 1px solid var(--card-border);
        border-radius: 28px;
        padding: 48px 52px;
        box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35),
                    inset 0 1px 0 rgba(255, 255, 255, 0.15);
        color: var(--text-primary);
    }

    .card-header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 36px;
        padding-bottom: 28px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .location-block h1 {
        font-size: 42px;
        font-weight: 700;
        letter-spacing: -0.5px;
        line-height: 1.1;
        margin-bottom: 8px;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    }

    .location-block .date {
        font-size: 17px;
        color: var(--text-secondary);
        font-weight: 500;
        letter-spacing: 0.3px;
    }

    .condition-block {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }

    .condition-icon {
        font-size: 56px;
        line-height: 1;
        filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.25));
    }

    .condition-text {
        font-size: 18px;
        font-weight: 600;
        color: var(--text-secondary);
        letter-spacing: 0.2px;
    }

    .temps-row {
        display: flex;
        gap: 24px;
        margin-bottom: 40px;
    }

    .temp-box {
        flex: 1;
        background: rgba(255, 255, 255, 0.07);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 20px;
        padding: 26px 30px;
        display: flex;
        align-items: center;
        gap: 20px;
        transition: transform 0.2s ease, background 0.2s ease;
    }

    .temp-box:hover {
        transform: translateY(-2px);
        background: rgba(255, 255, 255, 0.1);
    }

    .temp-box .temp-icon {
        font-size: 36px;
        line-height: 1;
    }

    .temp-box.max .temp-icon { color: #ffb347; }
    .temp-box.min .temp-icon { color: #7ec8ff; }

    .temp-box .temp-info {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .temp-box .temp-label {
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 1.5px;
        color: var(--text-muted);
    }

    .temp-box .temp-value {
        font-size: 44px;
        font-weight: 700;
        letter-spacing: -1px;
        line-height: 1;
    }

    .temp-box .temp-value .unit {
        font-size: 24px;
        font-weight: 500;
        color: var(--text-secondary);
        vertical-align: super;
        margin-left: 2px;
    }

    .hourly-section {
        margin-top: 8px;
    }

    .hourly-title {
        font-size: 14px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: var(--text-muted);
        margin-bottom: 20px;
    }

    .hourly-chart {
        display: flex;
        align-items: flex-end;
        gap: 4px;
        height: 180px;
        padding: 0 4px;
    }

    .hour-bar-wrap {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        height: 100%;
        gap: 8px;
        min-width: 0;
    }

    .hour-temp {
        font-size: 11px;
        font-weight: 600;
        color: var(--text-secondary);
        white-space: nowrap;
    }

    .hour-bar {
        width: 100%;
        max-width: 26px;
        border-radius: 6px 6px 3px 3px;
        background: linear-gradient(to top, rgba(126, 200, 255, 0.5), rgba(255, 179, 71, 0.75));
        min-height: 4px;
        transition: filter 0.15s ease;
        position: relative;
    }

    .hour-bar-wrap:hover .hour-bar {
        filter: brightness(1.3);
    }

    .hour-label {
        font-size: 10px;
        font-weight: 500;
        color: var(--text-muted);
        white-space: nowrap;
    }

    .hour-label:nth-child(odd) {
        visibility: hidden;
    }

    .hour-bar-wrap:nth-child(odd) .hour-label {
        visibility: visible;
    }

    .hour-bar-wrap:nth-child(even) .hour-label {
        visibility: hidden;
    }

    .loading-state, .error-state {
        text-align: center;
        padding: 60px 20px;
    }

    .loading-state .spinner {
        width: 48px;
        height: 48px;
        border: 4px solid rgba(255, 255, 255, 0.15);
        border-top-color: #ffb347;
        border-radius: 50%;
        margin: 0 auto 24px;
        animation: spin 0.9s linear infinite;
    }

    @keyframes spin {
        to { transform: rotate(360deg); }
    }

    .loading-state p, .error-state p {
        font-size: 18px;
        color: var(--text-secondary);
        font-weight: 500;
    }

    .error-state .error-icon {
        font-size: 52px;
        margin-bottom: 20px;
    }

    .error-state .error-title {
        font-size: 24px;
        font-weight: 700;
        color: var(--text-primary);
        margin-bottom: 10px;
    }

    .error-state .error-detail {
        font-size: 14px;
        color: var(--text-muted);
        margin-top: 12px;
        font-family: 'Consolas', 'Monaco', monospace;
        word-break: break-word;
    }

    .hidden { display: none; }
</style>
</head>
<body>
    <div class="weather-card">
        <div id="loading" class="loading-state">
            <div class="spinner"></div>
            <p>Loading weather data…</p>
        </div>

        <div id="error" class="error-state hidden">
            <div class="error-icon">⚠️</div>
            <div class="error-title">Weather data could not be loaded</div>
            <p>Please check the location parameters and try again.</p>
            <div class="error-detail" id="errorDetail"></div>
        </div>

        <div id="content" class="hidden">
            <div class="card-header">
                <div class="location-block">
                    <h1 id="locationName">—</h1>
                    <div class="date" id="dateLabel">—</div>
                </div>
                <div class="condition-block">
                    <div class="condition-icon" id="conditionIcon">—</div>
                    <div class="condition-text" id="conditionText">—</div>
                </div>
            </div>

            <div class="temps-row">
                <div class="temp-box max">
                    <div class="temp-icon">▲</div>
                    <div class="temp-info">
                        <span class="temp-label">High</span>
                        <span class="temp-value"><span id="tempMax">—</span><span class="unit">°C</span></span>
                    </div>
                </div>
                <div class="temp-box min">
                    <div class="temp-icon">▼</div>
                    <div class="temp-info">
                        <span class="temp-label">Low</span>
                        <span class="temp-value"><span id="tempMin">—</span><span class="unit">°C</span></span>
                    </div>
                </div>
            </div>

            <div class="hourly-section">
                <div class="hourly-title">Hourly Temperatures</div>
                <div class="hourly-chart" id="hourlyChart"></div>
            </div>
        </div>
    </div>

    <script>
        (function () {
            'use strict';

            var WMO_CODES = {
                0:  { text: 'Clear sky', icon: '☀️' },
                1:  { text: 'Mainly clear', icon: '🌤️' },
                2:  { text: 'Partly cloudy', icon: '⛅' },
                3:  { text: 'Overcast', icon: '☁️' },
                45: { text: 'Fog', icon: '🌫️' },
                48: { text: 'Depositing rime fog', icon: '🌫️' },
                51: { text: 'Light drizzle', icon: '🌦️' },
                53: { text: 'Moderate drizzle', icon: '🌦️' },
                55: { text: 'Dense drizzle', icon: '🌧️' },
                56: { text: 'Light freezing drizzle', icon: '🌧️' },
                57: { text: 'Dense freezing drizzle', icon: '🌧️' },
                61: { text: 'Slight rain', icon: '🌦️' },
                63: { text: 'Moderate rain', icon: '🌧️' },
                65: { text: 'Heavy rain', icon: '🌧️' },
                66: { text: 'Light freezing rain', icon: '🌧️' },
                67: { text: 'Heavy freezing rain', icon: '🌧️' },
                71: { text: 'Slight snowfall', icon: '🌨️' },
                73: { text: 'Moderate snowfall', icon: '🌨️' },
                75: { text: 'Heavy snowfall', icon: '❄️' },
                77: { text: 'Snow grains', icon: '❄️' },
                80: { text: 'Slight rain showers', icon: '🌦️' },
                81: { text: 'Moderate rain showers', icon: '🌧️' },
                82: { text: 'Violent rain showers', icon: '🌧️' },
                85: { text: 'Slight snow showers', icon: '🌨️' },
                86: { text: 'Heavy snow showers', icon: '❄️' },
                95: { text: 'Thunderstorm', icon: '⛈️' },
                96: { text: 'Thunderstorm with slight hail', icon: '⛈️' },
                99: { text: 'Thunderstorm with heavy hail', icon: '⛈️' }
            };

            function getParams() {
                var q = new URLSearchParams(window.location.search);
                var lat = parseFloat(q.get('lat'));
                var lon = parseFloat(q.get('lon'));
                var name = q.get('name') || 'Berlin';
                var date = q.get('date');

                if (isNaN(lat)) lat = 52.52;
                if (isNaN(lon)) lon = 13.405;

                if (!date || !/^\d{4}-\d{2}-\d{2}$/.test(date)) {
                    var now = new Date();
                    date = now.getUTCFullYear() + '-' +
                           String(now.getUTCMonth() + 1).padStart(2, '0') + '-' +
                           String(now.getUTCDate()).padStart(2, '0');
                }

                return { lat: lat, lon: lon, name: name, date: date };
            }

            function isPastDate(dateStr) {
                var now = new Date();
                var todayUTC = now.getUTCFullYear() + '-' +
                               String(now.getUTCMonth() + 1).padStart(2, '0') + '-' +
                               String(now.getUTCDate()).padStart(2, '0');
                return dateStr < todayUTC;
            }

            function formatDate(dateStr) {
                var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
                var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
                var parts = dateStr.split('-');
                var d = new Date(Date.UTC(+parts[0], +parts[1] - 1, +parts[2]));
                return days[d.getUTCDay()] + ', ' + months[d.getUTCMonth()] + ' ' + d.getUTCDate() + ', ' + d.getUTCFullYear();
            }

            function showError(detail) {
                document.getElementById('loading').classList.add('hidden');
                document.getElementById('content').classList.add('hidden');
                document.getElementById('error').classList.remove('hidden');
                if (detail) {
                    document.getElementById('errorDetail').textContent = detail;
                }
            }

            function render(data, params) {
                var daily = data.daily;
                var hourly = data.hourly;

                if (!daily || !daily.time || daily.time.length === 0 ||
                    !hourly || !hourly.time || hourly.time.length === 0) {
                    showError('API returned an empty dataset for the requested date.');
                    return;
                }

                var idx = daily.time.indexOf(params.date);
                if (idx === -1) idx = 0;

                var tMax = daily.temperature_2m_max[idx];
                var tMin = daily.temperature_2m_min[idx];
                var wCode = daily.weather_code[idx];

                if (tMax == null || tMin == null) {
                    showError('Temperature values are missing for the requested date.');
                    return;
                }

                var condition = WMO_CODES[wCode] || { text: 'Unknown', icon: '🌡️' };

                document.getElementById('locationName').textContent = params.name;
                document.getElementById('dateLabel').textContent = formatDate(params.date);
                document.getElementById('conditionIcon').textContent = condition.icon;
                document.getElementById('conditionText').textContent = condition.text;
                document.getElementById('tempMax').textContent = Math.round(tMax);
                document.getElementById('tempMin').textContent = Math.round(tMin);

                // Build hourly chart
                var chart = document.getElementById('hourlyChart');
                chart.innerHTML = '';

                var temps = hourly.temperature_2m;
                var times = hourly.time;
                var valid = [];
                for (var i = 0; i < times.length; i++) {
                    if (temps[i] != null && !isNaN(temps[i])) {
                        valid.push({ time: times[i], temp: temps[i] });
                    }
                }

                if (valid.length === 0) {
                    showError('Hourly temperature values are missing for the requested date.');
                    return;
                }

                var minT = Math.min.apply(null, valid.map(function (v) { return v.temp; }));
                var maxT = Math.max.apply(null, valid.map(function (v) { return v.temp; }));
                var range = maxT - minT;
                if (range < 1) range = 1;

                var chartHeight = 110; // px available for bars

                valid.forEach(function (v) {
                    var hour = v.time.substring(11, 16);
                    var frac = (v.temp - minT) / range;
                    var barH = Math.round(8 + frac * chartHeight);

                    var wrap = document.createElement('div');
                    wrap.className = 'hour-bar-wrap';
                    wrap.title = hour + ' — ' + v.temp.toFixed(1) + ' °C';

                    var tempEl = document.createElement('div');
                    tempEl.className = 'hour-temp';
                    tempEl.textContent = Math.round(v.temp) + '°';

                    var bar = document.createElement('div');
                    bar.className = 'hour-bar';
                    bar.style.height = barH + 'px';

                    var label = document.createElement('div');
                    label.className = 'hour-label';
                    label.textContent = hour;

                    wrap.appendChild(tempEl);
                    wrap.appendChild(bar);
                    wrap.appendChild(label);
                    chart.appendChild(wrap);
                });

                document.getElementById('loading').classList.add('hidden');
                document.getElementById('content').classList.remove('hidden');
            }

            function load() {
                var params = getParams();
                var base = isPastDate(params.date) ? '/api/om/archive' : '/api/om/forecast';

                var qs = new URLSearchParams({
                    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: params.date,
                    end_date: params.date
                });

                var url = base + '?' + qs.toString();

                fetch(url)
                    .then(function (res) {
                        if (!res.ok) {
                            throw new Error('HTTP ' + res.status + ' from ' + base);
                        }
                        return res.json();
                    })
                    .then(function (data) {
                        if (data && data.error) {
                            throw new Error(data.reason || 'API reported an error');
                        }
                        render(data, params);
                    })
                    .catch(function (err) {
                        showError(err && err.message ? err.message : String(err));
                    });
            }

            load();
        })();
    </script>
</body>
</html>

L1 —— 廉价的确定性描述量

bytes 总计18,250html / css / js2,248 / 6,660 / 9,342
dom 节点43dom 深度9
css 规则41含 js
brightness101.1contrast21.9
colorfulness48.7留白48.8%

该 slot 的 telemetry

prompt tokens323completion tokens4,565
total tokens4,888wall128.4 s
costrequest id
config.json555 B
{
  "N": 4,
  "auth": {
    "credential_ref": "WCB_KIMI_KEY",
    "method": "api-key"
  },
  "billing": "metered",
  "config_id": "kimi-k3-eff-disabled--api--official--dev",
  "effort": "disabled",
  "family": "kimi",
  "m": {
    "min": 4,
    "q": 4
  },
  "model_id": "kimi-k3",
  "protocol": "api",
  "served_model": "kimi-k3",
  "telemetry": {
    "completion_tokens": 31293,
    "cost_usd": null,
    "prompt_tokens": 2552,
    "total_tokens": 33845,
    "wall_ms": 858571
  },
  "transport": "moonshot-official-api",
  "vendor_sanction_ref": null
}
send-log4.6 KB
{
  "N": 4,
  "batch_id": "2026-07-20--official-kimi",
  "config_id": "kimi-k3-eff-disabled--api--official--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-20T03:48:09.091465+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:46:00.670263+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-20T03:49:44.273753+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:48:12.998121+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-20T03:51:12.672990+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:49:48.039775+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-20T03:53:32.797463+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:51:16.340484+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-20T03:55:11.135207+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:53:36.143483+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-20T03:57:52.536499+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:55:14.766287+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-20T03:59:28.904961+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:57:56.649277+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-20T04:00:44.794399+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-20T03:59:32.033830+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
    }
  }
}