deepseek-v4-flash-vision-exp @ max · api

apimax
config
deepseek-v4-flash-vision-exp-eff-max--api--official--dev
batch
2026-07-19--unified
transport
deepseek-official-api
protocol
api · metered
served model
deepseek-v4-flash-vision-exp
captured
Jul 18, 2026, 11:54 AM · N=4
variant
live
slot 0 · P-q · sandboxed iframe
deepseek-v4-flash-vision-exp @max · api P-q slot 0 screenshot

delivered in a markdown fence — the model wrapped its HTML in a code fence; extraction stripped it. Recorded here for traceability.

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.

similarity neighborsNo similarity data for this session — this batch has no computed pairs.

Fidelity — does the card show the right data?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatchshown: 25
  • min tempmatchshown: 16
  • hourlymatchcoverage 24/24 · 24 match · 0 mismatch · 0 not shown
  • request sidematch0 violation(s)

extractor fidelity-extractor-v1+Berlin-2026-07-15

Source — raw model output, one byte unchanged

download 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>
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(145deg, #0d1f2d, #1c3a4a, #2c5364);
            color: #1a1a2e;
            padding: 20px;
        }

        [hidden] {
            display: none !important;
        }

        .card {
            width: 1000px;
            max-width: 92vw;
            background: rgba(255, 255, 255, 0.93);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border-radius: 32px;
            box-shadow:
                0 25px 60px rgba(0, 0, 0, 0.3),
                0 10px 20px rgba(0, 0, 0, 0.15),
                inset 0 1px 0 rgba(255, 255, 255, 0.6);
            padding: 40px 50px 50px;
            position: relative;
            overflow: hidden;
            animation: cardIn 0.6s ease-out both;
        }

        @keyframes cardIn {
            from {
                opacity: 0;
                transform: translateY(30px) scale(0.98);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        .card::before {
            content: '';
            position: absolute;
            top: -120px;
            right: -80px;
            width: 300px;
            height: 300px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(255, 180, 80, 0.18), transparent 70%);
            pointer-events: none;
        }

        .card::after {
            content: '';
            position: absolute;
            bottom: -100px;
            left: -100px;
            width: 240px;
            height: 240px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(50, 150, 255, 0.12), transparent 70%);
            pointer-events: none;
        }

        #weatherContent {
            position: relative;
            z-index: 1;
        }

        .card-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 36px;
            gap: 20px;
        }

        .location {
            font-size: 44px;
            font-weight: 800;
            color: #1a1a2e;
            letter-spacing: -1.5px;
            line-height: 1.05;
            word-break: break-word;
        }

        .date {
            font-size: 13px;
            font-weight: 600;
            color: #8a8a8e;
            text-transform: uppercase;
            letter-spacing: 2px;
            margin-top: 12px;
        }

        .current-weather {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
        }

        .weather-icon-container {
            width: 110px;
            height: 110px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #fff8e1, #ffe0b2, #e0f7fa);
            border-radius: 28px;
            box-shadow:
                0 10px 25px rgba(0, 0, 0, 0.08),
                inset 0 2px 2px rgba(255, 255, 255, 0.7);
        }

        .weather-icon {
            font-size: 56px;
            line-height: 1;
            filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.15));
        }

        .current-weather .condition {
            font-size: 12px;
            font-weight: 700;
            color: #666;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-align: center;
            max-width: 180px;
        }

        .card-weather {
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 40px 0;
            margin-bottom: 20px;
        }

        .temp-summary {
            display: flex;
            align-items: center;
            gap: 50px;
        }

        .temp-item {
            text-align: center;
        }

        .temp-value {
            font-size: 64px;
            font-weight: 800;
            line-height: 1;
            letter-spacing: -2px;
        }

        .temp-item.high .temp-value {
            color: #ff6b35;
        }

        .temp-item.low .temp-value {
            color: #0077b6;
        }

        .temp-label {
            display: block;
            font-size: 12px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: #999;
            margin-top: 10px;
        }

        .temp-separator {
            width: 1px;
            height: 72px;
            background: linear-gradient(to bottom, transparent, #ddd, transparent);
        }

        .hourly-section {
            background: linear-gradient(135deg, rgba(240, 242, 245, 0.8), rgba(248, 249, 251, 0.5));
            border-radius: 22px;
            padding: 28px 30px 20px;
            border: 1px solid rgba(255, 255, 255, 0.8);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
        }

        .hourly-header {
            font-size: 12px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: #888;
            margin-bottom: 20px;
            text-align: center;
        }

        .hourly-chart {
            display: flex;
            align-items: flex-end;
            gap: 3px;
            height: 190px;
            overflow-x: auto;
        }

        .hourly-col {
            flex: 1;
            min-width: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-end;
            height: 100%;
            cursor: default;
        }

        .hour-temp {
            font-size: 9px;
            font-weight: 700;
            color: #444;
            margin-bottom: 5px;
            white-space: nowrap;
            letter-spacing: -0.3px;
        }

        .bar-fill {
            width: 70%;
            max-width: 22px;
            min-width: 5px;
            border-radius: 6px 6px 0 0;
            min-height: 4px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
        }

        .hour-label {
            font-size: 8px;
            font-weight: 500;
            color: #aaa;
            margin-top: 5px;
            white-space: nowrap;
            letter-spacing: -0.2px;
        }

        .chart-placeholder {
            width: 100%;
            text-align: center;
            color: #999;
            font-size: 14px;
            padding: 50px;
        }

        .error-message {
            text-align: center;
            padding: 80px 40px;
            position: relative;
            z-index: 1;
        }

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

        .error-message h2 {
            font-size: 24px;
            color: #e74c3c;
            margin-bottom: 12px;
        }

        .error-message p {
            font-size: 16px;
            color: #888;
            line-height: 1.5;
        }

        .loading-spinner {
            display: inline-block;
            width: 14px;
            height: 14px;
            border: 2px solid #e0e0e0;
            border-top-color: #888;
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
            margin-right: 6px;
            vertical-align: middle;
        }

        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="card">
        <div id="weatherContent">
            <div class="card-header">
                <div class="location-info">
                    <h1 class="location" id="location">Berlin</h1>
                    <p class="date" id="date">Loading date…</p>
                </div>
                <div class="current-weather">
                    <div class="weather-icon-container">
                        <span class="weather-icon" id="weatherIcon">☀️</span>
                    </div>
                    <span class="condition" id="condition"><span class="loading-spinner"></span>Loading</span>
                </div>
            </div>

            <div class="card-weather">
                <div class="temp-summary">
                    <div class="temp-item high">
                        <span class="temp-value" id="maxTemp">--°C</span>
                        <span class="temp-label">High</span>
                    </div>
                    <div class="temp-separator"></div>
                    <div class="temp-item low">
                        <span class="temp-value" id="minTemp">--°C</span>
                        <span class="temp-label">Low</span>
                    </div>
                </div>
            </div>

            <div class="hourly-section">
                <h3 class="hourly-header">Hourly Temperatures</h3>
                <div class="hourly-chart" id="hourlyChart">
                    <div class="chart-placeholder">Loading hourly data…</div>
                </div>
            </div>
        </div>

        <div id="errorMessage" class="error-message" hidden>
            <div class="error-icon">🌡️</div>
            <h2>Unable to load weather data</h2>
            <p>Please check your connection and try again later.</p>
        </div>
    </div>

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

            // ── Query parameters ──
            const params = new URLSearchParams(window.location.search);
            const lat = params.get('lat') || '52.52';
            const lon = params.get('lon') || '13.405';
            const name = params.get('name') || 'Berlin';
            const dateParam = params.get('date');

            // ── Date handling ──
            const now = new Date();
            const todayStr = now.toISOString().slice(0, 10);

            let date = todayStr;
            if (dateParam && /^\d{4}-\d{2}-\d{2}$/.test(dateParam)) {
                const parsed = new Date(dateParam + 'T00:00:00Z');
                if (!isNaN(parsed.getTime())) {
                    date = dateParam;
                }
            }

            // ── Set initial UI ──
            document.getElementById('location').textContent = name;
            document.getElementById('date').textContent = formatDate(date);
            document.title = 'Weather — ' + name;

            // ── Build API URL ──
            const apiBase = date < todayStr ? '/api/om/archive' : '/api/om/forecast';
            const query = [
                'latitude=' + encodeURIComponent(lat),
                'longitude=' + encodeURIComponent(lon),
                'daily=temperature_2m_max,temperature_2m_min,weather_code',
                'hourly=temperature_2m',
                'timezone=UTC',
                'temperature_unit=celsius',
                'start_date=' + encodeURIComponent(date),
                'end_date=' + encodeURIComponent(date)
            ].join('&');

            const apiUrl = apiBase + '?' + query;

            // ── Fetch data ──
            fetch(apiUrl)
                .then(function (response) {
                    if (!response.ok) {
                        throw new Error('HTTP ' + response.status);
                    }
                    return response.json();
                })
                .then(function (data) {
                    if (!data.daily || !data.daily.time || data.daily.time.length === 0) {
                        throw new Error('No daily data');
                    }

                    const dailyIndex = data.daily.time.indexOf(date);
                    if (dailyIndex === -1) {
                        throw new Error('Date not found in daily data');
                    }

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

                    if (maxTemp === null || minTemp === null || weatherCode === null) {
                        throw new Error('Incomplete daily data');
                    }

                    // Hourly data
                    let hourlyTimes = [];
                    let hourlyTemps = [];

                    if (data.hourly && data.hourly.time && data.hourly.temperature_2m) {
                        const times = data.hourly.time;
                        const temps = data.hourly.temperature_2m;
                        let startIdx = -1;
                        let endIdx = -1;

                        for (let i = 0; i < times.length; i++) {
                            if (times[i].startsWith(date)) {
                                if (startIdx === -1) startIdx = i;
                                endIdx = i;
                            }
                        }

                        if (startIdx !== -1 && endIdx !== -1) {
                            hourlyTimes = times.slice(startIdx, endIdx + 1);
                            hourlyTemps = temps.slice(startIdx, endIdx + 1);
                        }
                    }

                    // Filter out null/undefined values
                    const validData = [];
                    for (let i = 0; i < hourlyTimes.length; i++) {
                        if (hourlyTemps[i] !== null && hourlyTemps[i] !== undefined) {
                            validData.push({
                                time: hourlyTimes[i],
                                temp: hourlyTemps[i]
                            });
                        }
                    }

                    if (validData.length === 0) {
                        throw new Error('No hourly data for this date');
                    }

                    // Render
                    const weatherInfo = getWeatherInfo(weatherCode);
                    document.getElementById('maxTemp').textContent = Math.round(maxTemp) + '°C';
                    document.getElementById('minTemp').textContent = Math.round(minTemp) + '°C';
                    document.getElementById('condition').textContent = weatherInfo.desc;
                    document.getElementById('weatherIcon').textContent = weatherInfo.icon;

                    renderHourlyChart(validData);
                })
                .catch(function (error) {
                    console.error('Weather loading failed:', error);
                    showError();
                });

            // ── Helper: format date ──
            function formatDate(dateStr) {
                const parts = dateStr.split('-');
                if (parts.length !== 3) return dateStr;
                const d = new Date(Date.UTC(
                    parseInt(parts[0], 10),
                    parseInt(parts[1], 10) - 1,
                    parseInt(parts[2], 10)
                ));
                if (isNaN(d.getTime())) return dateStr;
                return d.toLocaleDateString('en-US', {
                    weekday: 'long',
                    year: 'numeric',
                    month: 'long',
                    day: 'numeric',
                    timeZone: 'UTC'
                });
            }

            // ── Helper: weather code mapping ──
            function getWeatherInfo(code) {
                const map = {
                    0: { desc: 'Clear Sky', icon: '☀️' },
                    1: { desc: 'Mainly Clear', icon: '🌤️' },
                    2: { desc: 'Partly Cloudy', icon: '⛅' },
                    3: { desc: 'Overcast', icon: '☁️' },
                    45: { desc: 'Fog', icon: '🌫️' },
                    48: { desc: 'Rime Fog', icon: '🌫️' },
                    51: { desc: 'Light Drizzle', icon: '🌦️' },
                    53: { desc: 'Drizzle', icon: '🌦️' },
                    55: { desc: 'Dense Drizzle', icon: '🌧️' },
                    56: { desc: 'Light Freezing Drizzle', icon: '🌧️' },
                    57: { desc: 'Freezing Drizzle', icon: '🌧️' },
                    61: { desc: 'Light Rain', icon: '🌦️' },
                    63: { desc: 'Rain', icon: '🌧️' },
                    65: { desc: 'Heavy Rain', icon: '🌧️' },
                    66: { desc: 'Light Freezing Rain', icon: '🌧️' },
                    67: { desc: 'Freezing Rain', icon: '🌧️' },
                    71: { desc: 'Light Snow', icon: '🌨️' },
                    73: { desc: 'Snow', icon: '🌨️' },
                    75: { desc: 'Heavy Snow', icon: '❄️' },
                    77: { desc: 'Snow Grains', icon: '🌨️' },
                    80: { desc: 'Light Showers', icon: '🌦️' },
                    81: { desc: 'Showers', icon: '🌧️' },
                    82: { desc: 'Violent Showers', icon: '🌧️' },
                    85: { desc: 'Snow Showers', icon: '🌨️' },
                    86: { desc: 'Snow Showers', icon: '🌨️' },
                    95: { desc: 'Thunderstorm', icon: '⛈️' },
                    96: { desc: 'Thunderstorm with Hail', icon: '⛈️' },
                    99: { desc: 'Thunderstorm with Hail', icon: '⛈️' }
                };
                return map[code] || { desc: 'Unknown Weather', icon: '🌡️' };
            }

            // ── Helper: render hourly chart ──
            function renderHourlyChart(validData) {
                const chart = document.getElementById('hourlyChart');
                chart.innerHTML = '';

                const temps = validData.map(function (d) { return d.temp; });
                const minT = Math.min.apply(null, temps);
                const maxT = Math.max.apply(null, temps);
                const range = Math.max(maxT - minT, 1);

                validData.forEach(function (item) {
                    const time = item.time;
                    const temp = item.temp;
                    const hourStr = time.slice(11, 16);
                    const displayHour = hourStr.slice(0, 2);

                    const col = document.createElement('div');
                    col.className = 'hourly-col';
                    col.title = displayHour + ':00 — ' + Math.round(temp) + '°C';

                    const tempLabel = document.createElement('span');
                    tempLabel.className = 'hour-temp';
                    tempLabel.textContent = Math.round(temp) + '°';

                    const bar = document.createElement('div');
                    bar.className = 'bar-fill';
                    const barHeight = ((temp - minT) / range) * 120 + 10;
                    bar.style.height = barHeight + 'px';
                    bar.style.background = 'linear-gradient(to top, ' + tempColor(temp) + ', ' + tempColor(temp) + '99)';

                    const hourLabel = document.createElement('span');
                    hourLabel.className = 'hour-label';
                    hourLabel.textContent = displayHour;

                    col.appendChild(tempLabel);
                    col.appendChild(bar);
                    col.appendChild(hourLabel);
                    chart.appendChild(col);
                });
            }

            // ── Helper: temperature color ──
            function tempColor(temp) {
                if (temp >= 35) return '#ff3b30';
                if (temp >= 25) return '#ff9500';
                if (temp >= 15) return '#ffcc00';
                if (temp >= 5) return '#34c759';
                if (temp >= -5) return '#007aff';
                return '#00c7be';
            }

            // ── Helper: show error ──
            function showError() {
                document.getElementById('weatherContent').hidden = true;
                document.getElementById('errorMessage').hidden = false;
            }
        })();
    </script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total20,444html / css / js2,071 / 7,841 / 10,532
dom nodes36dom depth8
css rules40js presentyes
brightness180.6contrast85.8
colorfulness44.6whitespace63.5%

This slot's telemetry

prompt tokens413completion tokens35,511
total tokens35,924wall271.6 s
costrequest id
config.json619 B
{
  "N": 4,
  "auth": {
    "credential_ref": "WCB_DEEPSEEK_KEY",
    "method": "api-key"
  },
  "billing": "metered",
  "config_id": "deepseek-v4-flash-vision-exp-eff-max--api--official--dev",
  "effort": "max",
  "family": "deepseek",
  "m": {
    "min": 4,
    "q": 4
  },
  "model_id": "deepseek-v4-flash-vision-exp",
  "protocol": "api",
  "served_model": "deepseek-v4-flash-vision-exp",
  "telemetry": {
    "completion_tokens": 249729,
    "cost_usd": null,
    "prompt_tokens": 3272,
    "total_tokens": 253001,
    "wall_ms": 2097484
  },
  "transport": "deepseek-official-api",
  "vendor_sanction_ref": null
}
send-log13 KB
{
  "N": 4,
  "batch_id": "2026-08-22--deepseek-vision-exp",
  "config_id": "deepseek-v4-flash-vision-exp-eff-max--api--official--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-08-21T17:38:26.742571+00:00",
          "http_status": 200,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-08-21T17:33:55.091922+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": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:30.932720+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:30.375366+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:31.977727+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:31.437191+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:33.506940+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:32.978273+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:38:36.036269+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:35.510595+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": null,
      "slot_index": 0,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:36.571626+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:36.036891+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:37.603558+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:37.073300+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:39.137676+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:38.606549+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:38:41.667477+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:41.139740+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": null,
      "slot_index": 1,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:42.198750+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:41.667980+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:43.228650+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:42.703705+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:44.760584+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:44.233698+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:38:47.301713+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:46.764702+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": null,
      "slot_index": 1,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:47.846533+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:47.302258+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:48.905482+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:48.351045+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:50.433618+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:49.910528+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:38:52.961965+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:52.438650+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": null,
      "slot_index": 2,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:53.499849+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:52.962567+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:54.532293+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:54.001825+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:38:56.061882+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:55.535915+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:38:58.605467+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:58.065592+00:00"
        }
      ],
      "block_index": 2,
      "model_reaching_attempt_index": null,
      "slot_index": 2,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:38:59.153284+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:58.606011+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:39:00.192952+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:38:59.655272+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:39:01.725876+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:01.197999+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:39:04.263765+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:03.730259+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": null,
      "slot_index": 3,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": 500,
          "charged": false,
          "ended_at": "2026-08-21T17:39:04.821190+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:04.264322+00:00"
        },
        {
          "attempt_index": 1,
          "backoff_ms": 1000,
          "charged": false,
          "ended_at": "2026-08-21T17:39:05.850572+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:05.326228+00:00"
        },
        {
          "attempt_index": 2,
          "backoff_ms": 2000,
          "charged": false,
          "ended_at": "2026-08-21T17:39:07.380699+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:06.852189+00:00"
        },
        {
          "attempt_index": 3,
          "backoff_ms": null,
          "charged": false,
          "ended_at": "2026-08-21T17:39:09.919130+00:00",
          "http_status": 402,
          "outcome": "rate-limited",
          "reached_model": false,
          "reason": "quota-exceeded",
          "request_id": null,
          "started_at": "2026-08-21T17:39:09.385744+00:00"
        }
      ],
      "block_index": 3,
      "model_reaching_attempt_index": null,
      "slot_index": 3,
      "terminal_state": "rate-limited-exhausted",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}