deepseek-v4-flash-0731 @ low · api

apilow
config
deepseek-v4-flash-0731-eff-low--api--official--dev
batch
2026-07-19--unified
transport
deepseek-official-api
protocol
api · metered
served model
deepseek-v4-flash
采集于
2026年7月18日 11:54 · N=4
variant
live
slot 0 · P-q · sandboxed iframe
deepseek-v4-flash-0731 @low · api P-q slot 0 截图

输出带 markdown 围栏 — 模型把 HTML 包在代码围栏里返回,提取时已剥离;记录在此以便追溯。

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

similarity 邻居

限于 session 2026-07-19--unified

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

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

  • namematch
  • conditionmatch
  • datematch
  • max tempmatch展示值:25
  • min tempmatch展示值:16
  • hourlymismatchcoverage 1/24 · 1 命中 · 4 不符 · 19 未展示
  • 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>
        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html,
        body {
            width: 100%;
            height: 100%;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            background: linear-gradient(135deg, #dfe6ee 0%, #edf0f4 40%, #cfd8e3 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            color: #1b2a3a;
        }

        /* ─── Card Shell ─── */
        .weather-card {
            width: 660px;
            border-radius: 28px;
            background: #ffffff;
            box-shadow: 0 24px 80px rgba(20, 40, 60, .14), 0 6px 24px rgba(20, 40, 60, .06);
            overflow: hidden;
            transition: transform .25s ease, box-shadow .25s ease;
            animation: cardIn .5s ease-out both;
        }
        @keyframes cardIn {
            from {
                opacity: 0;
                transform: translateY(24px) scale(.97);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        /* ─── Header ─── */
        .card-header {
            padding: 36px 44px 22px;
            text-align: center;
            background: linear-gradient(150deg, #f7f9fc 0%, #edf1f7 100%);
            border-bottom: 1px solid #e8ecf1;
            position: relative;
        }
        .card-header::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 4px;
            background: linear-gradient(90deg, transparent, rgba(74, 144, 217, .25), transparent);
        }
        .location {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            font-size: 22px;
            font-weight: 700;
            letter-spacing: -.3px;
            color: #102a43;
        }
        .location svg {
            width: 20px;
            height: 20px;
            fill: #d64545;
        }
        .date-label {
            font-size: 14px;
            color: #627d98;
            margin-top: 4px;
            font-weight: 500;
            letter-spacing: .2px;
            text-transform: capitalize;
        }

        /* ─── Main Metrics ─── */
        .card-body {
            padding: 30px 44px 34px;
        }
        .weather-main {
            text-align: center;
            margin-bottom: 26px;
            position: relative;
        }
        .weather-icon {
            font-size: 80px;
            line-height: 1.1;
            display: block;
            margin-bottom: 2px;
            filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .06));
        }
        .temp-max {
            font-size: 66px;
            font-weight: 200;
            line-height: 1.05;
            color: #0e1b2e;
            letter-spacing: -2px;
            display: inline-block;
            background: linear-gradient(135deg, #1a2a3a 30%, #39607e 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .temp-unit {
            font-size: 34px;
            font-weight: 300;
            vertical-align: super;
            margin-left: 2px;
            -webkit-text-fill-color: #94a8ba;
        }
        .condition {
            font-size: 17px;
            color: #486581;
            margin-top: 2px;
            font-weight: 500;
            letter-spacing: .2px;
        }

        .temp-range {
            display: flex;
            justify-content: center;
            gap: 28px;
            margin-top: 14px;
            font-size: 15px;
            font-weight: 600;
            background: #f3f6f9;
            border-radius: 40px;
            padding: 8px 20px;
            width: fit-content;
            margin-left: auto;
            margin-right: auto;
        }
        .temp-range .max {
            color: #d97706;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .temp-range .min {
            color: #2b6cb0;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .temp-range .dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            display: inline-block;
        }
        .temp-range .dot.max {
            background: #d97706;
        }
        .temp-range .dot.min {
            background: #2b6cb0;
        }

        /* ─── Hourly Chart ─── */
        .hourly-section {
            background: #f8fafc;
            border-radius: 18px;
            padding: 22px 20px 18px;
            border: 1px solid #edf0f4;
            margin-top: 6px;
        }
        .hourly-title {
            font-size: 13px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1px;
            color: #829ab1;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .hourly-title svg {
            width: 14px;
            height: 14px;
            fill: #829ab1;
        }
        svg#chart {
            display: block;
            width: 100%;
            height: auto;
        }

        /* ─── Error ─── */
        .error-message {
            text-align: center;
            padding: 70px 40px;
        }
        .error-message .icon {
            font-size: 56px;
            margin-bottom: 16px;
        }
        .error-message .title {
            font-size: 20px;
            font-weight: 600;
            color: #b33c3c;
            margin-bottom: 8px;
        }
        .error-message .detail {
            font-size: 14px;
            color: #829ab1;
        }

        /* ─── Loading ─── */
        .loading {
            text-align: center;
            padding: 80px 40px;
        }
        .spinner {
            width: 48px;
            height: 48px;
            border: 4px solid #e2e8f0;
            border-top-color: #4a90d9;
            border-radius: 50%;
            margin: 0 auto 20px;
            animation: spin .8s linear infinite;
        }
        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }
        .loading p {
            color: #627d98;
            font-size: 15px;
        }
    </style>
</head>
<body>

    <div class="weather-card" id="weatherCard">
        <div class="loading" id="loadingState">
            <div class="spinner"></div>
            <p>Loading weather…</p>
        </div>
    </div>

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

            // ─── Helpers ───
            function getParams() {
                const p = new URLSearchParams(window.location.search);
                return {
                    lat: parseFloat(p.get('lat')) || 52.52,
                    lon: parseFloat(p.get('lon')) || 13.405,
                    name: p.get('name') || 'Berlin',
                    date: p.get('date') || null
                };
            }

            function getTodayUTC() {
                return new Date().toISOString().split('T')[0];
            }

            function formatDate(dateStr) {
                if (!dateStr) return '';
                const parts = dateStr.split('-').map(Number);
                const d = new Date(Date.UTC(parts[0], parts[1] - 1, parts[2]));
                return d.toLocaleDateString('en-US', {
                    weekday: 'long',
                    year: 'numeric',
                    month: 'long',
                    day: 'numeric',
                    timeZone: 'UTC'
                });
            }

            // ─── Weather Codes ───
            const WEATHER_MAP = {
                0: { label: 'Clear sky', icon: '☀️' },
                1: { label: 'Mainly clear', icon: '🌤️' },
                2: { label: 'Partly cloudy', icon: '⛅' },
                3: { label: 'Overcast', icon: '☁️' },
                45: { label: 'Fog', icon: '🌫️' },
                48: { label: 'Rime fog', icon: '🌫️' },
                51: { label: 'Light drizzle', icon: '🌦️' },
                53: { label: 'Moderate drizzle', icon: '🌧️' },
                55: { label: 'Dense drizzle', icon: '🌧️' },
                56: { label: 'Freezing drizzle', icon: '🌧️' },
                57: { label: 'Freezing drizzle', icon: '🌧️' },
                61: { label: 'Slight rain', icon: '🌦️' },
                63: { label: 'Moderate rain', icon: '🌧️' },
                65: { label: 'Heavy rain', icon: '🌧️' },
                66: { label: 'Freezing rain', icon: '🌧️' },
                67: { label: 'Freezing rain', icon: '🌧️' },
                71: { label: 'Slight snow', icon: '🌨️' },
                73: { label: 'Moderate snow', icon: '❄️' },
                75: { label: 'Heavy snow', icon: '❄️' },
                77: { label: 'Snow grains', icon: '❄️' },
                80: { label: 'Rain showers', icon: '🌦️' },
                81: { label: 'Rain showers', icon: '🌧️' },
                82: { label: 'Violent showers', icon: '⛈️' },
                85: { label: 'Snow showers', icon: '🌨️' },
                86: { label: 'Snow showers', icon: '❄️' },
                95: { label: 'Thunderstorm', icon: '⛈️' },
                96: { label: 'Thunderstorm w/ hail', icon: '⛈️' },
                99: { label: 'Thunderstorm w/ hail', icon: '⛈️' }
            };

            function getWeatherInfo(code) {
                return WEATHER_MAP[code] || { label: 'Unknown', icon: '❓' };
            }

            // ─── Card Render ───
            function renderCard(data) {
                const card = document.getElementById('weatherCard');
                const wi = getWeatherInfo(data.weatherCode);

                let hourlyHtml = '';

                if (data.hourlyData && data.hourlyData.length > 0) {
                    hourlyHtml = `
                        <div class="hourly-section">
                            <div class="hourly-title">
                                <svg viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
                                Hourly Temperature
                            </div>
                            <svg id="chart" viewBox="0 0 560 220" width="100%" height="220" role="img" aria-label="Hourly temperature chart"></svg>
                        </div>
                    `;
                }

                card.innerHTML = `
                    <div class="card-header">
                        <div class="location">
                            <svg viewBox="0 0 24 24" width="20" height="20"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>
                            ${escapeHtml(data.location)}
                        </div>
                        <div class="date-label">${formatDate(data.date)}</div>
                    </div>
                    <div class="card-body">
                        <div class="weather-main">
                            <span class="weather-icon">${wi.icon}</span>
                            <div class="temp-max">${Math.round(data.maxTemp)}<span class="temp-unit">°C</span></div>
                            <div class="condition">${wi.label}</div>
                            <div class="temp-range">
                                <span class="max"><span class="dot max"></span>H: ${Math.round(data.maxTemp)}°C</span>
                                <span class="min"><span class="dot min"></span>L: ${Math.round(data.minTemp)}°C</span>
                            </div>
                        </div>
                        ${hourlyHtml}
                    </div>
                `;

                if (data.hourlyData && data.hourlyData.length > 0) {
                    renderChart(data.hourlyData, data.minTemp, data.maxTemp);
                }
            }

            function escapeHtml(str) {
                const div = document.createElement('div');
                div.textContent = str;
                return div.innerHTML;
            }

            // ─── Chart ───
            function renderChart(hourlyData, minTemp, maxTemp) {
                const svg = document.getElementById('chart');
                if (!svg) return;

                const W = 560,
                    H = 220;
                const pad = { left: 44, right: 18, top: 22, bottom: 32 };
                const plotW = W - pad.left - pad.right;
                const plotH = H - pad.top - pad.bottom;

                const yMin = Math.floor(minTemp - 2);
                const yMax = Math.ceil(maxTemp + 2);
                const yRange = Math.max(yMax - yMin, 1);

                const n = hourlyData.length;
                const pts = hourlyData.map((d, i) => {
                    const x = pad.left + (n === 1 ? plotW / 2 : (i / (n - 1)) * plotW);
                    const y = pad.top + ((yMax - d.temp) / yRange) * plotH;
                    return { x, y, temp: d.temp, time: d.time };
                });

                let s = '<defs>';
                s += '<linearGradient id="areaG" x1="0" y1="0" x2="0" y2="1">';
                s += '<stop offset="0%" stop-color="#4a90d9" stop-opacity="0.28"/>';
                s += '<stop offset="100%" stop-color="#4a90d9" stop-opacity="0"/>';
                s += '</linearGradient>';
                s += '</defs>';

                // Grid + Y labels
                const gridLines = 4;
                for (let i = 0; i <= gridLines; i++) {
                    const y = pad.top + (i / gridLines) * plotH;
                    const val = yMax - (i / gridLines) * yRange;
                    s += `<line x1="${pad.left}" y1="${y}" x2="${W - pad.right}" y2="${y}" stroke="#e8edf2" stroke-width="1" stroke-dasharray="4,4"/>`;
                    s += `<text x="${pad.left - 10}" y="${y + 4}" text-anchor="end" font-size="12" fill="#8ba3b8" font-weight="500">${Math.round(val)}°</text>`;
                }

                // X labels
                const labelIdx = [0, 6, 12, 18, 23].filter(i => i < n);
                for (const idx of labelIdx) {
                    const x = pad.left + (n === 1 ? plotW / 2 : (idx / (n - 1)) * plotW);
                    const t = hourlyData[idx].time.split('T')[1] || '';
                    const timeStr = t.substring(0, 5);
                    s += `<text x="${x}" y="${H - 8}" text-anchor="middle" font-size="12" fill="#8ba3b8" font-weight="500">${timeStr}</text>`;
                }

                // Area + Line
                if (pts.length > 1) {
                    let linePath = `M ${pts[0].x} ${pts[0].y}`;
                    for (let i = 1; i < pts.length; i++) {
                        linePath += ` L ${pts[i].x} ${pts[i].y}`;
                    }
                    let areaPath = `${linePath} L ${pts[pts.length - 1].x} ${pad.top + plotH} L ${pts[0].x} ${pad.top + plotH} Z`;
                    s += `<path d="${areaPath}" fill="url(#areaG)"/>`;
                    s += `<path d="${linePath}" fill="none" stroke="#4a90d9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>`;
                }

                // Dots
                for (const p of pts) {
                    s += `<circle cx="${p.x}" cy="${p.y}" r="4" fill="#4a90d9" stroke="#ffffff" stroke-width="2"/>`;
                    s += `<title>${p.time} — ${Math.round(p.temp)}°C</title>`;
                }

                // Highlight min & max points
                if (pts.length > 0) {
                    let maxIdx = 0,
                        minIdx = 0;
                    pts.forEach((p, i) => {
                        if (p.temp > pts[maxIdx].temp) maxIdx = i;
                        if (p.temp < pts[minIdx].temp) minIdx = i;
                    });
                    if (maxIdx !== minIdx) {
                        s += `<circle cx="${pts[maxIdx].x}" cy="${pts[maxIdx].y}" r="6" fill="none" stroke="#d97706" stroke-width="2"/>`;
                        s += `<circle cx="${pts[minIdx].x}" cy="${pts[minIdx].y}" r="6" fill="none" stroke="#2b6cb0" stroke-width="2"/>`;
                    }
                }

                svg.innerHTML = s;
            }

            // ─── Error / Loading ───
            function showError(msg) {
                const card = document.getElementById('weatherCard');
                card.innerHTML = `
                    <div class="error-message">
                        <div class="icon">🌧️</div>
                        <div class="title">Unable to Load Weather</div>
                        <div class="detail">${escapeHtml(msg || 'Please try again later.')}</div>
                    </div>
                `;
            }

            function showLoading() {
                const card = document.getElementById('weatherCard');
                card.innerHTML = `
                    <div class="loading">
                        <div class="spinner"></div>
                        <p>Loading weather…</p>
                    </div>
                `;
            }

            // ─── Main ───
            async function main() {
                const params = getParams();
                const todayStr = getTodayUTC();
                const requestedDate = params.date || todayStr;

                // Validate date format
                if (!/^\d{4}-\d{2}-\d{2}$/.test(requestedDate)) {
                    showError('Invalid date format. Expected YYYY-MM-DD.');
                    return;
                }

                const useArchive = requestedDate < todayStr;
                const apiBase = useArchive ? '/api/om/archive' : '/api/om/forecast';

                const url = apiBase +
                    '?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=' + requestedDate +
                    '&end_date=' + requestedDate;

                showLoading();

                try {
                    const resp = await fetch(url);
                    if (!resp.ok) {
                        throw new Error('Server returned ' + resp.status + ' ' + resp.statusText);
                    }
                    const data = await resp.json();

                    // Validate response
                    if (!data.daily || !data.daily.time || data.daily.time.length === 0) {
                        throw new Error('No weather data available for this date.');
                    }

                    const maxTemp = data.daily.temperature_2m_max[0];
                    const minTemp = data.daily.temperature_2m_min[0];
                    const weatherCode = data.daily.weather_code[0];

                    if (maxTemp === null || maxTemp === undefined || minTemp === null || minTemp === undefined) {
                        throw new Error('Incomplete temperature data.');
                    }

                    // Filter hourly
                    const hourlyData = [];
                    if (data.hourly && data.hourly.time) {
                        for (let i = 0; i < data.hourly.time.length; i++) {
                            const ts = data.hourly.time[i];
                            if (ts && ts.startsWith(requestedDate)) {
                                hourlyData.push({
                                    time: ts,
                                    temp: data.hourly.temperature_2m[i]
                                });
                            }
                        }
                    }

                    renderCard({
                        location: params.name,
                        date: requestedDate,
                        maxTemp: maxTemp,
                        minTemp: minTemp,
                        weatherCode: weatherCode,
                        hourlyData: hourlyData
                    });

                } catch (err) {
                    console.error('Weather fetch error:', err);
                    showError(err.message || 'Failed to fetch weather data.');
                }
            }

            // ─── Boot ───
            document.addEventListener('DOMContentLoaded', main);
        })();
    </script>

</body>
</html>

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

bytes 总计21,186html / css / js374 / 6,615 / 14,197
dom 节点11dom 深度5
css 规则37含 js
brightness237.5contrast13.5
colorfulness9.7留白99.3%

该 slot 的 telemetry

prompt tokens321completion tokens16,387
total tokens16,708wall107.1 s
costrequest id
config.json595 B
{
  "N": 4,
  "auth": {
    "credential_ref": "WCB_DEEPSEEK_KEY",
    "method": "api-key"
  },
  "billing": "metered",
  "config_id": "deepseek-v4-flash-0731-eff-low--api--official--dev",
  "effort": "low",
  "family": "deepseek",
  "m": {
    "min": 4,
    "q": 4
  },
  "model_id": "deepseek-v4-flash-0731",
  "protocol": "api",
  "served_model": "deepseek-v4-flash",
  "telemetry": {
    "completion_tokens": 124148,
    "cost_usd": null,
    "prompt_tokens": 2536,
    "total_tokens": 126684,
    "wall_ms": 831327
  },
  "transport": "deepseek-official-api",
  "vendor_sanction_ref": null
}
send-log4.7 KB
{
  "N": 4,
  "batch_id": "2026-07-31--official-deepseek-flash-0731",
  "config_id": "deepseek-v4-flash-0731-eff-low--api--official--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:29:47.165656+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:28:00.088909+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-31T06:31:30.224712+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:29:50.688306+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-31T06:33:40.633314+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:31:33.736920+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-31T06:35:47.055242+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:33:44.390814+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-31T06:36:09.519294+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:35:51.057617+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-31T06:38:06.869394+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:36:12.810517+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-31T06:40:09.695147+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:38:10.927952+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-31T06:42:17.318712+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-31T06:40:13.437640+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": 0,
      "slot_index": 3,
      "terminal_state": "valid",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}