OpenAI: GPT-6 Luna Pro
使用 Pro 推理的 GPT-6 Luna,適合在最終答案前需要額外分析的明確任務。基礎模型接收文字和圖片,適用於依規則處理文件、視覺問題,以及精簡的書面結果。
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsopenai/gpt-6-luna-pro - Ailoot Ultra · Anthropic Messages
POST /v1/messagesopenai/gpt-6-luna-pro - Ailoot Ultra · OpenAI Responses
POST /v1/responsesopenai/gpt-6-luna-pro
關於模型
此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。
GPT-6 Luna Pro 指使用 Pro 推理的 OpenAI GPT-6 Luna。Luna 為範圍明確的任務和大批量工作負載而設計;輸入是文字和圖片,輸出是文字。Pro 在形成最終答案時增加模型工作量。它是套用於所選基礎模型的執行模式,與控制該模式中分析量的推理強度設定不同。
一項實用應用是處理包含多項規則或例外、定義明確且範圍有限的請求。請提供請求、可能所屬類別,以及決定下一個動作的資訊。要求回傳類別、相關事實,以及簡短回覆草稿。一個任務示例是對文件請求分類、指出缺少的欄位,再草擬詢問該欄位的訊息。即使條件需要仔細考量,任務仍維持明確範圍。
針對圖片問題,請提供清晰的螢幕截圖或其他視覺資料,並指出要檢查的細節。你可要求解釋可見介面狀態,並附上給讀者的簡短指示。針對書面資料,請定義轉換後必須保留的欄位或陳述、允許的類別,以及預期答案格式。少量具代表性的範例能釐清相似類別的界線,不必讓模型推測你的規則。
OpenAI 指定 1,050,000 token 的上下文視窗供 GPT-6 Luna 使用,最多輸入 922,000 token,最多輸出 128,000 token。文件中的知識截止日為 2026年5月18日。基礎模型支援 none、low、medium、high、xhigh 和 max 推理強度,預設為 medium。推理與最終答案都會占用 token 空間,因此任務說明和所提供資料應為分析及所需結果預留空間。
開發者在 Responses API 中記載了 Pro,適用於允許額外延遲和模型作業量的高難度請求。GPT-6 Luna 的內建工具和結合函式呼叫的推理使用 Responses;在開發者的 Chat Completions 介面中,只有推理強度設為 none 時才支援函式呼叫。基礎模型列出串流、Structured Outputs、網頁與檔案搜尋、函式呼叫和提示快取。其工具也包括圖片生成、程式碼解譯、shell 和 patch 操作、技能、電腦操作、MCP 連線及工具搜尋。你的應用程式決定並執行其公開的操作。
請為最終任務指定精確輸出契約:決策、支持決策的欄位,以及仍缺少的資訊。例如,要求一個類別、依所提供規則給出的簡短理由,以及接下來要向讀者提出的問題。請依這些規則檢查結果,而非加入無限制的討論。此工作流程運用 Luna 的明確任務用途,同時將 Pro 額外作業用於其相依關係或例外需要更完整檢查的請求。
實用任務
實用任務
英文技術範例
Find missing request details
Process this equipment request using the supplied rules. Every request needs item, quantity and delivery site. Urgent requests also need a reason. Message: "Urgent: please send 4 replacement keyboards." Return the supplied fields, missing required fields and a brief reply asking only for the missing details. Do not invent a site or urgency reason.預期結果
A compact field table, missing-field list and targeted clarification message.檢查結果
Check that quantity four and keyboards are retained, while delivery site and urgent reason stay missing.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-6-luna-pro
openai/gpt-6-luna-pro入門
使用 Pro 推理的 GPT-6 Luna,適合在最終答案前需要額外分析的明確任務。基礎模型接收文字和圖片,適用於依規則處理文件、視覺問題,以及精簡的書面結果。
- 接受的輸入
- 文字
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- 輸入
text- 輸出
text- 輸出格式
- json 或 SSE
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 openai/gpt-6-luna-pro | 預設值— |
欄位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 時
- 推理強度 · max
- 標準費率 推理強度設為 max 時
- 推理強度 · medium
- 標準費率 推理強度設為 medium 時
- 推理強度 · none
- 標準費率 推理強度設為 none 時
- 推理強度 · xhigh
- 標準費率 推理強度設為 xhigh 時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於272,000 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 2 | 費率表— | 上下文 Token 數大於272,000 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0004 / 1K Token 輸出 · 輸出 Token $0.0015 / 1K Token 輸入 · 讀取快取 $0.00004 / 1K Token 輸入 · 寫入快取 $0.0005 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-6-luna-pro", "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
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='openai/gpt-6-luna-pro',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"))
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='openai/gpt-6-luna-pro',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 openai/gpt-6-luna-pro
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-6-luna-pro
openai/gpt-6-luna-pro入門
使用 Pro 推理的 GPT-6 Luna,適合在最終答案前需要額外分析的明確任務。基礎模型接收文字和圖片,適用於依規則處理文件、視覺問題,以及精簡的書面結果。
- 接受的輸入
- 文字
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · Anthropic Messages POST /v1/messages
- 輸入
text- 輸出
text- 輸出格式
- json 或 SSE
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 openai/gpt-6-luna-pro | 預設值— |
欄位messages | 類型message[] | 要求必填 | 值與限制 項目數下限: 1 | 預設值— |
欄位messages[].role | 類型string | 要求必填 | 值與限制 user, assistant | 預設值— |
欄位messages[].content | 類型string|content_block[] | 要求必填 | 值與限制 | 預設值— |
欄位system | 類型string|content_block[] | 要求選填 | 值與限制 | 預設值— |
欄位max_tokens | 類型integer | 要求必填 | 值與限制 最小值: 1 限制適用對象: 所選模型/卡片的確切上限 | 預設值— |
欄位stream | 類型boolean | 要求選填 | 值與限制 | 預設值false |
欄位temperature | 類型number | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位top_p | 類型number | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位stop_sequences | 類型string[] | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位tools | 類型tool[] | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位tools[].name | 類型string | 要求選填 | 值與限制 適用條件: 已提供工具 | 預設值— |
欄位tools[].description | 類型string | 要求選填 | 值與限制 | 預設值— |
欄位tools[].input_schema | 類型JSON_schema | 要求選填 | 值與限制 | 預設值— |
欄位tool_choice | 類型object | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位thinking.type | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位thinking.budget_tokens | 類型integer | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位output_config.effort | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位metadata | 類型object | 要求選填 | 值與限制 | 預設值— |
欄位cache_control | 類型object | 要求選填 | 值與限制 依模型而定 | 預設值— |
輸入素材組合
文字 · UTF8 文字
messages[].content 或 type=text 區塊
文字 + 圖片
{type:image,source:{type:base64,media_type,data}} 或 type=url 的來源
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數material_types | 規格text |
參數required | 規格model, messages, max_tokens |
參數optional_controls | 規格null |
參數content_type | 規格application/json |
參數text_file_material | 規格讀取實際 UTF-8 文件,將文字放入指定的 input 或訊息內容字串。 |
生命週期: exact retained published method
請傳送完全相符的模型 ID 與必要欄位。
請保留每個回傳項目及其原始識別碼。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
- 推理強度 · high
- 標準費率 推理強度設為 high 時
- 推理強度 · low
- 標準費率 推理強度設為 low 時
- 推理強度 · max
- 標準費率 推理強度設為 max 時
- 推理強度 · medium
- 標準費率 推理強度設為 medium 時
- 推理強度 · none
- 標準費率 推理強度設為 none 時
- 推理強度 · xhigh
- 標準費率 推理強度設為 xhigh 時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於272,000 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 2 | 費率表— | 上下文 Token 數大於272,000 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0004 / 1K Token 輸出 · 輸出 Token $0.0015 / 1K Token 輸入 · 讀取快取 $0.00004 / 1K Token 輸入 · 寫入快取 $0.0005 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · Anthropic Messages
{
"model": "openai/gpt-6-luna-pro",
"max_tokens": 4096,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
]
}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': 'openai/gpt-6-luna-pro', 'max_tokens': 4096, '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
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': 'openai/gpt-6-luna-pro', 'max_tokens': 4096, '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 openai/gpt-6-luna-pro
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
Ailoot Ultra · OpenAI Responses POST /v1/responses openai/gpt-6-luna-pro
openai/gpt-6-luna-pro入門
使用 Pro 推理的 GPT-6 Luna,適合在最終答案前需要額外分析的明確任務。基礎模型接收文字和圖片,適用於依規則處理文件、視覺問題,以及精簡的書面結果。
- 接受的輸入
- 文字
- 結果
- 文字
Ailoot 可用 · 輸入與方法
Ailoot Ultra · OpenAI Responses POST /v1/responses
- 輸入
text- 輸出
text- 輸出格式
- json 或 SSE
| 欄位 | 類型 | 要求 | 值與限制 | 預設值 |
|---|---|---|---|---|
欄位model | 類型string | 要求必填 | 值與限制 openai/gpt-6-luna-pro | 預設值— |
欄位input | 類型string|input_item[] | 要求必填 | 值與限制 | 預設值— |
欄位instructions | 類型string | 要求選填 | 值與限制 | 預設值— |
欄位input[].type | 類型string | 要求選填 | 值與限制 message, reasoning, function_call, function_call_output | 預設值— |
欄位input[].content | 類型string|content_part[] | 要求選填 | 值與限制 | 預設值— |
欄位input[].call_id | 類型string | 要求選填 | 值與限制 適用條件: function_call_output;保留實際回傳的 call_id | 預設值— |
欄位input[].output | 類型string|content_part[] | 要求選填 | 值與限制 適用條件: function_call_output | 預設值— |
欄位max_output_tokens | 類型integer | 要求選填 | 值與限制 最小值: 1 依模型而定 | 預設值— |
欄位stream | 類型boolean | 要求選填 | 值與限制 | 預設值false |
欄位temperature | 類型number | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位top_p | 類型number | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位tools | 類型tool[] | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位tool_choice | 類型string|object | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位parallel_tool_calls | 類型boolean | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位reasoning.effort | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位reasoning.summary | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位text.format | 類型object | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位text.verbosity | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位include | 類型string[] | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位store | 類型boolean | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位previous_response_id | 類型string | 要求不支援 | 值與限制 ID 要求: 僅限支援的延續流程實際回傳的回應 ID 條件: 每次請求都請帶入實際的對話歷史紀錄。 | 預設值— |
欄位service_tier | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位prompt_cache_key | 類型string | 要求選填 | 值與限制 依模型而定 | 預設值— |
欄位prompt_cache_options | 類型object | 要求選填 | 值與限制 依模型而定 | 預設值— |
輸入素材組合
文字 · UTF8 文字
輸入文字或 input_text 部分
文字 + 圖片
{type:input_image,image_url}
方法參數與生命週期
| 參數 | 規格 |
|---|---|
參數material_types | 規格text |
參數required | 規格model, input |
參數optional_controls | 規格null |
參數content_type | 規格application/json |
參數text_file_material | 規格讀取實際 UTF-8 文件,將文字放入指定的 input 或訊息內容字串。 |
生命週期: exact retained published method
請傳送完全相符的模型 ID 與必要欄位。
請保留每個回傳項目及其原始識別碼。
方案
費率資訊不會增加請求選項。支援的參數列於所選方法中。
- 快速模式
- 標準費率 選取快速模式時
- flex 模式
- 標準費率 選取 flex 模式時
- 最高推理強度
- 標準費率 最高推理強度採用 default 調整值時
- 推理強度 · high
- 標準費率 推理強度設為 high 時
- 推理強度 · low
- 標準費率 推理強度設為 low 時
- 推理強度 · max
- 標準費率 推理強度設為 max 時
- 推理強度 · medium
- 標準費率 推理強度設為 medium 時
- 推理強度 · none
- 標準費率 推理強度設為 none 時
- 推理強度 · xhigh
- 標準費率 推理強度設為 xhigh 時
Ailoot 費率
各設定的價格
請逐一核對各項費用與所列條件。每組互為替代選項的設定只套用一種費率。
| 設定 | 費率表 | 上下文 Token 數大於 | 上下文 Token 數小於或等於 | 費用 |
|---|---|---|---|---|
| 設定詞元基本費率 | 費率表基本費率 | 上下文 Token 數大於— | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 1 | 費率表— | 上下文 Token 數大於0 | 上下文 Token 數小於或等於272,000 | 費用 輸入 · 輸入 Token $0.0002 / 1K Token 輸出 · 輸出 Token $0.001 / 1K Token 輸入 · 讀取快取 $0.00002 / 1K Token 輸入 · 寫入快取 $0.00025 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
| 設定請求長度級距 2 | 費率表— | 上下文 Token 數大於272,000 | 上下文 Token 數小於或等於無上限 | 費用 輸入 · 輸入 Token $0.0004 / 1K Token 輸出 · 輸出 Token $0.0015 / 1K Token 輸入 · 讀取快取 $0.00004 / 1K Token 輸入 · 寫入快取 $0.0005 / 1K Token 輸入 · 寫入快取,1 小時 — / 1K Token |
Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →
請求範例
Ailoot Ultra · OpenAI Responses
{
"model": "openai/gpt-6-luna-pro",
"input": [
{
"content": "Hello, how are you?",
"role": "user",
"type": "message"
}
]
}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': 'openai/gpt-6-luna-pro', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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/responses \
-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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
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': 'openai/gpt-6-luna-pro', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][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 = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', 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 · OpenAI Responses
json 或 SSE
保留所有已完成的結果
請保留所有完整傳回的回應、檔案與內容區塊。
保留每個輸出項目與內容部分、實際函式 call_id、加密推理與用量。串流時保留完整事件/項目身分。
需要檢查原始回應時
保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。
回應欄位
| 欄位 | 類型 |
|---|---|
欄位id | 類型string |
欄位status | 類型string |
欄位output[] | 類型message|reasoning|function_call|other item |
欄位output[].content[] | 類型content part |
欄位usage | 類型object |
錯誤與後續步驟
| 回應 | 條件 | 下一步 |
|---|---|---|
回應400 · invalid_request_error | 條件必要欄位、素材表示方式或參數值無效 | 下一步提出新的建立請求前,先修正指定欄位。 |
別名
模型別名
Ailoot Ultra openai/gpt-6-luna-pro
方法路徑別名
請使用上方列出的 API 方法路徑。
相關呼叫用 ID
FAQ · OpenAI: GPT-6 Luna Pro
- 可以使用哪些輸入與結果?
POST /v1/chat/completions·openai/gpt-6-luna-pro:text→textPOST /v1/messages·openai/gpt-6-luna-pro:text→textPOST /v1/responses·openai/gpt-6-luna-pro:text→text- 請求使用哪些欄位?
POST /v1/chat/completions·openai/gpt-6-luna-pro:model,messages,stream,modalities,providerPOST /v1/messages·openai/gpt-6-luna-pro:model,messages,system,max_tokens,stream,metadataPOST /v1/responses·openai/gpt-6-luna-pro:model,input,instructions,stream- 適用哪些限制?
POST /v1/chat/completions·openai/gpt-6-luna-pro:messages.min_items:1POST /v1/messages·openai/gpt-6-luna-pro:messages.min_items:1;max_tokens.minimum:1