gpt-5.6-sol @ low · codex-oauth
codex-oauthlow
- config
- gpt-5.6-sol-eff-low--cli--codex-oauth--dev
- batch
- 2026-07-19--unified
- transport
- codex-cli-oauth-chatgpt
- protocol
- cli · plan
- served model
- gpt-5.6-sol
- 采集于
- 2026年7月18日 11:54 · N=2
variant
live
slot 0 · P-q · sandboxed iframe

截图是 similarity 通道测量时的原始像素。运行 live 会在 sandboxed iframe 中重新执行原始输出;渲染结果取决于你的浏览器和字体,不保证与测量像素一致。
similarity 邻居
最近
claude-sonnet-5 @low · CC0.75gpt-5.6-terra @low · kiro0.73gpt-5.6-sol @low · kiro0.72claude-opus-4-7 @low · kiro0.70gpt-5.6-terra @high · codex-oauth0.70最远
minimax-m2.7 · go0.44gpt-5.6-luna @medium · codex-oauth0.44gpt-5.6-luna @high · kiro0.44gpt-5.5 @medium · codex-oauth0.44kimi-k2.6 · go0.45限于 session 2026-07-19--unified
similarity 衡量本 session 内的趋同程度 —— 不是质量。
Fidelity —— 卡片展示的数据对不对?
- namematch
- conditionmatch
- datematch
- max tempmismatch展示值:17
- min tempmatch展示值:16
- hourlymatchcoverage 7/24 · 7 命中 · 0 不符 · 17 未展示
- 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>
:root {
color-scheme: dark;
--ink: #f7fbff;
--muted: rgba(232, 242, 255, 0.66);
--line: rgba(255, 255, 255, 0.13);
--panel: rgba(13, 30, 51, 0.62);
--accent: #ffd37a;
--cool: #8ad8ff;
}
* { box-sizing: border-box; }
html, body {
width: 100%;
min-height: 100%;
margin: 0;
}
body {
display: grid;
place-items: center;
min-height: 100vh;
overflow: hidden;
padding: 38px;
font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
color: var(--ink);
background:
radial-gradient(circle at 15% 14%, rgba(111, 196, 255, 0.34), transparent 29%),
radial-gradient(circle at 86% 86%, rgba(255, 172, 103, 0.22), transparent 31%),
linear-gradient(135deg, #071523 0%, #102e4b 48%, #183f5b 100%);
}
body::before,
body::after {
position: fixed;
content: "";
border-radius: 999px;
filter: blur(2px);
pointer-events: none;
}
body::before {
width: 390px;
height: 390px;
left: -145px;
bottom: -210px;
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 0 0 62px rgba(255, 255, 255, 0.018);
}
body::after {
width: 260px;
height: 260px;
right: -90px;
top: -125px;
background: rgba(255, 216, 141, 0.08);
box-shadow: 0 0 90px rgba(255, 205, 111, 0.17);
}
.weather-card {
position: relative;
width: min(1160px, calc(100vw - 76px));
height: min(690px, calc(100vh - 76px));
min-height: 620px;
overflow: hidden;
padding: 44px 48px 36px;
border: 1px solid rgba(255, 255, 255, 0.17);
border-radius: 34px;
background:
linear-gradient(145deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.035)),
var(--panel);
box-shadow:
0 34px 85px rgba(0, 8, 18, 0.42),
inset 0 1px 0 rgba(255, 255, 255, 0.17);
backdrop-filter: blur(28px);
}
.weather-card::before {
position: absolute;
top: -190px;
right: -130px;
width: 540px;
height: 540px;
content: "";
border-radius: 50%;
background: radial-gradient(circle, rgba(255, 213, 125, 0.19), transparent 65%);
pointer-events: none;
}
header {
position: relative;
z-index: 1;
display: flex;
align-items: flex-start;
justify-content: space-between;
}
.eyebrow {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
color: var(--cool);
font-size: 12px;
font-weight: 750;
letter-spacing: 0.19em;
text-transform: uppercase;
}
.eyebrow::before {
width: 7px;
height: 7px;
content: "";
border-radius: 50%;
background: var(--cool);
box-shadow: 0 0 16px var(--cool);
}
h1 {
max-width: 700px;
margin: 0;
overflow: hidden;
font-size: clamp(38px, 4vw, 58px);
font-weight: 650;
letter-spacing: -0.045em;
line-height: 1;
text-overflow: ellipsis;
white-space: nowrap;
}
.date {
margin: 13px 0 0;
color: var(--muted);
font-size: 16px;
letter-spacing: 0.01em;
}
.status-chip {
display: flex;
align-items: center;
gap: 8px;
margin-top: 4px;
padding: 10px 14px;
border: 1px solid var(--line);
border-radius: 999px;
color: rgba(240, 248, 255, 0.72);
background: rgba(255, 255, 255, 0.055);
font-size: 12px;
font-weight: 650;
letter-spacing: 0.04em;
}
.status-chip span {
width: 6px;
height: 6px;
border-radius: 50%;
background: #78dcac;
box-shadow: 0 0 12px #78dcac;
}
.overview {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: minmax(360px, 1.25fr) minmax(320px, 0.75fr);
align-items: center;
gap: 38px;
margin-top: 42px;
}
.current {
display: flex;
align-items: center;
gap: 28px;
}
.weather-icon {
display: grid;
flex: 0 0 136px;
width: 136px;
height: 136px;
place-items: center;
border: 1px solid rgba(255, 255, 255, 0.13);
border-radius: 38px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.025));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 20px 45px rgba(0, 12, 24, 0.18);
}
.weather-icon svg {
width: 82px;
height: 82px;
filter: drop-shadow(0 10px 15px rgba(0, 10, 22, 0.24));
}
.condition {
margin-bottom: 10px;
color: rgba(242, 248, 255, 0.8);
font-size: 20px;
font-weight: 520;
}
.temperature {
display: flex;
align-items: flex-start;
font-size: 96px;
font-weight: 300;
letter-spacing: -0.075em;
line-height: 0.86;
}
.temperature sup {
margin: 4px 0 0 9px;
color: var(--accent);
font-size: 25px;
font-weight: 550;
letter-spacing: -0.02em;
}
.range {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
}
.metric {
min-height: 126px;
padding: 22px 22px 18px;
border: 1px solid var(--line);
border-radius: 25px;
background: rgba(255, 255, 255, 0.05);
}
.metric-label {
display: flex;
align-items: center;
gap: 8px;
color: var(--muted);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.13em;
text-transform: uppercase;
}
.metric-label::before {
width: 8px;
height: 8px;
content: "";
border-radius: 50%;
background: var(--accent);
}
.metric.low .metric-label::before { background: var(--cool); }
.metric-value {
margin-top: 16px;
font-size: 43px;
font-weight: 450;
letter-spacing: -0.04em;
}
.metric-value small {
margin-left: 3px;
color: var(--muted);
font-size: 18px;
}
.hourly {
position: absolute;
z-index: 1;
right: 48px;
bottom: 36px;
left: 48px;
height: 208px;
padding: 21px 23px 16px;
border: 1px solid var(--line);
border-radius: 27px;
background: rgba(4, 17, 31, 0.29);
}
.hourly-header {
display: flex;
align-items: center;
justify-content: space-between;
}
.hourly-title {
margin: 0;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.hourly-note {
color: var(--muted);
font-size: 12px;
}
.chart {
position: relative;
height: 145px;
margin-top: 7px;
}
#chartSvg {
display: block;
width: 100%;
height: 100%;
overflow: visible;
}
.loading,
.error {
position: absolute;
z-index: 5;
inset: 0;
display: grid;
place-content: center;
padding: 40px;
text-align: center;
background: rgba(7, 21, 35, 0.74);
backdrop-filter: blur(18px);
transition: opacity 0.35s ease, visibility 0.35s ease;
}
.loading.hidden,
.error.hidden {
visibility: hidden;
opacity: 0;
}
.spinner {
width: 42px;
height: 42px;
margin: 0 auto 18px;
border: 3px solid rgba(255, 255, 255, 0.14);
border-top-color: var(--cool);
border-radius: 50%;
animation: spin 0.85s linear infinite;
}
.loading p,
.error p {
margin: 0;
color: var(--muted);
font-size: 15px;
}
.error-symbol {
margin-bottom: 17px;
color: var(--accent);
font-size: 42px;
}
.error h2 {
margin: 0 0 10px;
font-size: 25px;
font-weight: 600;
}
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-height: 700px) {
body { padding: 20px; }
.weather-card { height: calc(100vh - 40px); min-height: 600px; }
.overview { margin-top: 28px; }
.hourly { bottom: 28px; }
}
</style>
</head>
<body>
<main class="weather-card" aria-live="polite">
<header>
<div>
<div class="eyebrow">Daily weather</div>
<h1 id="location">Berlin</h1>
<p class="date" id="dateLabel"></p>
</div>
<div class="status-chip"><span></span> UTC forecast</div>
</header>
<section class="overview">
<div class="current">
<div class="weather-icon" id="weatherIcon" aria-hidden="true"></div>
<div>
<div class="condition" id="condition">—</div>
<div class="temperature">
<span id="heroTemp">—</span><sup>°C</sup>
</div>
</div>
</div>
<div class="range">
<div class="metric high">
<div class="metric-label">Daily high</div>
<div class="metric-value"><span id="maxTemp">—</span><small>°C</small></div>
</div>
<div class="metric low">
<div class="metric-label">Daily low</div>
<div class="metric-value"><span id="minTemp">—</span><small>°C</small></div>
</div>
</div>
</section>
<section class="hourly">
<div class="hourly-header">
<h2 class="hourly-title">Hourly temperature</h2>
<span class="hourly-note">00:00–23:00 · UTC</span>
</div>
<div class="chart" id="chart"></div>
</section>
<div class="loading" id="loading">
<div>
<div class="spinner"></div>
<p>Gathering the day’s weather…</p>
</div>
</div>
<div class="error hidden" id="error">
<div>
<div class="error-symbol">☁</div>
<h2>Weather unavailable</h2>
<p>The weather data could not be loaded. Please try again.</p>
</div>
</div>
</main>
<script>
(() => {
const params = new URLSearchParams(location.search);
const lat = Number.isFinite(Number(params.get("lat"))) ? Number(params.get("lat")) : 52.52;
const lon = Number.isFinite(Number(params.get("lon"))) ? Number(params.get("lon")) : 13.405;
const name = (params.get("name") || "Berlin").trim() || "Berlin";
const today = new Date().toISOString().slice(0, 10);
const requestedDate = /^\d{4}-\d{2}-\d{2}$/.test(params.get("date") || "")
? params.get("date")
: today;
const conditions = {
0: ["Clear sky", "clear"],
1: ["Mainly clear", "partly"],
2: ["Partly cloudy", "partly"],
3: ["Overcast", "cloud"],
45: ["Fog", "fog"],
48: ["Rime fog", "fog"],
51: ["Light drizzle", "rain"],
53: ["Drizzle", "rain"],
55: ["Heavy drizzle", "rain"],
56: ["Freezing drizzle", "sleet"],
57: ["Freezing drizzle", "sleet"],
61: ["Light rain", "rain"],
63: ["Rain", "rain"],
65: ["Heavy rain", "rain"],
66: ["Freezing rain", "sleet"],
67: ["Heavy freezing rain", "sleet"],
71: ["Light snow", "snow"],
73: ["Snow", "snow"],
75: ["Heavy snow", "snow"],
77: ["Snow grains", "snow"],
80: ["Light showers", "rain"],
81: ["Rain showers", "rain"],
82: ["Heavy showers", "rain"],
85: ["Snow showers", "snow"],
86: ["Heavy snow showers", "snow"],
95: ["Thunderstorm", "storm"],
96: ["Thunderstorm with hail", "storm"],
99: ["Severe thunderstorm", "storm"]
};
const icons = {
clear: `<svg viewBox="0 0 100 100"><circle cx="50" cy="50" r="20" fill="#FFD579"/><g stroke="#FFD579" stroke-width="5" stroke-linecap="round"><path d="M50 8v10M50 82v10M8 50h10M82 50h10M20 20l7 7M73 73l7 7M80 20l-7 7M27 73l-7 7"/></g></svg>`,
partly: `<svg viewBox="0 0 100 100"><circle cx="62" cy="35" r="19" fill="#FFD579"/><g stroke="#FFD579" stroke-width="4" stroke-linecap="round"><path d="M62 7v8M89 35h-8M81 16l-6 6"/></g><path d="M73 75H28a17 17 0 1 1 6-33 23 23 0 0 1 43 11 12 12 0 0 1-4 22Z" fill="#DDEEFF" stroke="#F5FAFF" stroke-width="3"/></svg>`,
cloud: `<svg viewBox="0 0 100 100"><path d="M78 75H24a19 19 0 1 1 7-36 27 27 0 0 1 51 13 14 14 0 0 1-4 23Z" fill="#DCEEFF" stroke="#F5FAFF" stroke-width="3"/></svg>`,
rain: `<svg viewBox="0 0 100 100"><path d="M78 61H24a18 18 0 1 1 7-35 26 26 0 0 1 50 13 13 13 0 0 1-3 22Z" fill="#DCEEFF"/><g stroke="#75D1FF" stroke-width="5" stroke-linecap="round"><path d="M34 71l-5 10M53 71l-5 10M72 71l-5 10"/></g></svg>`,
snow: `<svg viewBox="0 0 100 100"><path d="M78 58H24a18 18 0 1 1 7-35 26 26 0 0 1 50 13 13 13 0 0 1-3 22Z" fill="#DCEEFF"/><g fill="#A9E5FF"><circle cx="30" cy="75" r="4"/><circle cx="50" cy="82" r="4"/><circle cx="70" cy="74" r="4"/></g></svg>`,
fog: `<svg viewBox="0 0 100 100"><path d="M75 53H27a16 16 0 1 1 6-31 23 23 0 0 1 44 12 11 11 0 0 1-2 19Z" fill="#DCEEFF"/><g stroke="#A9DDF4" stroke-width="5" stroke-linecap="round"><path d="M19 67h62M27 80h46"/></g></svg>`,
sleet: `<svg viewBox="0 0 100 100"><path d="M78 57H24a18 18 0 1 1 7-35 26 26 0 0 1 50 13 13 13 0 0 1-3 22Z" fill="#DCEEFF"/><g stroke="#75D1FF" stroke-width="5" stroke-linecap="round"><path d="M33 68l-4 9M65 68l-4 9"/></g><circle cx="48" cy="78" r="4" fill="#D7F3FF"/></svg>`,
storm: `<svg viewBox="0 0 100 100"><path d="M78 57H24a18 18 0 1 1 7-35 26 26 0 0 1 50 13 13 13 0 0 1-3 22Z" fill="#C9DDEF"/><path d="M53 61 38 80h12l-4 14 19-24H53Z" fill="#FFD36F"/></svg>`
};
function formatDate(value) {
const date = new Date(value + "T12:00:00Z");
if (Number.isNaN(date.getTime())) return value;
return new Intl.DateTimeFormat("en", {
weekday: "long",
day: "numeric",
month: "long",
year: "numeric",
timeZone: "UTC"
}).format(date);
}
function number(value) {
return Number.isFinite(Number(value)) ? Number(value) : null;
}
function drawChart(values, times) {
const clean = values.map(number);
if (!clean.length || clean.every(v => v === null)) throw new Error("Missing hourly data");
const width = 1000;
const height = 142;
const left = 18;
const right = 18;
const top = 22;
const bottom = 28;
const valid = clean.filter(v => v !== null);
const low = Math.floor(Math.min(...valid) - 2);
const high = Math.ceil(Math.max(...valid) + 2);
const span = Math.max(1, high - low);
const x = i => left + i * (width - left - right) / Math.max(1, clean.length - 1);
const y = v => top + (high - v) * (height - top - bottom) / span;
const points = clean
.map((v, i) => v === null ? null : [x(i), y(v)])
.filter(Boolean);
const line = points.map((p, i) => `${i ? "L" : "M"}${p[0].toFixed(2)},${p[1].toFixed(2)}`).join(" ");
const area = `${line} L${points[points.length - 1][0]},${height - bottom} L${points[0][0]},${height - bottom} Z`;
const labels = clean.map((v, i) => {
if (v === null || (i % 3 !== 0 && i !== clean.length - 1)) return "";
const hour = times[i] ? times[i].slice(11, 16) : String(i).padStart(2, "0") + ":00";
return `<g>
<text x="${x(i)}" y="${height - 5}" text-anchor="middle" fill="rgba(231,242,255,.55)" font-size="10">${hour}</text>
<text x="${x(i)}" y="${Math.max(12, y(v) - 10)}" text-anchor="middle" fill="rgba(248,252,255,.82)" font-size="10" font-weight="650">${Math.round(v)}°</text>
</g>`;
}).join("");
const grid = [0, .5, 1].map(f => {
const gy = top + f * (height - top - bottom);
return `<line x1="${left}" y1="${gy}" x2="${width - right}" y2="${gy}" stroke="rgba(255,255,255,.08)" stroke-width="1"/>`;
}).join("");
document.getElementById("chart").innerHTML = `
<svg id="chartSvg" viewBox="0 0 ${width} ${height}" preserveAspectRatio="none" role="img" aria-label="Hourly temperature chart">
<defs>
<linearGradient id="areaGradient" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#76D3FF" stop-opacity=".30"/>
<stop offset="1" stop-color="#76D3FF" stop-opacity="0"/>
</linearGradient>
<linearGradient id="lineGradient" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#78D7FF"/>
<stop offset=".55" stop-color="#C5EDFF"/>
<stop offset="1" stop-color="#FFD47A"/>
</linearGradient>
</defs>
${grid}
<path d="${area}" fill="url(#areaGradient)"/>
<path d="${line}" fill="none" stroke="url(#lineGradient)" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke"/>
${points.map(p => `<circle cx="${p[0]}" cy="${p[1]}" r="2.5" fill="#EAF8FF" opacity=".8"/>`).join("")}
${labels}
</svg>`;
}
async function load() {
document.getElementById("location").textContent = name;
document.getElementById("dateLabel").textContent = formatDate(requestedDate);
document.title = `${name} weather · ${requestedDate}`;
try {
const endpoint = requestedDate < today ? "/api/om/archive" : "/api/om/forecast";
const query = new URLSearchParams({
latitude: String(lat),
longitude: String(lon),
daily: "temperature_2m_max,temperature_2m_min,weather_code",
hourly: "temperature_2m",
timezone: "UTC",
temperature_unit: "celsius",
start_date: requestedDate,
end_date: requestedDate
});
const response = await fetch(`${endpoint}?${query}`);
if (!response.ok) throw new Error(`Weather request failed: ${response.status}`);
const data = await response.json();
const max = number(data.daily?.temperature_2m_max?.[0]);
const min = number(data.daily?.temperature_2m_min?.[0]);
const code = number(data.daily?.weather_code?.[0]);
if (max === null || min === null || code === null) throw new Error("Incomplete weather data");
const [label, iconType] = conditions[code] || ["Unknown conditions", "cloud"];
document.getElementById("condition").textContent = label;
document.getElementById("weatherIcon").innerHTML = icons[iconType];
document.getElementById("heroTemp").textContent = Math.round(max);
document.getElementById("maxTemp").textContent = max.toFixed(1);
document.getElementById("minTemp").textContent = min.toFixed(1);
const hourlyTimes = data.hourly?.time || [];
const hourlyValues = data.hourly?.temperature_2m || [];
const selectedValues = [];
const selectedTimes = [];
hourlyTimes.forEach((time, index) => {
if (String(time).slice(0, 10) === requestedDate) {
selectedTimes.push(time);
selectedValues.push(hourlyValues[index]);
}
});
drawChart(
selectedValues.length ? selectedValues : hourlyValues,
selectedTimes.length ? selectedTimes : hourlyTimes
);
document.getElementById("loading").classList.add("hidden");
} catch (err) {
document.getElementById("loading").classList.add("hidden");
document.getElementById("error").classList.remove("hidden");
}
}
load();
})();
</script>
</body>
</html>L1 —— 廉价的确定性描述量
| bytes 总计 | 19,950 | html / css / js | 1,972 / 8,207 / 9,771 |
|---|---|---|---|
| dom 节点 | 49 | dom 深度 | 8 |
| css 规则 | 49 | 含 js | 是 |
| brightness | 55.3 | contrast | 20.3 |
| colorfulness | 18.8 | 留白 | 56.8% |
该 slot 的 telemetry
| prompt tokens | 0 | completion tokens | 12,256 |
|---|---|---|---|
| total tokens | 0 | wall | 119.9 s |
| cost | — | request id | — |
config.json557 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "gpt-5.6-sol-eff-low--cli--codex-oauth--dev",
"effort": "low",
"family": "gpt",
"m": {
"min": 2,
"q": 2
},
"model_id": "gpt-5.6-sol",
"protocol": "cli",
"served_model": "gpt-5.6-sol",
"telemetry": {
"completion_tokens": 43774,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 379283
},
"transport": "codex-cli-oauth-chatgpt",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-17--dev-codex-oauth-gpt-5.6-sol",
"config_id": "gpt-5.6-sol-eff-low--cli--codex-oauth--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T13:55:23.263996+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:54:09.035404+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-17T13:57:27.360859+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:55:27.427233+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-17T13:59:06.166100+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:57:31.001140+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-q"
},
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-17T14:00:39.730415+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-17T13:59:09.763692+00:00"
}
],
"block_index": 1,
"model_reaching_attempt_index": 0,
"slot_index": 1,
"terminal_state": "valid",
"variant": "P-min"
}
],
"retry_policy": {
"max_unreachable_retries": 5,
"rate_limit_backoff": {
"max_attempts": 4,
"max_total_ms": 60000
}
}
}