Source: https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/
Canonical: https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/
Language: zh-hant-tw

# OpenAI: GPT-4o (batch)

[Markdown](https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/index.md) · [JSON](https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/facts.json)

## [OpenAI: GPT-4o (batch)](https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/)

GPT-4o 將文字與圖片理解結合寫作、程式設計、Structured Outputs 及應用程式工具。可用來撰寫有證據支持的回應、解讀視覺素材，或從大量來源資料中回傳定義好的欄位。

- [**Ailoot Ultra · 批次處理（Batch）** `POST /v1/batches` `openai/gpt-4o:batch`](https://ailoot.ai/models/zh-hant-tw/openai-gpt-4o-u003a-batch/#method-0)

關於模型

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

GPT-4o 是 OpenAI 用於文字與圖片理解、寫作及應用程式工作的多用途 GPT 模型。「o」代表「omni」，而這個有文件記載的模型接受文字與圖片，回傳包含 Structured Outputs 在內的文字。實際請求可以結合書面需求與照片、螢幕截圖或文件頁面，要求清楚解釋、編輯後的成品，或供下一個應用程式階段使用的定義欄位。

撰寫報告時，提供來源文件及報告應支持的決策。指出相關日期、單位與證據標籤，再要求比較，區分觀察、假設與缺少的資訊。視覺任務中，指出重要的物件、圖表或介面狀態，並提供周圍脈絡。修改程式碼時，提供受影響的程式碼、預期行為與必須維持的限制。這些是具體運用模型文字與圖片能力的方法，不必依賴提示詞暗示整個任務。

OpenAI 目前的 GPT-4o 設定檔列出 128,000 個 token 的上下文視窗、16,384 個 token 的最大輸出，以及 2023 年 10 月 1 日的知識截止日。開發商另外列出多個具日期的 GPT-4o 快照。對話、輸入素材與生成答案共用上下文額度，因此大量文件仍需要整理，並為最終成品留出空間。會變動或來自私人系統的事實，應直接提供，或透過明確設定的工具取得。

視覺指南接受 PNG、JPEG、WebP 及非動畫 GIF。GPT-4o 支援 low、high 與 auto 圖片詳細程度；high 與 auto 採分塊處理。解讀圖表時，放大小標籤、保持文字正向，並保留圖例或周圍圖解。文件記載的限制包括精確空間定位、粗略物件計數、部分非拉丁文字，以及全景或魚眼視角。模型也可能錯誤描述圖片，因此應保留來源，並要求指出支持解讀的具體觀察。在 OpenAI 有文件記載的視覺工作流程中，請求總酬載上限為 512 MB，每個請求最多可包含 1,500 張圖片；圖片與文字也必須容納於模型上下文。

OpenAI 的檔案輸入流程會同時向具視覺能力的模型提供 PDF 擷取文字與頁面圖片。非 PDF 辦公室文件提供擷取文字，而非其中的內嵌圖表；試算表則從每個工作表前最多 1,000 列補充資訊。每個檔案必須小於 50 MB，單次請求的合計上限為 50 MB。Chat Completions 支援 PDF 檔案部分；文件記載的 Responses 流程接受其他檔案格式。視覺忠實度重要時，選擇 PDF 表示形式，並在結果中保留可見的來源識別碼。

串流可在回應生成時逐步回傳。Structured Outputs 將完成的回應限制在 JSON Schema 支援的子集內，適合文件擷取或具有定義欄位的應用程式物件。JSON 模式只處理 JSON 有效性。定義預期型別、允許值及缺少證據時的處理方式，再將明確拒絕或未完成回應分開處理。Schema 無法證明值在事實上正確，因此所要求的欄位應能追溯至提供的素材。

開發商支援函式呼叫、網頁搜尋、檔案搜尋、程式碼執行與 MCP 連線。自訂函式需要有意義的說明與引數 schema；應用程式執行要求的動作，並將結果回傳供下一個模型步驟使用。GPT-4o 也能在已設定的 Responses 流程中指揮獨立的圖片生成工具。工具建立的圖片是獨立成品，而 GPT-4o 文件記載的原生回應是文字。代理的最終解釋應使用實際擷取或計算的觀察，不應將提議的工具呼叫視為已完成操作。

GPT-4o 可在稍作修改後重新生成大部分已知的文字或程式碼時使用 Predicted Outputs。提供現有內容與精確變更，再檢查回傳成品。這條純文字路徑無法與函式呼叫結合，且排除 logprobs、max\_completion\_tokens 及其他若干控制項。當答案依賴外部操作取得的新資訊時，工具請求是另一個選項。

OpenAI 有 GPT-4o 微調文件，其最佳化指南明確指定 2024 年 8 月 6 日快照，用於採用圖片範例的視覺微調。這種特定快照的客製化流程，與對模型別名的一般請求不同。日常寫作、分析或擷取可以從有用的需求說明與預期輸出範例開始。後續請求可以解決一項缺少的事實、修改欄位或精修同一個成品，同時保留任務的證據與限制。

**Ailoot Ultra · 批次處理（Batch）** `POST /v1/batches` `openai/gpt-4o:batch`

[`openai/gpt-4o:batch`](https://ailoot.ai/models/zh-hant-tw/#m=openai%2Fgpt-4o%3Abatch&route=Ultra&caller=openai%2Fgpt-4o%3Abatch&fmt=batches)

OpenAI /`openai/gpt-4o:batch`

### 入門

GPT-4o 將文字與圖片理解結合寫作、程式設計、Structured Outputs 及應用程式工具。可用來撰寫有證據支持的回應、解讀視覺素材，或從大量來源資料中回傳定義好的欄位。

接受的輸入

文字

結果

文字

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

**Ailoot Ultra · 批次處理（Batch）** `POST /v1/batches`

輸入

`text`

輸出

`text`

輸出格式

內嵌的 results\[\].response.body JSON

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`endpoint` | 類型`string` | 要求必填 | 值與限制 /v1/chat/completions | 預設值— |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 openai/gpt-4o:batch | 預設值— |
| 欄位`requests` | 類型`batch_item[]` | 要求必填 | 值與限制 項目數下限: 1 | 預設值— |
| 欄位`requests[].custom_id` | 類型`string` | 要求必填 | 值與限制 | 預設值— |
| 欄位`requests[].body.messages` | 類型`message[]` | 要求必填 | 值與限制 | 預設值— |
| 欄位`completion_window` | 類型`string` | 要求選填 | 值與限制 24h | 預設值— |
| 欄位`provider` | 類型`object\|null` | 要求選填 | 值與限制 | 預設值— |
| 欄位`requests[].body.model` | 類型`string` | 要求選填 | 值與限制 openai/gpt-4o:batch, openai/gpt-4o | 預設值— |
| 欄位`provider.only` | 類型`string[]` | 要求選填 | 值與限制 openai | 預設值— |
| 欄位`provider.allow_fallbacks` | 類型`boolean\|null` | 要求選填 | 值與限制 false, null | 預設值— |

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格endpoint, model, requests |
| 參數`material_types` | 規格text |
| 參數`representation` | 規格內嵌的 requests\[\]；每個項目皆含 custom\_id 與 body |
| 參數`request_endpoint_profile` | 規格/v1/chat/completions |
| 參數`file_material` | 規格呼叫端可在本機將實際的 UTF-8 JSONL 讀入 requests\[\]。此流程不使用上傳用途、input\_file\_id 或檔案參照。若缺少客戶素材或素材為空，應在 POST 前停止準備。 |
| 參數`serialization_order` | 規格endpoint, model, provider（如有提供）, completion\_window（如有提供）, requests 放在最後 |
| 參數`optional_controls` | 規格provider.only, provider.allow\_fallbacks, completion\_window |
| 參數`schema_scope` | 規格依文件規定的內嵌 Batch 封裝格式提供文字 Chat Completions 請求主體。 |

生命週期： `asynchronous`

`GET /v1/batches/{operation_id}` · 原始建立回應中實際回傳的 response.id；使用相同使用者／金鑰／群組

### 方案

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

快速模式

未指定 選取快速模式時

flex 模式

未指定 選取 flex 模式時

最高推理強度

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

顯式快取計價

未啟用 請求顯式快取時

#### Ailoot 費率

#### 各設定的價格

請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。

| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
| --- | --- | --- | --- | --- |
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token **$0.0025** / 1K Token 輸出 · 輸出 Token **$0.01** / 1K Token 輸入 · 讀取快取 **$0.00125** / 1K Token 輸入 · 寫入快取 **—** / 1K Token 輸入 · 寫入快取，1 小時 **—** / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token **$0.0025** / 1K Token 輸出 · 輸出 Token **$0.01** / 1K Token 輸入 · 讀取快取 **$0.00125** / 1K Token 輸入 · 寫入快取 **—** / 1K Token 輸入 · 寫入快取，1 小時 **—** / 1K Token |

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

### 請求範例

#### Ailoot Ultra · 批次處理（Batch）

curl · 保留的測試資料Python HTTP · 客戶實際的 JSONLPython · 儲存每個已完成的結果

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"openai/gpt-4o:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
```

```python
import json, os
from pathlib import Path
from urllib.request import Request, urlopen

def prepare_requests(customer_path):
    path = Path(customer_path)
    if not path.is_file(): raise ValueError("Customer JSONL file is missing")
    items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
    if not items: raise ValueError("Customer JSONL contains no requests")
    ids = set()
    for item in items:
        if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
        cid = item["custom_id"]
        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
        ids.add(cid)
        if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
        supplied_model = item["body"].get("model")
        if supplied_model is not None and supplied_model not in ['openai/gpt-4o:batch', 'openai/gpt-4o']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o:batch", "requests":items}

if __name__ == "__main__":
    material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
    if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
    body = prepare_requests(material)
    key = os.environ.get("AILOOT_API_KEY", "")
    if not key: raise SystemExit("Set AILOOT_API_KEY")
    request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
    with urlopen(request) as response:
        raw = response.read()
        Path("batch-create-response.json").write_bytes(raw)
        print(raw.decode("utf-8"))
```

```python
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
    raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
    raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
```

### 接收並儲存結果

#### Ailoot Ultra · 批次處理（Batch）

內嵌的 results\[\].response.body JSON

- `GET /v1/batches/{operation_id}`

##### 查看工作狀態

curl · 原始作業狀態

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
```

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

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

保留完整的原始狀態 JSON、每個結果／custom\_id，以及完整的回應或錯誤主體。將已完成的 results\[\] 儲存為 JSONL，不得篩除任何項目。

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

保留原始作業 ID。503 result\_pending\_check 回應帶有 X-Should-Retry:false；請勿重新提交狀態不明的原始批次。

回應欄位

| 欄位 | 類型 |
| --- | --- |
| 欄位`results[].custom_id` | 類型string |
| 欄位`results[].response.body.choices[].message.content` | 類型string\|null |
| 欄位`results[].error` | 類型object\|null |
| 欄位`usage` | 類型object\|null |
| 欄位`id` | 類型string |
| 欄位`model` | 類型string |
| 欄位`endpoint` | 類型string |
| 欄位`status` | 類型string |
| 欄位`request_counts` | 類型object |
| 欄位`results[].id` | 類型string |
| 欄位`results[].response.status_code` | 類型integer |
| 欄位`results[].response.request_id` | 類型string |

錯誤與後續步驟

| 回應 | 條件 | 下一步 |
| --- | --- | --- |
| 回應400 · `invalid_request_error` | 條件文件規定的內嵌封裝格式無效、索引鍵重複、項目識別有誤，或與已設定的模型能力衝突。 | 下一步再次提交前，請先修正指出的欄位。 |
| 回應401 · `authentication_error` | 條件API 金鑰無效。 | 下一步使用已獲授權的 Ailoot 金鑰。 |
| 回應403 · `permission_error` | 條件批次處理群組無法使用。 | 下一步檢查金鑰／群組的使用權限。 |
| 回應422 · `invalid_request_error` | 條件批次處理採用餘額計費；透過訂閱建立批次的請求會遭拒絕。 | 下一步使用已獲授權、以餘額計費的群組。 |
| 回應422 · `price_unavailable` | 條件無法為批次輸入估價。 | 下一步保留回應；使用文件規定的該 API 家族輸入格式。 |
| 回應402 · `billing_error` | 條件批次處理的預留額度無法取得。 | 下一步提交新請求前，請先解決請求受理問題。 |
| 回應503 · `price_unavailable` | 條件批次處理方法的價格／原生費率無法取得。 | 下一步保留回應；請勿替換價格。 |
| 回應503 · `api_error` | 條件指定的供應商路由無法使用。 | 下一步保留回應，以供修復路由。 |
| 回應503 · `result_pending_check` | 條件原始結果需要檢查；X-Should-Retry:false。 | 下一步保留原始 operation\_id/id 並讀取其狀態；請勿重複原始 POST。 |
| 回應404 · `not_found` | 條件查詢批次狀態所需的作業不存在，或屬於其他身分。 | 下一步使用完全相同的原始 id，以及相同的使用者／金鑰／群組。 |

### 別名

#### 模型別名

**Ailoot Ultra** [`openai/gpt-4o:batch`](https://ailoot.ai/models/zh-hant-tw/#m=openai%2Fgpt-4o%3Abatch&route=Ultra&caller=openai%2Fgpt-4o%3Abatch&fmt=batches)

#### 方法路徑別名

請使用上方列出的 API 方法路徑。

#### 相關呼叫用 ID

[`openai/gpt-4o:batch`](https://ailoot.ai/models/zh-hant-tw/#m=openai%2Fgpt-4o%3Abatch&route=Ultra&caller=openai%2Fgpt-4o%3Abatch&fmt=batches)

FAQ · OpenAI: GPT-4o (batch)

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

`POST /v1/batches` · `openai/gpt-4o:batch`: `text` → `text`

請求使用哪些欄位？

`POST /v1/batches` · `openai/gpt-4o:batch`: `endpoint`, `model`, `requests`, `completion_window`, `provider`

適用哪些限制？

`POST /v1/batches` · `openai/gpt-4o:batch`: `requests.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功能。
