Source: https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/
Canonical: https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/
Language: zh-hant-tw

# Anthropic: Claude Sonnet 4

[Markdown](https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/index.md) · [JSON](https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/facts.json)

## [Anthropic: Claude Sonnet 4](https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/)

Claude Sonnet 4 是 Anthropic 的程式設計與推理模型，支援文字、圖片與檔案輸入。公開設定檔包含工具與推理控制、200,000 詞元上下文視窗，以及最多 64,000 個生成詞元。

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `claude-sonnet-4-20250514-thinking`](https://ailoot.ai/models/zh-hant-tw/claude-sonnet-4-20250514-thinking/#method-0)

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項，依所選方法列於下方。

Claude Sonnet 4 是 Anthropic 偏重程式設計與推理任務的模型。公開的託管設定檔接收文字、圖片及檔案，回傳文字。它列出推理與函式工具控制，具有 200,000 詞元上下文視窗，以及最多 64,000 個生成詞元。

#### 程式碼與文件要有明確結果

軟體工作請提供相關來源、觀察行為與所需修正。若失敗範例及實際錯誤輸出會決定診斷，請保留它們。要求聚焦修改，以及評估效果所需的檢查。

文件分析請標記來源，指出要套用的標準或問題。比較可要求每項標準列出一個發現；擷取則定義回傳值及缺少資訊的呈現方式。保留來源標籤，讓精簡答案仍連結支持它的資料。

#### 有目的地使用視覺證據

指出重要圖片、頁面或介面狀態，以及要檢查的細節。截圖可支持詢問可見內容或行為的問題；文件圖片可為書面資料加入版面上下文。檢查任何擷取措辭或解讀時，請保持相關來源可用。

#### 推理與應用程式工具

設定檔列有推理與函式工具。請定義周邊應用程式可用操作，保留它們回傳的觀察。提議動作與實際結果在流程中各有不同作用；觀察為下一步提供證據。

答案將轉成資料時，請說明欄位及意義，依來源驗證實際回傳紀錄。提供人閱讀的結果，則要求結論與重要支持證據。請在工作上下文中為答案留空間，保留已完成決策供後續對話使用。

實用的 Sonnet 4 成品會將分析或修改提案與來源參照、驗證留在一起，讓下一步能從可檢查的結果繼續。

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `claude-sonnet-4-20250514-thinking`

[`claude-sonnet-4-20250514-thinking`](https://ailoot.ai/models/zh-hant-tw/#m=claude-sonnet-4-20250514-thinking&route=Ultra&caller=claude-sonnet-4-20250514-thinking&fmt=chat)

Anthropic /`claude-sonnet-4-20250514-thinking`

### 入門

Claude Sonnet 4 是 Anthropic 的程式設計與推理模型，支援文字、圖片與檔案輸入。公開設定檔包含工具與推理控制、200,000 詞元上下文視窗，以及最多 64,000 個生成詞元。

接受的輸入

文字

結果

文字

### Ailoot 可用 · 輸入與方法

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

輸入

`text`

輸出

`text`

輸出格式

json 或 SSE

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 claude-sonnet-4-20250514-thinking | 預設值— |
| 欄位`messages` | 類型`message[]` | 要求必填 | 值與限制 項目數下限: 1 | 預設值— |
| 欄位`messages[].role` | 類型`string` | 要求必填 | 值與限制 依模型而定 | 預設值— |
| 欄位`messages[].content` | 類型`string` | 要求選填 | 值與限制 適用條件: 文字對話 | 預設值— |
| 欄位`stream` | 類型`boolean` | 要求選填 | 值與限制 | 預設值false |

輸入素材組合

**文字** · UTF8 文字

`messages[].content`

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格model, messages |
| 參數`material_types` | 規格text |
| 參數`messages` | 規格具有 role/content 結構的訊息陣列 |
| 參數`file_material` | 規格實際 UTF-8 文件以原文文字插入；不推定檔案 ID |
| 參數`optional_controls` | 規格stream |
| 參數`control_scope` | 規格文字對話；stream 是布林值，預設為 false。 |
| 參數`output_modalities` | 規格text |
| 參數`hosted_operations` | 規格false |
| 參數`multimodal_input_binding` | 規格null |

方法別名： `/chat/completions`

生命週期： `synchronous_or_streamed`

將確切模型 ID 與 messages 一併送出。

上下文長度不是輸出上限。

文字檔案可提供原文文字；圖片／音訊／檔案物件輸入需要精確綁定。

### 方案

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式

未指定 選取快速模式時

flex 模式

未指定 選取 flex 模式時

最高推理強度

未指定 最高推理強度採用 default 調整值時

#### Ailoot 費率

#### 各設定的價格

| 設定 | 費率表 | 費用 |
| --- | --- | --- |
| 設定詞元基本費率 | 費率表基本費率 | 費用 輸入 · 輸入 Token **$0.006** / 1K Token 輸出 · 輸出 Token **$0.03** / 1K Token 輸入 · 讀取快取 **$0.0006** / 1K Token 輸入 · 寫入快取 **$0.0075** / 1K Token 輸入 · 寫入快取，1 小時 **—** / 1K Token |

Ailoot 會在請求前預留估算金額。取得結果後，依實測用量結算最終費用。串流結算採用最終用量紀錄。[預留金額與結算的運作方式 →](https://ailoot.ai/docs/zh-hant-tw/billing/reserve/)

### 請求範例

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"claude-sonnet-4-20250514-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="claude-sonnet-4-20250514-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### 接收並儲存結果

#### Ailoot Ultra · OpenAI Chat

json 或 SSE

##### 保留所有已完成的結果

請保留所有完整傳回的回應、檔案與內容區塊。

保留每個候選項及其內容／工具呼叫／推理。SSE 中依候選項／工具索引組合增量，保留最終完成原因與用量。

##### 需要檢查原始回應時

保留請求／回應 ID 與標頭。未提供通用的文字工作擷取 URL。

回應欄位

| 欄位 | 類型 |
| --- | --- |
| 欄位`choices[].index` | 類型integer |
| 欄位`choices[].message.content` | 類型string\|null |
| 欄位`choices[].message.tool_calls` | 類型tool\_call\[\] |
| 欄位`choices[].message.reasoning_content` | 類型string |
| 欄位`choices[].message.reasoning_details` | 類型object\|array |
| 欄位`choices[].finish_reason` | 類型string\|null |
| 欄位`usage` | 類型object |

錯誤與後續步驟

| 回應 | 條件 | 下一步 |
| --- | --- | --- |
| 回應400 · `invalid_request_error` | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前，先修正指定欄位。 |

### 別名

#### 模型別名

**Ailoot Ultra** [`claude-sonnet-4-20250514-thinking`](https://ailoot.ai/models/zh-hant-tw/#m=claude-sonnet-4-20250514-thinking&route=Ultra&caller=claude-sonnet-4-20250514-thinking&fmt=chat)

#### 方法路徑別名

`/chat/completions`

#### 相關呼叫用 ID

[`claude-sonnet-4-20250514-thinking`](https://ailoot.ai/models/zh-hant-tw/#m=claude-sonnet-4-20250514-thinking&route=Ultra&caller=claude-sonnet-4-20250514-thinking&fmt=chat)

FAQ · Anthropic: Claude Sonnet 4

可以使用哪些輸入與結果？

`POST /v1/chat/completions` · `claude-sonnet-4-20250514-thinking`: `text` → `text`

請求使用哪些欄位？

`POST /v1/chat/completions` · `claude-sonnet-4-20250514-thinking`: `model`, `messages`, `stream`

適用哪些限制？

`POST /v1/chat/completions` · `claude-sonnet-4-20250514-thinking`: `messages.min_items`: `1`

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

## 公司及其專案組合

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

## 優惠購買 token。

訂閱優惠適合持續工作，折扣碼購買 token 最高可折 50%。

訂閱

為定期請求選擇優惠方案。

最高 50% 折扣碼

購買時輸入代碼，價格依活動重算。

歷史中的費用

每次請求保存模型、token 與金額。

[選擇訂閱](https://ailoot.ai/docs/zh-hant-tw/billing/subscriptions/) · [查看模型價格](https://ailoot.ai/models/zh-hant-tw/)

## 將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人；轉售請申請經銷授權。

商用應用程式

在付費功能加入文字、圖片、影片與聲音生成。

經銷授權

提供專案說明與存取方式，要求書面使用和轉售條件。

網站文件

串接前可閱讀正式服務條款、授權合約與資料處理政策。

[申請經銷授權](mailto:support@ailoot.ai) · [正式服務條款與授權合約](https://ailoot.ai/legal/offer?lang=zh-hant-tw)

## Ailoot · 公司及其專案組合





Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。





公司及其專案組合：數百萬客戶，每月銷售額達數十億。





Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
