{
  "aboutHtml": "<p>GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。</p><p>分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。</p><p>擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。</p><p>OpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。</p><p>開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。</p><p>多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。</p>",
  "aboutText": "GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。\n\n分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。\n\n擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。\n\nOpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。\n\n開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。\n\n多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>實用任務</h3><p>英文技術範例</p><pre><code>Extract facts from a delivery request\n\nExtract only the required facts from this message: &#x27;Order K92 arrived with one cracked cup out of six. Please replace that cup; weekday delivery is best. I have not sent a photograph yet.&#x27; Return order_reference, affected_quantity, total_quantity, requested_action and missing_evidence. Keep quantities numeric and do not infer a delivery address or replacement approval.</code></pre><h4>預期結果</h4><pre><code>A compact extraction record containing the five requested fields, with no unrelated summary.</code></pre><h4>檢查結果</h4><pre><code>The record separates one affected cup from six total cups and marks the photograph as not yet supplied.</code></pre>"
    },
    "copy_sha256": "59fb18742ea2535f4bc6606c4fe5ac30dbe8fd1546cceb25019bd70ff0b1b5d8",
    "copy_source": {
      "locale": "zh-hant-tw",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "openai/gpt-5.4-nano",
      "source_facts_sha256": "367822ceadf48826c4a48847b083632407de7c8ac9fcfec4af60c30675e4c8b7",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "6f10246ab63ee7419bdaeac2b5459311cf3ddc8478a847d6c017330e34cd78b4",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "zh-hant-tw",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT-5.4 Nano</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"關閉\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>gpt-5.4-nano</code><button type=\"button\" id=\"copy-id\">複製 ID</button></div><nav class=\"card-jump-nav\" aria-label=\"模型卡片區段\"><button type=\"button\" data-card-jump=\"overview\">入門</button><button type=\"button\" data-card-jump=\"methods\">輸入與方法</button><button type=\"button\" data-card-jump=\"pricing\">方案</button><button type=\"button\" data-card-jump=\"examples\">範例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">別名</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 方法\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|gpt-5.4-nano\">Chat · Ultra</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|gpt-5.4-nano\">Messages · Ultra</button></div><div class=\"idline\"><label for=\"card-model-id\">模型 ID</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Ultra|chat|/v1/chat/completions|gpt-5.4-nano\" selected>gpt-5.4-nano</option><option value=\"Ultra|chat|/v1/chat/completions|openai%2Fgpt-5.4-nano\">openai/gpt-5.4-nano</option></select></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">入門</h3><p class=\"mdesc-full\">用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。</p><dl class=\"card-io\" data-card-io><div><dt>接受的輸入</dt><dd>文字</dd></div><div><dt>結果</dt><dd>文字</dd></div></dl><details class=\"card-about\"><summary>關於模型</summary><p class=\"note-s\" data-model-method-boundary>此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。</p><div class=\"mabout\" id=\"m-about\"><p>GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。</p><p>分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。</p><p>擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。</p><p>OpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。</p><p>開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。</p><p>多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot 可用 · 輸入與方法</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>輸入</dt><dd><code>text</code></dd></div><div><dt>輸出</dt><dd><code>text</code></dd></div><div><dt>輸出格式</dt><dd>json 或 SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>欄位</th><th>類型</th><th>要求</th><th>值與限制</th><th>預設值</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>gpt-5.4-nano</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>message[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>項目數下限: 1</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>適用條件: 文字對話</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"known\"><span class=\"card-cell-label\">預設值</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>輸入素材組合</summary><p class=\"note-s\"><b>文字</b> · UTF8 文字</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>方法參數與生命週期</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>參數</th><th>規格</th></tr></thead><tbody><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>content_type</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>application/json</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>required</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>model, messages</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>material_types</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>messages</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>具有 role/content 結構的訊息陣列</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>file_material</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>實際 UTF-8 文件以原文文字插入；不推定檔案 ID</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>optional_controls</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>stream</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>control_scope</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>文字對話；stream 是布林值，預設為 false。</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>output_modalities</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>hosted_operations</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>false</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>multimodal_input_binding</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>null</td></tr></tbody></table></div><p>方法別名： <code>/chat/completions</code></p><p>生命週期： <code>synchronous_or_streamed</code></p><p class=\"note-s\">將確切模型 ID 與 messages 一併送出。</p><p class=\"note-s\">上下文長度不是輸出上限。</p><p class=\"note-s\">文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">方案</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>費率資訊不會增加請求選項。支援的參數列於所選方法中。</p><dl data-price-conditions><dt>快速模式</dt><dd>標準費率 <span class=\"note-s\">選取快速模式時</span></dd><dt>flex 模式</dt><dd>標準費率 <span class=\"note-s\">選取 flex 模式時</span></dd><dt>最高推理強度</dt><dd>標準費率 <span class=\"note-s\">最高推理強度採用 default 調整值時</span></dd><dt>推理強度 · high</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 high 時</span></dd><dt>推理強度 · low</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 low 時</span></dd><dt>推理強度 · medium</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 medium 時</span></dd><dt>推理強度 · none</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 none 時</span></dd><dt>推理強度 · xhigh</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 xhigh 時</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 費率</h4><h4>各設定的價格</h4><p class=\"note-s\">請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>費率表</th><th>上下文 Token 數大於</th><th>上下文 Token 數小於或等於</th><th>費用</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>詞元基本費率</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>基本費率</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>—</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>請求長度級距 1</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>—</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>0</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。<a href=\"/docs/zh-hant-tw/billing/reserve/\">預留金額與結算的運作方式 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">請求範例</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"程式碼版本\"><button class=\"cg-tab\" id=\"model-code-1649-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1649-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1649-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1649-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"複製程式碼\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1649-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1649-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;:&quot;gpt-5.4-nano&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:false}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1649-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1649-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&quot;gpt-5.4-nano&quot;, messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">接收並儲存結果</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json 或 SSE</p><div class=\"card-result-process\" data-all-results><h5>保留所有已完成的結果</h5><p class=\"note-s\">請保留所有完整傳回的回應、檔案與內容區塊。</p><p class=\"note-s\">保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>需要檢查原始回應時</h5><p class=\"note-s\">保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。</p></div><details class=\"card-about\" data-output-fields><summary>回應欄位</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>欄位</th><th>類型</th></tr></thead><tbody><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>integer</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>tool_call[]</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object|array</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>錯誤與後續步驟</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>回應</th><th>條件</th><th>下一步</th></tr></thead><tbody><tr><th data-cell-label=\"回應\" scope=\"row\"><span class=\"card-cell-label\">回應</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"條件\"><span class=\"card-cell-label\">條件</span>必要欄位、素材表示方式或參數值無效</td><td data-cell-label=\"下一步\"><span class=\"card-cell-label\">下一步</span>提出新的建立請求前，先修正指定欄位。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">別名</h3><h4>模型別名</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=chat\"><code>gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=chat\"><code>openai/gpt-5.4-nano</code></a></span></p><h4>方法路徑別名</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>相關呼叫用 ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=chat\"><code>openai/gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=chat\"><code>gpt-5.4-nano</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gpt-5.4-nano",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|gpt-5.4-nano",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 文字"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "文字對話"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "將確切模型 ID 與 messages 一併送出。",
            "上下文長度不是輸出上限。",
            "文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。"
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "文字對話；stream 是布林值，預設為 false。",
            "file_material": "實際 UTF-8 文件以原文文字插入；不推定檔案 ID",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "具有 role/content 結構的訊息陣列",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"gpt-5.4-nano\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"gpt-5.4-nano\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 2.5,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Reasoning effort · high",
            "value": "Standard rate",
            "when": "When reasoning effort is high"
          },
          {
            "label": "Reasoning effort · low",
            "value": "Standard rate",
            "when": "When reasoning effort is low"
          },
          {
            "label": "Reasoning effort · medium",
            "value": "Standard rate",
            "when": "When reasoning effort is medium"
          },
          {
            "label": "Reasoning effort · none",
            "value": "Standard rate",
            "when": "When reasoning effort is none"
          },
          {
            "label": "Reasoning effort · xhigh",
            "value": "Standard rate",
            "when": "When reasoning effort is xhigh"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT-5.4 Nano</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"關閉\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>gpt-5.4-nano</code><button type=\"button\" id=\"copy-id\">複製 ID</button></div><nav class=\"card-jump-nav\" aria-label=\"模型卡片區段\"><button type=\"button\" data-card-jump=\"overview\">入門</button><button type=\"button\" data-card-jump=\"methods\">輸入與方法</button><button type=\"button\" data-card-jump=\"pricing\">方案</button><button type=\"button\" data-card-jump=\"examples\">範例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">別名</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 方法\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|gpt-5.4-nano\">Chat · Ultra</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|gpt-5.4-nano\">Messages · Ultra</button></div><div class=\"idline\"><label for=\"card-model-id\">模型 ID</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Ultra|messages|/v1/messages|gpt-5.4-nano\" selected>gpt-5.4-nano</option><option value=\"Ultra|messages|/v1/messages|openai%2Fgpt-5.4-nano\">openai/gpt-5.4-nano</option></select></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">入門</h3><p class=\"mdesc-full\">用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。</p><dl class=\"card-io\" data-card-io><div><dt>接受的輸入</dt><dd>文字</dd></div><div><dt>結果</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>關於模型</summary><p class=\"note-s\" data-model-method-boundary>此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。</p><div class=\"mabout\" id=\"m-about\"><p>GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。</p><p>分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。</p><p>擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。</p><p>OpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。</p><p>開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。</p><p>多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot 可用 · 輸入與方法</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>輸入</dt><dd><code>text</code></dd></div><div><dt>輸出</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>輸出格式</dt><dd>JSON 或 SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>欄位</th><th>類型</th><th>要求</th><th>值與限制</th><th>預設值</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>gpt-5.4-nano</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>message[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>user, assistant</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>integer</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"known\"><span class=\"card-cell-label\">預設值</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>輸入素材組合</summary><p class=\"note-s\"><b>文字</b> · UTF-8 文字</p><p class=\"note-s\"><code>messages[].content 字串</code></p></details><details class=\"note-s\" data-method-contract><summary>方法參數與生命週期</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>參數</th><th>規格</th></tr></thead><tbody><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>content_type</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>application/json</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>required</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>optional_controls</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>stream</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>material_types</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>text_file_material</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。</td></tr></tbody></table></div><p>生命週期： <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">方案</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>費率資訊不會增加請求選項。支援的參數列於所選方法中。</p><dl data-price-conditions><dt>快速模式</dt><dd>標準費率 <span class=\"note-s\">選取快速模式時</span></dd><dt>flex 模式</dt><dd>標準費率 <span class=\"note-s\">選取 flex 模式時</span></dd><dt>最高推理強度</dt><dd>標準費率 <span class=\"note-s\">最高推理強度採用 default 調整值時</span></dd><dt>推理強度 · high</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 high 時</span></dd><dt>推理強度 · low</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 low 時</span></dd><dt>推理強度 · medium</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 medium 時</span></dd><dt>推理強度 · none</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 none 時</span></dd><dt>推理強度 · xhigh</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 xhigh 時</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 費率</h4><h4>各設定的價格</h4><p class=\"note-s\">請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>費率表</th><th>上下文 Token 數大於</th><th>上下文 Token 數小於或等於</th><th>費用</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>詞元基本費率</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>基本費率</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>—</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>請求長度級距 1</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>—</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>0</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。<a href=\"/docs/zh-hant-tw/billing/reserve/\">預留金額與結算的運作方式 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">請求範例</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"程式碼版本\"><button class=\"cg-tab\" id=\"model-code-1650-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1650-panel-0\" aria-selected=\"true\" tabindex=\"0\">完整的最小 JSON 請求主體</button><button class=\"cg-tab\" id=\"model-code-1650-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1650-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · 使用您的 UTF-8 文件</button><button class=\"cg-tab\" id=\"model-code-1650-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1650-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · 儲存完整結果</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"複製程式碼\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1650-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1650-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;gpt-5.4-nano&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1650-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1650-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;gpt-5.4-nano&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1650-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1650-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;gpt-5.4-nano&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">接收並儲存結果</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON 或 SSE</p><div class=\"card-result-process\" data-all-results><h5>保留所有已完成的結果</h5><p class=\"note-s\">請保留所有完整傳回的回應、檔案與內容區塊。</p><p class=\"note-s\">保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>需要檢查原始回應時</h5><p class=\"note-s\">保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。</p></div><details class=\"card-about\" data-output-fields><summary>回應欄位</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>欄位</th><th>類型</th></tr></thead><tbody><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>錯誤與後續步驟</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>回應</th><th>條件</th><th>下一步</th></tr></thead><tbody><tr><th data-cell-label=\"回應\" scope=\"row\"><span class=\"card-cell-label\">回應</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"條件\"><span class=\"card-cell-label\">條件</span>必要欄位、素材表示方式或參數值無效</td><td data-cell-label=\"下一步\"><span class=\"card-cell-label\">下一步</span>提出新的建立請求前，先修正指定欄位。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">別名</h3><h4>模型別名</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=messages\"><code>gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=messages\"><code>openai/gpt-5.4-nano</code></a></span></p><h4>方法路徑別名</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>相關呼叫用 ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=messages\"><code>openai/gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=messages\"><code>gpt-5.4-nano</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gpt-5.4-nano",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|gpt-5.4-nano",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gpt-5.4-nano",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content 字串",
                "required_material": "UTF-8 文字"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "gpt-5.4-nano"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gpt-5.4-nano",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。"
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"gpt-5.4-nano\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Reasoning effort · high",
            "value": "Standard rate",
            "when": "When reasoning effort is high"
          },
          {
            "label": "Reasoning effort · low",
            "value": "Standard rate",
            "when": "When reasoning effort is low"
          },
          {
            "label": "Reasoning effort · medium",
            "value": "Standard rate",
            "when": "When reasoning effort is medium"
          },
          {
            "label": "Reasoning effort · none",
            "value": "Standard rate",
            "when": "When reasoning effort is none"
          },
          {
            "label": "Reasoning effort · xhigh",
            "value": "Standard rate",
            "when": "When reasoning effort is xhigh"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT-5.4 Nano</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"關閉\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-5.4-nano</code><button type=\"button\" id=\"copy-id\">複製 ID</button></div><nav class=\"card-jump-nav\" aria-label=\"模型卡片區段\"><button type=\"button\" data-card-jump=\"overview\">入門</button><button type=\"button\" data-card-jump=\"methods\">輸入與方法</button><button type=\"button\" data-card-jump=\"pricing\">方案</button><button type=\"button\" data-card-jump=\"examples\">範例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">別名</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 方法\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|openai%2Fgpt-5.4-nano\">Chat · Ultra</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|gpt-5.4-nano\">Messages · Ultra</button></div><div class=\"idline\"><label for=\"card-model-id\">模型 ID</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Ultra|chat|/v1/chat/completions|gpt-5.4-nano\">gpt-5.4-nano</option><option value=\"Ultra|chat|/v1/chat/completions|openai%2Fgpt-5.4-nano\" selected>openai/gpt-5.4-nano</option></select></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">入門</h3><p class=\"mdesc-full\">用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。</p><dl class=\"card-io\" data-card-io><div><dt>接受的輸入</dt><dd>文字</dd></div><div><dt>結果</dt><dd>文字</dd></div></dl><details class=\"card-about\"><summary>關於模型</summary><p class=\"note-s\" data-model-method-boundary>此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。</p><div class=\"mabout\" id=\"m-about\"><p>GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。</p><p>分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。</p><p>擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。</p><p>OpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。</p><p>開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。</p><p>多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot 可用 · 輸入與方法</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>輸入</dt><dd><code>text</code></dd></div><div><dt>輸出</dt><dd><code>text</code></dd></div><div><dt>輸出格式</dt><dd>json 或 SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>欄位</th><th>類型</th><th>要求</th><th>值與限制</th><th>預設值</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>openai/gpt-5.4-nano</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>message[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>項目數下限: 1</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>範例：system, user, assistant, tool, function</div><div>條件: 這些角色由 原始碼中的相容型別明確表示；確切角色集合仍依模型而定。</div><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string|content_part[]|null</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>tool_call[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>適用條件: role=tool；使用實際回傳的 ID</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>適用條件: 此模型使用推理內容時，將實際回傳的推理內容帶回後續請求</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>object|array</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>integer</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>最小值: 1</div><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>integer</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>最小值: 1</div><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"known\"><span class=\"card-cell-label\">預設值</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>number</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>number</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string|string[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>function_tool[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>function</div><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>適用條件: 已提供函式工具</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>JSON_schema</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string|object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">相容性欄位</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>function[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string|object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div class=\"note-s\">依模型而定</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>text</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>object</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>條件: 此 Ultra 文字路由拒絕 provider.options</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>條件: 實際提示詞快取位置拒絕 1h</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>輸入素材組合</summary><p class=\"note-s\"><b>文字</b> · UTF8 文字</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>方法參數與生命週期</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>參數</th><th>規格</th></tr></thead><tbody><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>content_type</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>application/json</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>required</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>model, messages</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>material_types</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>messages</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>具有 role/content 結構的訊息陣列</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>file_material</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>實際 UTF-8 文件以原文文字插入；不推定檔案 ID</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>optional_controls</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>control_scope</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>依模型而定；使用者函式工具與託管工具不同</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>output_modalities</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>hosted_operations</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>false</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>multimodal_input_binding</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>null</td></tr></tbody></table></div><p>生命週期： <code>synchronous_or_streamed</code></p><p class=\"note-s\">將確切模型 ID 與 messages 一併送出。</p><p class=\"note-s\">上下文長度不是輸出上限。</p><p class=\"note-s\">文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">方案</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>費率資訊不會增加請求選項。支援的參數列於所選方法中。</p><dl data-price-conditions><dt>快速模式</dt><dd>標準費率 <span class=\"note-s\">選取快速模式時</span></dd><dt>flex 模式</dt><dd>標準費率 <span class=\"note-s\">選取 flex 模式時</span></dd><dt>最高推理強度</dt><dd>標準費率 <span class=\"note-s\">最高推理強度採用 default 調整值時</span></dd><dt>推理強度 · high</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 high 時</span></dd><dt>推理強度 · low</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 low 時</span></dd><dt>推理強度 · medium</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 medium 時</span></dd><dt>推理強度 · none</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 none 時</span></dd><dt>推理強度 · xhigh</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 xhigh 時</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 費率</h4><h4>各設定的價格</h4><p class=\"note-s\">請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>費率表</th><th>上下文 Token 數大於</th><th>上下文 Token 數小於或等於</th><th>費用</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>詞元基本費率</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>基本費率</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>—</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>請求長度級距 1</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>—</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>0</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。<a href=\"/docs/zh-hant-tw/billing/reserve/\">預留金額與結算的運作方式 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">請求範例</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"程式碼版本\"><button class=\"cg-tab\" id=\"model-code-1651-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1651-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1651-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1651-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-1651-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1651-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python 串流</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"複製程式碼\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1651-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1651-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;openai/gpt-5.4-nano&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1651-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1651-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&#39;openai/gpt-5.4-nano&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1651-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1651-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;openai/gpt-5.4-nano&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">接收並儲存結果</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json 或 SSE</p><div class=\"card-result-process\" data-all-results><h5>保留所有已完成的結果</h5><p class=\"note-s\">請保留所有完整傳回的回應、檔案與內容區塊。</p><p class=\"note-s\">保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>需要檢查原始回應時</h5><p class=\"note-s\">保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。</p></div><details class=\"card-about\" data-output-fields><summary>回應欄位</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>欄位</th><th>類型</th></tr></thead><tbody><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>integer</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>tool_call[]</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object|array</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>錯誤與後續步驟</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>回應</th><th>條件</th><th>下一步</th></tr></thead><tbody><tr><th data-cell-label=\"回應\" scope=\"row\"><span class=\"card-cell-label\">回應</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"條件\"><span class=\"card-cell-label\">條件</span>必要欄位、素材表示方式或參數值無效</td><td data-cell-label=\"下一步\"><span class=\"card-cell-label\">下一步</span>提出新的建立請求前，先修正指定欄位。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">別名</h3><h4>模型別名</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=chat\"><code>gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=chat\"><code>openai/gpt-5.4-nano</code></a></span></p><h4>方法路徑別名</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>相關呼叫用 ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=chat\"><code>openai/gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=chat\"><code>gpt-5.4-nano</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-5.4-nano",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|openai%2Fgpt-5.4-nano",
      "ordinal": 2,
      "rawMethod": {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 文字"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "這些角色由 原始碼中的相容型別明確表示；確切角色集合仍依模型而定。",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool；使用實際回傳的 ID"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "此模型使用推理內容時，將實際回傳的推理內容帶回後續請求"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "已提供函式工具"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "此 Ultra 文字路由拒絕 provider.options",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "實際提示詞快取位置拒絕 1h",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "將確切模型 ID 與 messages 一併送出。",
            "上下文長度不是輸出上限。",
            "文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。"
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "依模型而定；使用者函式工具與託管工具不同",
            "file_material": "實際 UTF-8 文件以原文文字插入；不推定檔案 ID",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "具有 role/content 結構的訊息陣列",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "請求長度級距 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"openai/gpt-5.4-nano\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='openai/gpt-5.4-nano',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='openai/gpt-5.4-nano',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "快速模式",
            "value": "標準費率",
            "when": "選取快速模式時"
          },
          {
            "label": "flex 模式",
            "value": "標準費率",
            "when": "選取 flex 模式時"
          },
          {
            "label": "最高推理強度",
            "value": "標準費率",
            "when": "最高推理強度採用 default 調整值時"
          },
          {
            "label": "推理強度 · high",
            "value": "標準費率",
            "when": "推理強度設為 high 時"
          },
          {
            "label": "推理強度 · low",
            "value": "標準費率",
            "when": "推理強度設為 low 時"
          },
          {
            "label": "推理強度 · medium",
            "value": "標準費率",
            "when": "推理強度設為 medium 時"
          },
          {
            "label": "推理強度 · none",
            "value": "標準費率",
            "when": "推理強度設為 none 時"
          },
          {
            "label": "推理強度 · xhigh",
            "value": "標準費率",
            "when": "推理強度設為 xhigh 時"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT-5.4 Nano</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"關閉\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-5.4-nano</code><button type=\"button\" id=\"copy-id\">複製 ID</button></div><nav class=\"card-jump-nav\" aria-label=\"模型卡片區段\"><button type=\"button\" data-card-jump=\"overview\">入門</button><button type=\"button\" data-card-jump=\"methods\">輸入與方法</button><button type=\"button\" data-card-jump=\"pricing\">方案</button><button type=\"button\" data-card-jump=\"examples\">範例</button><button type=\"button\" data-card-jump=\"results\">結果</button><button type=\"button\" data-card-jump=\"aliases\">別名</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API 方法\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|gpt-5.4-nano\">Chat · Ultra</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|openai%2Fgpt-5.4-nano\">Messages · Ultra</button></div><div class=\"idline\"><label for=\"card-model-id\">模型 ID</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Ultra|messages|/v1/messages|gpt-5.4-nano\">gpt-5.4-nano</option><option value=\"Ultra|messages|/v1/messages|openai%2Fgpt-5.4-nano\" selected>openai/gpt-5.4-nano</option></select></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">入門</h3><p class=\"mdesc-full\">用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。</p><dl class=\"card-io\" data-card-io><div><dt>接受的輸入</dt><dd>文字</dd></div><div><dt>結果</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>關於模型</summary><p class=\"note-s\" data-model-method-boundary>此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。</p><div class=\"mabout\" id=\"m-about\"><p>GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。</p><p>分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。</p><p>擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。</p><p>OpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。</p><p>開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。</p><p>多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot 可用 · 輸入與方法</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>輸入</dt><dd><code>text</code></dd></div><div><dt>輸出</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>輸出格式</dt><dd>JSON 或 SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>欄位</th><th>類型</th><th>要求</th><th>值與限制</th><th>預設值</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>openai/gpt-5.4-nano</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>message[]</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span><div>user, assistant</div></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>string</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>integer</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>必填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"unspecified\"><span class=\"card-cell-label\">預設值</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span><code>boolean</code></td><td data-cell-label=\"要求\"><span class=\"card-cell-label\">要求</span>選填</td><td data-cell-label=\"值與限制\"><span class=\"card-cell-label\">值與限制</span></td><td data-cell-label=\"預設值\" data-default=\"known\"><span class=\"card-cell-label\">預設值</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>輸入素材組合</summary><p class=\"note-s\"><b>文字</b> · UTF-8 文字</p><p class=\"note-s\"><code>messages[].content 字串</code></p></details><details class=\"note-s\" data-method-contract><summary>方法參數與生命週期</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>參數</th><th>規格</th></tr></thead><tbody><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>content_type</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>application/json</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>required</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>optional_controls</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>stream</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>material_types</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>text</td></tr><tr><th data-cell-label=\"參數\" scope=\"row\"><span class=\"card-cell-label\">參數</span><code>text_file_material</code></th><td data-cell-label=\"規格\"><span class=\"card-cell-label\">規格</span>讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。</td></tr></tbody></table></div><p>生命週期： <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">方案</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>費率資訊不會增加請求選項。支援的參數列於所選方法中。</p><dl data-price-conditions><dt>快速模式</dt><dd>標準費率 <span class=\"note-s\">選取快速模式時</span></dd><dt>flex 模式</dt><dd>標準費率 <span class=\"note-s\">選取 flex 模式時</span></dd><dt>最高推理強度</dt><dd>標準費率 <span class=\"note-s\">最高推理強度採用 default 調整值時</span></dd><dt>推理強度 · high</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 high 時</span></dd><dt>推理強度 · low</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 low 時</span></dd><dt>推理強度 · medium</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 medium 時</span></dd><dt>推理強度 · none</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 none 時</span></dd><dt>推理強度 · xhigh</dt><dd>標準費率 <span class=\"note-s\">推理強度設為 xhigh 時</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot 費率</h4><h4>各設定的價格</h4><p class=\"note-s\">請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>設定</th><th>費率表</th><th>上下文 Token 數大於</th><th>上下文 Token 數小於或等於</th><th>費用</th></tr></thead><tbody><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>詞元基本費率</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>基本費率</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>—</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"設定\" scope=\"row\"><span class=\"card-cell-label\">設定</span>請求長度級距 1</th><td data-cell-label=\"費率表\"><span class=\"card-cell-label\">費率表</span>—</td><td data-cell-label=\"上下文 Token 數大於\"><span class=\"card-cell-label\">上下文 Token 數大於</span>0</td><td data-cell-label=\"上下文 Token 數小於或等於\"><span class=\"card-cell-label\">上下文 Token 數小於或等於</span>無上限</td><td data-cell-label=\"費用\"><span class=\"card-cell-label\">費用</span><div><span>輸入 · 輸入 Token</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸出 · 輸出 Token</span> <b>$0.0025</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 讀取快取</span> <b>$0.00004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>輸入 · 寫入快取，1 小時</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。<a href=\"/docs/zh-hant-tw/billing/reserve/\">預留金額與結算的運作方式 →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">請求範例</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"程式碼版本\"><button class=\"cg-tab\" id=\"model-code-1652-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1652-panel-0\" aria-selected=\"true\" tabindex=\"0\">完整的最小 JSON 請求主體</button><button class=\"cg-tab\" id=\"model-code-1652-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1652-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · 使用您的 UTF-8 文件</button><button class=\"cg-tab\" id=\"model-code-1652-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1652-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · 儲存完整結果</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"複製程式碼\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1652-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1652-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;openai/gpt-5.4-nano&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1652-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1652-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;openai/gpt-5.4-nano&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1652-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1652-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;openai/gpt-5.4-nano&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">接收並儲存結果</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON 或 SSE</p><div class=\"card-result-process\" data-all-results><h5>保留所有已完成的結果</h5><p class=\"note-s\">請保留所有完整傳回的回應、檔案與內容區塊。</p><p class=\"note-s\">保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>需要檢查原始回應時</h5><p class=\"note-s\">保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。</p></div><details class=\"card-about\" data-output-fields><summary>回應欄位</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>欄位</th><th>類型</th></tr></thead><tbody><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>string|null</td></tr><tr><th data-cell-label=\"欄位\" scope=\"row\"><span class=\"card-cell-label\">欄位</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"類型\" data-field-type><span class=\"card-cell-label\">類型</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>錯誤與後續步驟</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>回應</th><th>條件</th><th>下一步</th></tr></thead><tbody><tr><th data-cell-label=\"回應\" scope=\"row\"><span class=\"card-cell-label\">回應</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"條件\"><span class=\"card-cell-label\">條件</span>必要欄位、素材表示方式或參數值無效</td><td data-cell-label=\"下一步\"><span class=\"card-cell-label\">下一步</span>提出新的建立請求前，先修正指定欄位。</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">別名</h3><h4>模型別名</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=messages\"><code>gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=messages\"><code>openai/gpt-5.4-nano</code></a></span></p><h4>方法路徑別名</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>相關呼叫用 ID</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=openai%2Fgpt-5.4-nano&amp;fmt=messages\"><code>openai/gpt-5.4-nano</code></a>, <a href=\"#m=openai%2Fgpt-5.4-nano&amp;route=Ultra&amp;caller=gpt-5.4-nano&amp;fmt=messages\"><code>gpt-5.4-nano</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-5.4-nano",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|openai%2Fgpt-5.4-nano",
      "ordinal": 3,
      "rawMethod": {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "openai/gpt-5.4-nano",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content 字串",
                "required_material": "UTF-8 文字"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "openai/gpt-5.4-nano"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "openai/gpt-5.4-nano",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。"
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "請求長度級距 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"openai/gpt-5.4-nano\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'openai/gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'openai/gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "快速模式",
            "value": "標準費率",
            "when": "選取快速模式時"
          },
          {
            "label": "flex 模式",
            "value": "標準費率",
            "when": "選取 flex 模式時"
          },
          {
            "label": "最高推理強度",
            "value": "標準費率",
            "when": "最高推理強度採用 default 調整值時"
          },
          {
            "label": "推理強度 · high",
            "value": "標準費率",
            "when": "推理強度設為 high 時"
          },
          {
            "label": "推理強度 · low",
            "value": "標準費率",
            "when": "推理強度設為 low 時"
          },
          {
            "label": "推理強度 · medium",
            "value": "標準費率",
            "when": "推理強度設為 medium 時"
          },
          {
            "label": "推理強度 · none",
            "value": "標準費率",
            "when": "推理強度設為 none 時"
          },
          {
            "label": "推理強度 · xhigh",
            "value": "標準費率",
            "when": "推理強度設為 xhigh 時"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "openai/gpt-5.4-nano",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d2b0a9f934a43748090bda353bd0e7fa07aa151fb31cfd59dae66c0d7dfe6ece",
    "input_html_sha256": "59d37c2ad5a46b13f8e5e5362a113d6dcd240ae0089867eaa6c8c0779932c2ae",
    "private_audit_sha256": "1b8edf1015f852e5f7c2acb6e12a930d111a649cfad3c2ade1d8058ba61763b7",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/zh-hant-tw/openai-gpt-5-4-nano/",
    "description": "用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。",
    "locale": "zh-hant-tw",
    "md_url": "https://ailoot.ai/models/zh-hant-tw/openai-gpt-5-4-nano/index.md",
    "title": "OpenAI: GPT-5.4 Nano — Ailoot",
    "url": "https://ailoot.ai/models/zh-hant-tw/openai-gpt-5-4-nano/"
  },
  "practicalHtml": "<h3>實用任務</h3><p>英文技術範例</p><pre><code>Extract facts from a delivery request\n\nExtract only the required facts from this message: &#x27;Order K92 arrived with one cracked cup out of six. Please replace that cup; weekday delivery is best. I have not sent a photograph yet.&#x27; Return order_reference, affected_quantity, total_quantity, requested_action and missing_evidence. Keep quantities numeric and do not infer a delivery address or replacement approval.</code></pre><h4>預期結果</h4><pre><code>A compact extraction record containing the five requested fields, with no unrelated summary.</code></pre><h4>檢查結果</h4><pre><code>The record separates one affected cup from six total cups and marks the photograph as not yet supplied.</code></pre>",
  "practicalText": "實用任務 英文技術範例 Extract facts from a delivery request Extract only the required facts from this message: 'Order K92 arrived with one cracked cup out of six. Please replace that cup; weekday delivery is best. I have not sent a photograph yet.' Return order_reference, affected_quantity, total_quantity, requested_action and missing_evidence. Keep quantities numeric and do not infer a delivery address or replacement approval. 預期結果 A compact extraction record containing the five requested fields, with no unrelated summary. 檢查結果 The record separates one affected cup from six total cups and marks the photograph as not yet supplied.",
  "rawModel": {
    "about": "GPT-5.4 nano 是 OpenAI 用於簡單且大量任務的精巧 GPT-5.4 級模型。開發商強調分類、資料擷取、排序，以及子代理輔助工作。它接受文字與圖片並輸出文字。這讓 nano 在較大的流程中具有聚焦角色：完成定義清楚的操作，並回傳下一步所需的資訊。\n\n分類時，提供允許的類別、區分它們的規則，以及預期結果格式。示例任務是指出要求的主題，以及支持該類別的事實。範例能釐清困難界線時，將其納入，並說明不符合可用類別的要求應如何呈現。有用的結果是類別，以及連結到所提供資料的簡短理由。\n\n擷取時，指定欄位與其定義，不要要求列出每個可能有趣的細節。可以提供書面資料或頁面圖片，並指出所需的值。保留會影響含義的名稱與單位，並區分缺少的欄位與從周圍文字推斷的值。排序時，提供候選項與標準，再要求排序清單，為每個位置附上相關證據。\n\nOpenAI 的 GPT-5.4 nano 規格列出 400,000 token 的上下文視窗、最多 272,000 token 的輸入，以及最多 128,000 token 的輸出；知識截止日為 2025 年 8 月 31 日。它支援 none、low、medium、high 與 xhigh 推理強度，預設為 none。所選強度與要求的回答長度應符合任務。使用推理時，除了可見結果，也為分析保留空間。\n\n開發商記載了 Responses、Chat Completions 與 Batch 介面，以及串流、Structured Outputs、函式呼叫、網頁與檔案搜尋、檔案輸入、圖片輸入與提示快取。工具組包含圖片生成、程式碼執行、託管的 shell 與 patch 操作、技能與 MCP 連線。應用程式提供自己的操作並回傳實際結果。結構化回應描述輸出形式；函式要求則描述工具要執行的動作。\n\n多階段工作流程應給 nano 有範圍的輔助任務與清楚的完成標準。例如，從數則訊息擷取必要事實，再將這些事實交給下一階段，以做出更廣泛的決策。將回傳欄位與原始輸入核對，並在類別界線不清楚時調整規則。當目的與來源證據保持明確時，簡潔的類別、一組值、排序清單，或建議工具引數，都可成為有用的最終成果。",
    "alias_of": null,
    "aliases": [
      "gpt-5.4-nano"
    ],
    "author": "OpenAI",
    "available": null,
    "canonical_model": "openai/gpt-5.4-nano",
    "capabilities": {
      "context_length": 400000,
      "manufacturer_input": [
        "file",
        "image",
        "text"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "完整的設定價格資訊請見詳細資料。"
      },
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "完整的設定價格資訊請見詳細資料。"
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "openai/gpt-5.4-nano",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 文字"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "文字對話"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "將確切模型 ID 與 messages 一併送出。",
            "上下文長度不是輸出上限。",
            "文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。"
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "文字對話；stream 是布林值，預設為 false。",
            "file_material": "實際 UTF-8 文件以原文文字插入；不推定檔案 ID",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "具有 role/content 結構的訊息陣列",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"gpt-5.4-nano\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"gpt-5.4-nano\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 2.5,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Reasoning effort · high",
            "value": "Standard rate",
            "when": "When reasoning effort is high"
          },
          {
            "label": "Reasoning effort · low",
            "value": "Standard rate",
            "when": "When reasoning effort is low"
          },
          {
            "label": "Reasoning effort · medium",
            "value": "Standard rate",
            "when": "When reasoning effort is medium"
          },
          {
            "label": "Reasoning effort · none",
            "value": "Standard rate",
            "when": "When reasoning effort is none"
          },
          {
            "label": "Reasoning effort · xhigh",
            "value": "Standard rate",
            "when": "When reasoning effort is xhigh"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gpt-5.4-nano",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content 字串",
                "required_material": "UTF-8 文字"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "gpt-5.4-nano"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "gpt-5.4-nano",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。"
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"gpt-5.4-nano\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Reasoning effort · high",
            "value": "Standard rate",
            "when": "When reasoning effort is high"
          },
          {
            "label": "Reasoning effort · low",
            "value": "Standard rate",
            "when": "When reasoning effort is low"
          },
          {
            "label": "Reasoning effort · medium",
            "value": "Standard rate",
            "when": "When reasoning effort is medium"
          },
          {
            "label": "Reasoning effort · none",
            "value": "Standard rate",
            "when": "When reasoning effort is none"
          },
          {
            "label": "Reasoning effort · xhigh",
            "value": "Standard rate",
            "when": "When reasoning effort is xhigh"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 文字"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "這些角色由 原始碼中的相容型別明確表示；確切角色集合仍依模型而定。",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool；使用實際回傳的 ID"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "此模型使用推理內容時，將實際回傳的推理內容帶回後續請求"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "已提供函式工具"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "此 Ultra 文字路由拒絕 provider.options",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "實際提示詞快取位置拒絕 1h",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "將確切模型 ID 與 messages 一併送出。",
            "上下文長度不是輸出上限。",
            "文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。"
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "依模型而定；使用者函式工具與託管工具不同",
            "file_material": "實際 UTF-8 文件以原文文字插入；不推定檔案 ID",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "具有 role/content 結構的訊息陣列",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "請求長度級距 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"openai/gpt-5.4-nano\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='openai/gpt-5.4-nano',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='openai/gpt-5.4-nano',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "快速模式",
            "value": "標準費率",
            "when": "選取快速模式時"
          },
          {
            "label": "flex 模式",
            "value": "標準費率",
            "when": "選取 flex 模式時"
          },
          {
            "label": "最高推理強度",
            "value": "標準費率",
            "when": "最高推理強度採用 default 調整值時"
          },
          {
            "label": "推理強度 · high",
            "value": "標準費率",
            "when": "推理強度設為 high 時"
          },
          {
            "label": "推理強度 · low",
            "value": "標準費率",
            "when": "推理強度設為 low 時"
          },
          {
            "label": "推理強度 · medium",
            "value": "標準費率",
            "when": "推理強度設為 medium 時"
          },
          {
            "label": "推理強度 · none",
            "value": "標準費率",
            "when": "推理強度設為 none 時"
          },
          {
            "label": "推理強度 · xhigh",
            "value": "標準費率",
            "when": "推理強度設為 xhigh 時"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0.04,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "必要欄位、素材表示方式或參數值無效",
                "http_status": 400,
                "recovery": "提出新的建立請求前，先修正指定欄位。",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "openai/gpt-5.4-nano",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。"
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content 字串",
                "required_material": "UTF-8 文字"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON 或 SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "openai/gpt-5.4-nano"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "openai/gpt-5.4-nano"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "openai/gpt-5.4-nano",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。"
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "詞元基本費率",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "請求長度級距 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"openai/gpt-5.4-nano\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'openai/gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'openai/gpt-5.4-nano', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 2.5,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "快速模式",
            "value": "標準費率",
            "when": "選取快速模式時"
          },
          {
            "label": "flex 模式",
            "value": "標準費率",
            "when": "選取 flex 模式時"
          },
          {
            "label": "最高推理強度",
            "value": "標準費率",
            "when": "最高推理強度採用 default 調整值時"
          },
          {
            "label": "推理強度 · high",
            "value": "標準費率",
            "when": "推理強度設為 high 時"
          },
          {
            "label": "推理強度 · low",
            "value": "標準費率",
            "when": "推理強度設為 low 時"
          },
          {
            "label": "推理強度 · medium",
            "value": "標準費率",
            "when": "推理強度設為 medium 時"
          },
          {
            "label": "推理強度 · none",
            "value": "標準費率",
            "when": "推理強度設為 none 時"
          },
          {
            "label": "推理強度 · xhigh",
            "value": "標準費率",
            "when": "推理強度設為 xhigh 時"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0025000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000025",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.00004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.00000004",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "reasoning_effort_multipliers": {
          "high": 1,
          "low": 1,
          "medium": 1,
          "none": 1,
          "xhigh": 1
        },
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": 0.04,
            "cache_read_multiplier": null,
            "cache_write": 0,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.4,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 2.5,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "openai/gpt-5.4-nano",
        "request_model_id": "gpt-5.4-nano",
        "route_label": "Ultra"
      },
      {
        "canonical_model_id": "openai/gpt-5.4-nano",
        "request_model_id": "openai/gpt-5.4-nano",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT-5.4 Nano",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 2.5,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 2.5,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 0
        },
        "label": "OpenAI Chat · Request-length tier 1",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 0
        },
        "label": "Anthropic Messages · Request-length tier 1",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0025000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000025",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.00004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.00000004",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "openai/gpt-5.4-nano",
    "short": "用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        },
        {
          "contract_json_pointer": "/methods/2/rawMethod/contract",
          "html_json_pointer": "/methods/2/html",
          "method_ordinal": 2
        },
        {
          "contract_json_pointer": "/methods/3/rawMethod/contract",
          "html_json_pointer": "/methods/3/html",
          "method_ordinal": 3
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod",
        "/methods/2/rawMethod",
        "/methods/3/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "用於分類、資料擷取、排序與較簡單代理輔助任務的精巧 GPT-5.4 模型。它接受文字與圖片並回傳文字；開發商記載的功能組包含 Structured Outputs 與函式呼叫。",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d6230c82069e68b8b049296581dfcc7e790cb371f85301c61c239b8d08a316c2",
    "renderer_sha256": "13a3fc1b22d07359278e2249d630bfc9bb9e6416c71ba53def933fb5a903660b"
  },
  "sourceRevision": "05e9fdeb1e523f516b3cae3ff50584d9d359abeef709c569816a3730da3cb34c"
}
