OpenAI: GPT-5.4
GPT-5.4 spojuje uvažování, programování, vizuální porozumění a nativní používání počítače pro složitou odbornou práci. Dodejte text, obrázky a jasné zadání pro vytvoření dokumentů, kódu nebo vícekrokového výsledku v prostředí připojeném k nástrojům.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsgpt-5.4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesgpt-5.4 - Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsopenai/gpt-5.4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesopenai/gpt-5.4
O modelu
Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.
GPT-5.4 je univerzální model OpenAI s uvažováním pro složitou odbornou práci. Jeho vydání spojuje programování, uvažování a pracovní postupy agentů s úlohami zahrnujícími dokumenty, tabulky a prezentace. Přijímá text a obrázky a vytváří text. Výrobce také dokumentuje nativní používání počítače modelem v připojeném pracovním prostředí.
U znalostní práce dodejte relevantní materiály, zamýšlené publikum a požadavky na konečný výstup. Příkladem úlohy je převést několik projektových dokumentů do stručného podkladu pro rozhodnutí s dodanými fakty, jejich vztahy a podmínkami podporujícími doporučení. Úloha s tabulkou nebo prezentací potřebuje také zdrojová data a strukturu či šablonu, které se má výsledek držet. Nástroje prostředí vytvářejí nebo upravují skutečné soubory; písemná odpověď modelu tuto práci vysvětluje nebo řídí.
U programování dodejte zamýšlené chování, související projektové soubory a omezení, která musí změna zachovat. Požádejte o návrh implementace nebo cílenou kontrolu navázanou na toto chování. Popis vydání představuje delší pracovní postupy kombinující použití nástrojů, postupné úpravy výsledku a jeho kontrolu. U vizuálních úloh nebo používání počítače dodejte skutečný snímek obrazovky či referenci a cíl. Model může interpretovat obrazovku a zvolit operaci; připojené prostředí provede akci a vrátí nový stav.
Specifikace GPT-5.4 od OpenAI uvádí kontextové okno o velikosti 1 050 000 tokenů a maximální výstup 128 000 tokenů, se znalostmi do 31. srpna 2025. Dostupné úrovně úsilí při uvažování jsou none, low, medium, high a xhigh; výchozí je none. Kontext zahrnuje dodané materiály, relevantní výsledky nástrojů a uvažování i konečnou odpověď. Udržujte definice úkolu a kritéria úspěchu jasné, zejména když několik kroků závisí na předchozích důkazech.
Výrobce uvádí rozhraní Responses, Chat Completions a Batch, streamování, Structured Outputs, volání funkcí, souborové a obrazové vstupy, vyhledávání na webu a v souborech a ukládání promptů do mezipaměti. Mezi nástroje patří generování obrázků, spouštění kódu, hostované operace shellu a aplikování záplat, dovednosti, používání počítače, připojení MCP a vyhledávání nástrojů. Popis vydání vysvětluje vyhledávání nástrojů jako nalezení potřebné definice nástroje, když se stane relevantní, místo požadavku na všechny úplné definice v počátečním kontextu. Aplikace spravuje své operace a poskytuje skutečné výsledky.
Popis vydání modelu také představuje lepší rozbor dokumentů a vizuální porozumění ve vysokém rozlišení i širší odborné úlohy spojující informace z několika webových zdrojů. Připravte čitelné vstupy a určete detaily podstatné pro otázku. Zvolte konkrétní konečný výsledek a důkazy pro jeho ověření: navrženou změnu a dotčené chování, strukturovanou sadu zjištění nebo dokument odpovídající dodaným požadavkům. Rozlišujte výsledek dokončené akce nástroje od kroku, který je ještě třeba provést, aby konečný výstup byl užitečný pro pokračování práce.
Praktická úloha
Praktická úloha
Technický příklad v angličtině
Outline a decision presentation
Prepare a four-slide outline for an operations decision from this supplied data: manual checks take 9 hours weekly; a proposed scanner would reduce checking to 3 hours; purchase cost is 1,200; monthly support cost is unknown. Include the current problem, expected operational change, missing cost information and a conditional recommendation. Do not claim a payback period.Očekávaný výsledek
Four slide titles with concise bullets and a conditional decision tied to the supplied data.Ověření výsledku
Check that the unknown support cost prevents an asserted payback calculation and that hours remain weekly.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gpt-5.4
gpt-5.4gpt-5.4openai/gpt-5.4
Úvod
GPT-5.4 spojuje uvažování, programování, vizuální porozumění a nativní používání počítače pro složitou odbornou práci. Dodejte text, obrázky a jasné zadání pro vytvoření dokumentů, kódu nebo vícekrokového výsledku v prostředí připojeném k nástrojům.
- Přijímané vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Vstup
text- Výstup
text- Výstupní formát
- json nebo SSE
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity gpt-5.4 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polemessages[].content | Typstring | PožadavekVolitelné | Hodnoty a limity Platí, když: Textová konverzace | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Kombinace vstupních materiálů
Text · text UTF8
messages[].content
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages |
Parametrmaterial_types | Kontrakttext |
Parametrmessages | Kontraktpole zpráv se strukturou role/content |
Parametrfile_material | Kontraktskutečný dokument UTF-8 vložený jako doslovný text; ID souboru se neodvozuje |
Parametroptional_controls | Kontraktstream |
Parametrcontrol_scope | KontraktTextová konverzace; stream je booleovská hodnota a ve výchozím nastavení je false. |
Parametroutput_modalities | Kontrakttext |
Parametrhosted_operations | Kontraktfalse |
Parametrmultimodal_input_binding | Kontraktnull |
Aliasy metody: /chat/completions
Životní cyklus: synchronous_or_streamed
Odešlete přesné ID modelu spolu s messages.
Délka kontextu není limitem výstupu.
Textový soubor může dodat doslovný text; obrazové/zvukové vstupy a vstupy v podobě souborových objektů vyžadují přesnou vazbu.
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Standardní sazba Při výběru rychlého režimu
- Režim flex
- Standardní sazba Při výběru režimu flex
- Maximální intenzita uvažování
- Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Intenzita uvažování · vysoká
- Standardní sazba Při vysoké intenzitě uvažování
- Intenzita uvažování · nízká
- Standardní sazba Při nízké intenzitě uvažování
- Intenzita uvažování · střední
- Standardní sazba Při střední intenzitě uvažování
- Intenzita uvažování · none
- Standardní sazba Při intenzitě uvažování none
- Intenzita uvažování · xhigh
- Standardní sazba Při intenzitě uvažování xhigh
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetně272 000 | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 2 | Tabulka sazeb— | Tokeny kontextu, více než272 000 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
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":"gpt-5.4","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
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="gpt-5.4", 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"))
Přijímání a ukládání výsledků
Ailoot Ultra · OpenAI Chat
json nebo SSE
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Zachovejte každou volbu a její obsah/volání nástrojů/uvažování. V SSE sestavujte přírůstky podle indexu volby/nástroje a zachovejte konečný důvod ukončení i údaje o využití.
Pokud je nutné ověřit původní odpověď
Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.
Pole odpovědi
| Pole | Typ |
|---|---|
Polechoices[].index | Typinteger |
Polechoices[].message.content | Typstring|null |
Polechoices[].message.tool_calls | Typtool_call[] |
Polechoices[].message.reasoning_content | Typstring |
Polechoices[].message.reasoning_details | Typobject|array |
Polechoices[].finish_reason | Typstring|null |
Poleusage | Typobject |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
Aliasy
Aliasy modelu
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Aliasy cest metod
/chat/completions
Související ID modelů
Ailoot Ultra · Anthropic Messages POST /v1/messages gpt-5.4
gpt-5.4gpt-5.4openai/gpt-5.4
Úvod
GPT-5.4 spojuje uvažování, programování, vizuální porozumění a nativní používání počítače pro složitou odbornou práci. Dodejte text, obrázky a jasné zadání pro vytvoření dokumentů, kódu nebo vícekrokového výsledku v prostředí připojeném k nástrojům.
- Přijímané vstupy
- Text
- Výsledky
- json · sse
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vstup
text- Výstup
json,sse- Výstupní formát
- JSON nebo SSE
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity gpt-5.4 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity user, assistant | Výchozí— |
Polemessages[].content | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemax_tokens | Typinteger | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Kombinace vstupních materiálů
Text · text UTF-8
řetězec messages[].content
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages, max_tokens |
Parametroptional_controls | Kontraktstream |
Parametrmaterial_types | Kontrakttext |
Parametrtext_file_material | KontraktPřečtěte skutečný dokument UTF-8 a vložte jeho text do uvedeného pole input nebo do řetězce obsahu zprávy. |
Životní cyklus: synchronous_or_streamed
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Standardní sazba Při výběru rychlého režimu
- Režim flex
- Standardní sazba Při výběru režimu flex
- Maximální intenzita uvažování
- Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Intenzita uvažování · vysoká
- Standardní sazba Při vysoké intenzitě uvažování
- Intenzita uvažování · nízká
- Standardní sazba Při nízké intenzitě uvažování
- Intenzita uvažování · střední
- Standardní sazba Při střední intenzitě uvažování
- Intenzita uvažování · none
- Standardní sazba Při intenzitě uvažování none
- Intenzita uvažování · xhigh
- Standardní sazba Při intenzitě uvažování xhigh
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetně272 000 | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 2 | Tabulka sazeb— | Tokeny kontextu, více než272 000 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
Ailoot Ultra · Anthropic Messages
{
"model": "gpt-5.4",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}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': 'gpt-5.4', '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
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': 'gpt-5.4', '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))
Přijímání a ukládání výsledků
Ailoot Ultra · Anthropic Messages
JSON nebo SSE
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Zachovejte všechny bloky obsahu, podpisy uvažování a skutečná ID použití nástrojů. Sestavte všechny přírůstky bloků SSE; první textový blok není úplný výstup.
Pokud je nutné ověřit původní odpověď
Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.
Pole odpovědi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
Poleusage | Typobject |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
Aliasy
Aliasy modelu
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Aliasy cest metod
/chat/completions
Související ID modelů
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-5.4
openai/gpt-5.4gpt-5.4openai/gpt-5.4
Úvod
GPT-5.4 spojuje uvažování, programování, vizuální porozumění a nativní používání počítače pro složitou odbornou práci. Dodejte text, obrázky a jasné zadání pro vytvoření dokumentů, kódu nebo vícekrokového výsledku v prostředí připojeném k nástrojům.
- Přijímané vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Vstup
text- Výstup
text- Výstupní formát
- json nebo SSE
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity openai/gpt-5.4 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity Příklady: system, user, assistant, tool, function Podmínky: Tyto role jsou výslovně zastoupeny typy kompatibility zdrojového kódu; přesná sada rolí zůstává specifická pro daný model. Závisí na modelu | Výchozí— |
Polemessages[].content | Typstring|content_part[]|null | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Polemessages[].tool_calls | Typtool_call[] | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Polemessages[].tool_call_id | Typstring | PožadavekVolitelné | Hodnoty a limity Platí, když: role=tool; použijte skutečně vrácené ID | Výchozí— |
Polemessages[].name | Typstring | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Polemessages[].reasoning_content | Typstring | PožadavekVolitelné | Hodnoty a limity Platí, když: Předávejte zpět skutečně vrácené uvažování tam, kde je tento model používá | Výchozí— |
Polemessages[].reasoning_details | Typobject|array | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polemax_tokens | Typinteger | PožadavekVolitelné | Hodnoty a limity Minimum: 1 Závisí na modelu | Výchozí— |
Polemax_completion_tokens | Typinteger | PožadavekVolitelné | Hodnoty a limity Minimum: 1 Závisí na modelu | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Polestream_options.include_usage | Typboolean | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poletemperature | Typnumber | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poletop_p | Typnumber | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polestop | Typstring|string[] | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poletools | Typfunction_tool[] | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poletools[].type | Typstring | PožadavekVolitelné | Hodnoty a limity function Závisí na modelu | Výchozí— |
Poletools[].function.name | Typstring | PožadavekPovinné | Hodnoty a limity Platí, když: nástroj typu funkce je dodán | Výchozí— |
Poletools[].function.description | Typstring | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Poletools[].function.parameters | TypJSON_schema | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Poletool_choice | Typstring|object | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poleparallel_tool_calls | Typboolean | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poleresponse_format | Typobject | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polereasoning_effort | Typstring | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polereasoning | Typobject | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poleservice_tier | Typstring | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poleinstructions | Typstring | PožadavekVolitelné | Hodnoty a limity Pole kompatibility | Výchozí— |
Polefunctions | Typfunction[] | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polefunction_call | Typstring|object | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Poleprompt_cache_options | Typobject | PožadavekVolitelné | Hodnoty a limity Závisí na modelu | Výchozí— |
Polemodalities | Typstring[] | PožadavekVolitelné | Hodnoty a limity text | Výchozí— |
Poleprovider | Typobject | PožadavekVolitelné | Hodnoty a limity Podmínky: provider.options je na této textové trase Ultra odmítáno | Výchozí— |
Polecache_control.ttl | Typstring | PožadavekVolitelné | Hodnoty a limity Podmínky: Hodnota 1h je ve skutečných umístěních mezipaměti promptů odmítána | Výchozí— |
Kombinace vstupních materiálů
Text · text UTF8
messages[].content
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages |
Parametrmaterial_types | Kontrakttext |
Parametrmessages | Kontraktpole zpráv se strukturou role/content |
Parametrfile_material | Kontraktskutečný dokument UTF-8 vložený jako doslovný text; ID souboru se neodvozuje |
Parametroptional_controls | Kontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametrcontrol_scope | Kontraktspecifické pro model; nástroje uživatelských funkcí se liší od hostovaných nástrojů |
Parametroutput_modalities | Kontrakttext |
Parametrhosted_operations | Kontraktfalse |
Parametrmultimodal_input_binding | Kontraktnull |
Životní cyklus: synchronous_or_streamed
Odešlete přesné ID modelu spolu s messages.
Délka kontextu není limitem výstupu.
Textový soubor může dodat doslovný text; obrazové/zvukové vstupy a vstupy v podobě souborových objektů vyžadují přesnou vazbu.
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Standardní sazba Při výběru rychlého režimu
- Režim flex
- Standardní sazba Při výběru režimu flex
- Maximální intenzita uvažování
- Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Intenzita uvažování · vysoká
- Standardní sazba Při vysoké intenzitě uvažování
- Intenzita uvažování · nízká
- Standardní sazba Při nízké intenzitě uvažování
- Intenzita uvažování · střední
- Standardní sazba Při střední intenzitě uvažování
- Intenzita uvažování · none
- Standardní sazba Při intenzitě uvažování none
- Intenzita uvažování · xhigh
- Standardní sazba Při intenzitě uvažování xhigh
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetně272 000 | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 2 | Tabulka sazeb— | Tokeny kontextu, více než272 000 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
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-5.4", "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-5.4',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-5.4',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")
Přijímání a ukládání výsledků
Ailoot Ultra · OpenAI Chat
json nebo SSE
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Zachovejte každou volbu a její obsah/volání nástrojů/uvažování. V SSE sestavujte přírůstky podle indexu volby/nástroje a zachovejte konečný důvod ukončení i údaje o využití.
Pokud je nutné ověřit původní odpověď
Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.
Pole odpovědi
| Pole | Typ |
|---|---|
Polechoices[].index | Typinteger |
Polechoices[].message.content | Typstring|null |
Polechoices[].message.tool_calls | Typtool_call[] |
Polechoices[].message.reasoning_content | Typstring |
Polechoices[].message.reasoning_details | Typobject|array |
Polechoices[].finish_reason | Typstring|null |
Poleusage | Typobject |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
Aliasy
Aliasy modelu
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Aliasy cest metod
/chat/completions
Související ID modelů
Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-5.4
openai/gpt-5.4gpt-5.4openai/gpt-5.4
Úvod
GPT-5.4 spojuje uvažování, programování, vizuální porozumění a nativní používání počítače pro složitou odbornou práci. Dodejte text, obrázky a jasné zadání pro vytvoření dokumentů, kódu nebo vícekrokového výsledku v prostředí připojeném k nástrojům.
- Přijímané vstupy
- Text
- Výsledky
- json · sse
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vstup
text- Výstup
json,sse- Výstupní formát
- JSON nebo SSE
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity openai/gpt-5.4 | Výchozí— |
Polemessages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemessages[].role | Typstring | PožadavekPovinné | Hodnoty a limity user, assistant | Výchozí— |
Polemessages[].content | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polemax_tokens | Typinteger | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polestream | Typboolean | PožadavekVolitelné | Hodnoty a limity | Výchozífalse |
Kombinace vstupních materiálů
Text · text UTF-8
řetězec messages[].content
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages, max_tokens |
Parametroptional_controls | Kontraktstream |
Parametrmaterial_types | Kontrakttext |
Parametrtext_file_material | KontraktPřečtěte skutečný dokument UTF-8 a vložte jeho text do uvedeného pole input nebo do řetězce obsahu zprávy. |
Životní cyklus: synchronous_or_streamed
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Standardní sazba Při výběru rychlého režimu
- Režim flex
- Standardní sazba Při výběru režimu flex
- Maximální intenzita uvažování
- Standardní sazba Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Intenzita uvažování · vysoká
- Standardní sazba Při vysoké intenzitě uvažování
- Intenzita uvažování · nízká
- Standardní sazba Při nízké intenzitě uvažování
- Intenzita uvažování · střední
- Standardní sazba Při střední intenzitě uvažování
- Intenzita uvažování · none
- Standardní sazba Při intenzitě uvažování none
- Intenzita uvažování · xhigh
- Standardní sazba Při intenzitě uvažování xhigh
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetně272 000 | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 2 | Tabulka sazeb— | Tokeny kontextu, více než272 000 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.005 / 1K tokenů Výstup · Výstupní tokeny $0.03 / 1K tokenů Vstup · Čtení z mezipaměti $0.0005 / 1K tokenů Vstup · Zápis do mezipaměti $0 / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
Ailoot Ultra · Anthropic Messages
{
"model": "openai/gpt-5.4",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}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-5.4', '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
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-5.4', '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))
Přijímání a ukládání výsledků
Ailoot Ultra · Anthropic Messages
JSON nebo SSE
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Zachovejte všechny bloky obsahu, podpisy uvažování a skutečná ID použití nástrojů. Sestavte všechny přírůstky bloků SSE; první textový blok není úplný výstup.
Pokud je nutné ověřit původní odpověď
Zachovejte ID požadavků/odpovědí a hlavičky. Není dodána obecná URL pro načtení textové úlohy.
Pole odpovědi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
Poleusage | Typobject |
Chyby a další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná povinná pole, reprezentace podkladů nebo hodnota parametru | Další krokPřed novým požadavkem na vytvoření opravte uvedená pole. |
Aliasy
Aliasy modelu
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Aliasy cest metod
/chat/completions
Související ID modelů
FAQ · OpenAI: GPT-5.4
- Jaké vstupy a výsledky jsou dostupné?
POST /v1/chat/completions·gpt-5.4:text→textPOST /v1/messages·gpt-5.4:text→json,ssePOST /v1/chat/completions·openai/gpt-5.4:text→textPOST /v1/messages·openai/gpt-5.4:text→json,sse- Jaká pole požadavek používá?
POST /v1/chat/completions·gpt-5.4:model,messages,streamPOST /v1/messages·gpt-5.4:model,messages,max_tokens,streamPOST /v1/chat/completions·openai/gpt-5.4:model,messages,stream,modalities,providerPOST /v1/messages·openai/gpt-5.4:model,messages,max_tokens,stream- Jaké limity platí?
POST /v1/chat/completions·gpt-5.4:messages.min_items:1POST /v1/chat/completions·openai/gpt-5.4:messages.min_items:1