Source: https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/
Canonical: https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/
Language: zh-hant-tw

# Inception: Mercury 2

[Markdown](https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/index.md) · [JSON](https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/facts.json)

## [Inception: Mercury 2](https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/)

Mercury 2 是 Inception 以擴散為基礎的推理文字模型，適合互動式程式設計、搜尋與代理流程。平行細化、128K 上下文、可調推理、原生工具使用，以及符合結構描述的 JSON，可協助從文字產生聚焦答案與結構化成果。

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/inception-mercury-2/#method-1)

關於模型

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

Mercury 2 是 Inception 以擴散文字生成為核心建構的推理語言模型。它不僅從左至右依序解碼，而是平行細化多個 token，逐步形成結果。開發商將此模型版本用於程式設計、代理、檢索與擷取中的重複互動步驟。它接受書面指示與文字上下文，產生文字答案、程式碼、結構化資料或建議工具操作。

#### 開發商的模型版本規格

確切推出說明列出 128K 上下文、可調推理、原生工具使用，以及符合結構描述的 JSON。這些功能屬於 Mercury 2 文件所載的模型版本，與後來的 Mercury 2.5 上下文，以及 Voice、Router、Edit 專用模型分開。應明確設定最終答案形式，不要從系列名稱推斷語音或編輯輸出。

簡單擷取應提供欄位定義與來源段落。推理任務應說明完整條件，以及必須成立的限制。實用簡報可以是：「比較此實作與要求，找出第一個不符之處，並傳回聚焦修正及支持它的解說。」即使模型進行中間分析，最終成果仍應連結輸入。

#### 程式設計與編修輔助

開發商將自動完成、下一步編修建議、重構與互動式程式碼代理列為相關工作負載。提供周邊實作，並指出應修改的內容。說明預期行為，保留修訂必須維持的公開名稱或介面。如此可先檢查建議編修是否適合，再套用到實際專案。

工具引導的開發任務中，模型從提供的操作中選擇，應用程式負責執行。將真實錯誤、程式碼摘錄或驗證觀察回傳至下一輪。生成實作與成功執行結果是不同成果；任務應要求能確立完成的觀察。

#### 搜尋與代理循環

Mercury 2 開發商的使用案例包括多跳檢索、重新排序與摘要。為每一步指定精確用途：待搜尋問題、相關來源的準則，以及最終答案需要的事實。流程中持續保留來源識別碼，讓摘要可追溯至資料。

結構化輸出應有明確欄位、清楚型別與缺漏資訊慣例。結構描述對齊關係到結果的表示方式；其值仍應與實際文件或工具觀察比較。延續任務時，保留有用發現與待解問題，不要累積無關歷史。

#### 互動語言任務與限制

Mercury 2 可為語音或其他互動應用提供文字生成步驟。文件所述角色是產生周邊元件使用的字詞或決策；音訊與播放由那些元件處理。清理逐字稿時，提供逐字稿，並指出編修後必須保留的措辭、名稱與意義。

128K 上下文包含來源資料、對話與生成內容。應為最終回覆預留空間，在修訂中維持問題可見，並避免把上下文容量當成獨立輸出額度。生成事實、程式碼與擷取欄位都應與原始輸入核對。實用成果是能推進指定任務的聚焦答案或結構化結果，且可用實際提供的證據檢查。

實用任務

### 實用任務

英文技術範例

```
Clean up a dictated task note

Clean up this supplied transcript for a task tracker: "Um, ask Rina, no, ask Sam to review invoice INV-209 before Thursday. Keep Rina copied. It is 480 euros, not 840." Remove fillers and false starts while preserving the corrected owner, copied person, invoice ID, deadline and amount. Return one clear task sentence.
```

#### 預期結果

```
One cleaned task sentence retaining the final owner, copy instruction, invoice ID, deadline and corrected amount.
```

#### 檢查結果

```
Check that Sam owns review, Rina is copied and the amount is 480 euros.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `inception/mercury-2`

[`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=chat)

Inception /`inception/mercury-2`

### 入門

Mercury 2 是 Inception 以擴散為基礎的推理文字模型，適合互動式程式設計、搜尋與代理流程。平行細化、128K 上下文、可調推理、原生工具使用，以及符合結構描述的 JSON，可協助從文字產生聚焦答案與結構化成果。

接受的輸入

文字

結果

文字

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

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

輸入

`text`

輸出

`text`

輸出格式

json 或 SSE

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 inception/mercury-2 | 預設值— |
| 欄位`messages` | 類型`message[]` | 要求必填 | 值與限制 項目數下限: 1 | 預設值— |
| 欄位`messages[].role` | 類型`string` | 要求必填 | 值與限制 範例：system, user, assistant, tool, function 條件: 這些角色由 原始碼中的相容型別明確表示；確切角色集合仍依模型而定。 依模型而定 | 預設值— |
| 欄位`messages[].content` | 類型`string\|content_part[]\|null` | 要求選填 | 值與限制 | 預設值— |
| 欄位`messages[].tool_calls` | 類型`tool_call[]` | 要求選填 | 值與限制 | 預設值— |
| 欄位`messages[].tool_call_id` | 類型`string` | 要求選填 | 值與限制 適用條件: role=tool；使用實際回傳的 ID | 預設值— |
| 欄位`messages[].name` | 類型`string` | 要求選填 | 值與限制 | 預設值— |
| 欄位`messages[].reasoning_content` | 類型`string` | 要求選填 | 值與限制 適用條件: 此模型使用推理內容時，將實際回傳的推理內容帶回後續請求 | 預設值— |
| 欄位`messages[].reasoning_details` | 類型`object\|array` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`max_tokens` | 類型`integer` | 要求選填 | 值與限制 最小值: 1 依模型而定 | 預設值— |
| 欄位`max_completion_tokens` | 類型`integer` | 要求選填 | 值與限制 最小值: 1 依模型而定 | 預設值— |
| 欄位`stream` | 類型`boolean` | 要求選填 | 值與限制 | 預設值false |
| 欄位`stream_options.include_usage` | 類型`boolean` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`temperature` | 類型`number` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`top_p` | 類型`number` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`stop` | 類型`string\|string[]` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`tools` | 類型`function_tool[]` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`tools[].type` | 類型`string` | 要求選填 | 值與限制 function 依模型而定 | 預設值— |
| 欄位`tools[].function.name` | 類型`string` | 要求必填 | 值與限制 適用條件: 已提供函式工具 | 預設值— |
| 欄位`tools[].function.description` | 類型`string` | 要求選填 | 值與限制 | 預設值— |
| 欄位`tools[].function.parameters` | 類型`JSON_schema` | 要求選填 | 值與限制 | 預設值— |
| 欄位`tool_choice` | 類型`string\|object` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`parallel_tool_calls` | 類型`boolean` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`response_format` | 類型`object` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`reasoning_effort` | 類型`string` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`reasoning` | 類型`object` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`service_tier` | 類型`string` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`instructions` | 類型`string` | 要求選填 | 值與限制 相容性欄位 | 預設值— |
| 欄位`functions` | 類型`function[]` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`function_call` | 類型`string\|object` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`prompt_cache_options` | 類型`object` | 要求選填 | 值與限制 依模型而定 | 預設值— |
| 欄位`modalities` | 類型`string[]` | 要求選填 | 值與限制 text | 預設值— |
| 欄位`provider` | 類型`object` | 要求選填 | 值與限制 條件: 此 Ultra 文字路由拒絕 provider.options | 預設值— |
| 欄位`cache_control.ttl` | 類型`string` | 要求選填 | 值與限制 條件: 實際提示詞快取位置拒絕 1h | 預設值— |

輸入素材組合

**文字** · UTF8 文字

`messages[].content`

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格model, messages |
| 參數`material_types` | 規格text |
| 參數`messages` | 規格具有 role/content 結構的訊息陣列 |
| 參數`file_material` | 規格實際 UTF-8 文件以原文文字插入；不推定檔案 ID |
| 參數`optional_controls` | 規格stream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| 參數`control_scope` | 規格依模型而定；使用者函式工具與託管工具不同 |
| 參數`output_modalities` | 規格text |
| 參數`hosted_operations` | 規格false |
| 參數`multimodal_input_binding` | 規格null |

生命週期： `synchronous_or_streamed`

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

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

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

### 方案

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

快速模式

標準費率 選取快速模式時

flex 模式

標準費率 選取 flex 模式時

最高推理強度

標準費率 最高推理強度採用 default 調整值時

推理強度 · high

標準費率 推理強度設為 high 時

推理強度 · low

標準費率 推理強度設為 low 時

推理強度 · medium

標準費率 推理強度設為 medium 時

推理強度 · none

標準費率 推理強度設為 none 時

#### Ailoot 費率

#### 各設定的價格

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

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

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

### 請求範例

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython 串流

```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": "inception/mercury-2", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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='inception/mercury-2',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

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)
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))

with client.chat.completions.stream(model='inception/mercury-2',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### 接收並儲存結果

#### 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** [`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=chat)

#### 方法路徑別名

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

#### 相關呼叫用 ID

[`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `inception/mercury-2`

[`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=messages)

Inception /`inception/mercury-2`

### 入門

Mercury 2 是 Inception 以擴散為基礎的推理文字模型，適合互動式程式設計、搜尋與代理流程。平行細化、128K 上下文、可調推理、原生工具使用，以及符合結構描述的 JSON，可協助從文字產生聚焦答案與結構化成果。

接受的輸入

文字

結果

json · sse

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

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

輸入

`text`

輸出

`json`, `sse`

輸出格式

JSON 或 SSE

| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
| --- | --- | --- | --- | --- |
| 欄位`model` | 類型`string` | 要求必填 | 值與限制 inception/mercury-2 | 預設值— |
| 欄位`messages` | 類型`message[]` | 要求必填 | 值與限制 | 預設值— |
| 欄位`messages[].role` | 類型`string` | 要求必填 | 值與限制 user, assistant | 預設值— |
| 欄位`messages[].content` | 類型`string` | 要求必填 | 值與限制 | 預設值— |
| 欄位`max_tokens` | 類型`integer` | 要求必填 | 值與限制 | 預設值— |
| 欄位`stream` | 類型`boolean` | 要求選填 | 值與限制 | 預設值false |

輸入素材組合

**文字** · UTF-8 文字

`messages[].content 字串`

方法參數與生命週期

| 參數 | 規格 |
| --- | --- |
| 參數`content_type` | 規格application/json |
| 參數`required` | 規格model, messages, max\_tokens |
| 參數`optional_controls` | 規格stream |
| 參數`material_types` | 規格text |
| 參數`text_file_material` | 規格讀取實際 UTF-8 文件，將文字放入指定的 input 或訊息內容字串。 |

生命週期： `synchronous_or_streamed`

### 方案

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

快速模式

標準費率 選取快速模式時

flex 模式

標準費率 選取 flex 模式時

最高推理強度

標準費率 最高推理強度採用 default 調整值時

推理強度 · high

標準費率 推理強度設為 high 時

推理強度 · low

標準費率 推理強度設為 low 時

推理強度 · medium

標準費率 推理強度設為 medium 時

推理強度 · none

標準費率 推理強度設為 none 時

#### Ailoot 費率

#### 各設定的價格

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

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

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

### 請求範例

#### Ailoot Ultra · Anthropic Messages

完整的最小 JSON 請求主體curl · 使用您的 UTF-8 文件Python · 儲存完整結果

```json
{
  "model": "inception/mercury-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'inception/mercury-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'inception/mercury-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### 接收並儲存結果

#### Ailoot Ultra · Anthropic Messages

JSON 或 SSE

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

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

保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量；第一個文字區塊不是完整輸出。

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

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

回應欄位

| 欄位 | 類型 |
| --- | --- |
| 欄位`id` | 類型string |
| 欄位`model` | 類型string |
| 欄位`content[]` | 類型text\|thinking\|tool\_use\|other content block |
| 欄位`stop_reason` | 類型string\|null |
| 欄位`usage` | 類型object |

錯誤與後續步驟

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

### 別名

#### 模型別名

**Ailoot Ultra** [`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=messages)

#### 方法路徑別名

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

#### 相關呼叫用 ID

[`inception/mercury-2`](https://ailoot.ai/models/zh-hant-tw/#m=inception%2Fmercury-2&route=Ultra&caller=inception%2Fmercury-2&fmt=messages)

FAQ · Inception: Mercury 2

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

`POST /v1/chat/completions` · `inception/mercury-2`: `text` → `text` `POST /v1/messages` · `inception/mercury-2`: `text` → `json`, `sse`

請求使用哪些欄位？

`POST /v1/chat/completions` · `inception/mercury-2`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `inception/mercury-2`: `model`, `messages`, `max_tokens`, `stream`

適用哪些限制？

`POST /v1/chat/completions` · `inception/mercury-2`: `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功能。
