OpenAI: GPT-4.1 Nano (batch)
GPT-4.1 Nano je kompaktný, rýchlo reagujúci člen rodiny GPT-4.1 na presne určené úlohy s textom a obrázkami. Jeho veľký kontext, Structured Outputs a volanie funkcií podporujú klasifikáciu, extrakciu a cielené kroky aplikácie.
O modeli
Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.
GPT-4.1 Nano je najrýchlejší člen rodiny GPT-4.1 od OpenAI, navrhnutý na dodržiavanie pokynov a volanie nástrojov bez samostatného kroku uvažovania. Prijíma text a obrázky a vytvára text. Nano je vhodný na dobre určenú operáciu, pri ktorej aplikácia potrebuje stručnú odpoveď, súbor polí alebo ďalšiu požiadavku na nástroj namiesto rozsiahleho skúmania.
Užitočným príkladom je triediť prichádzajúce správy podľa poskytnutého súboru kategórií. Vysvetlite každú kategóriu, ukážte vyjadrenie nejednoznačných správ alebo správ mimo rozsahu a vyžiadajte si kategóriu spolu so zdrojovou frázou, ktorá ju potvrdzuje. Pri extrakcii určite názvy polí, povolené hodnoty a spracovanie chýbajúcich informácií. Pri krátkej úlohe na písanie poskytnite fakty a vyžiadajte si konkrétnu pasáž potrebnú v ďalšej fáze aplikácie. Príklady a obmedzenia majú byť dostatočne malé, aby zostali jasné aj pri rozsiahlom súbore zdrojov.
Výrobca uvádza kontextové okno 1047576 tokenov, maximálny výstup 32768 tokenov a hranicu znalostí 1. júna 2024. Tieto špecifikácie zodpovedajú oknu GPT-4.1 Mini, pričom zachovávajú samostatnú identitu Nano a jeho úlohu zameranú na rýchlu odozvu. Dokumenty a časti konverzácie označte, zahrňte iba kontext relevantný pre operáciu a vyhraďte miesto na úplnú odpoveď. Vyhľadané informácie alebo poskytnutý referenčný text môžu dodať fakty novšie než naučené znalosti modelu.
Nano podporuje streamovanie a Structured Outputs. Konečná odpoveď podľa schémy slúži inému účelu než volanie funkcie: prvá dáva aplikácii dokončený materiál, druhé ju žiada o vykonanie operácie. Structured Outputs podporuje podmnožinu JSON Schema; určite povinné vlastnosti a jasné vyjadrenie neznámych hodnôt. Odmietnutia a neúplné odpovede spracúvajte oddelene a extrahované hodnoty overte podľa vstupu namiesto stotožnenia platnej formy so správnym záverom.
Dokumentovaná sada nástrojov zahŕňa volanie funkcií, vyhľadávanie v súboroch, vykonávanie kódu pomocou interpretera, pripojenia MCP a samostatný nástroj na generovanie obrázkov. Aplikácia poskytuje opisy a schémy nástrojov, vykonáva vlastné funkcie a vracia ich skutočné výsledky. Pre snímku Nano zo 14. apríla 2025 OpenAI výslovne odporúča vypnúť paralelné volania nástrojov, pretože model môže v jednom kroku konverzácie žiadať ten istý nástroj viackrát. Ide o okolnosť vykonávania špecifickú pre túto snímku, nie dôvod považovať niekoľko navrhnutých volaní za dokončené akcie.
Vstup obrázkov pridáva vizuálne dôkazy k textovej úlohe, napríklad prečítanie viditeľného označenia alebo opis stavu zo snímky obrazovky. Používajte podporované obrázky PNG, JPEG, WebP alebo neanimovaný GIF, text udržiavajte čitateľný a vysvetlite dôležité pozorovanie. Vizuálny návod upozorňuje na ťažkosti s malým alebo otočeným textom, presnými priestorovými vzťahmi, počtami predmetov a niektorými nelatinskými písmami. Pridajte okolitý kontext, keď by samotný výrez robil označenie alebo diagram nejednoznačným. Vlastnou odpoveďou Nano je text; nástroj na generovanie obrázkov vracia vlastný samostatný materiál. V dokumentovanom vizuálnom postupe OpenAI je celkový objem dát požiadavky obmedzený na 512 MB a požiadavka môže obsahovať najviac 1500 obrázkov; obrázky aj text sa musia zmestiť do kontextu modelu.
V súborovom postupe výrobcu dostáva model podporujúci vizuálne vstupy extrahovaný text aj obrázky strán z PDF. Ostatné formáty dokumentov poskytujú extrahovaný text a dopĺňanie tabuliek zohľadňuje najviac prvých 1000 riadkov každého hárka. Súbor musí mať menej než 50 MB a súhrnný limit požiadavky je 50 MB. Chat Completions podporuje súborové časti PDF, zatiaľ čo dokumentovaný postup Responses prijíma ďalšie typy súborov. Vložené grafy v dokumentoch mimo formátu PDF sa neodovzdávajú ako obrázkový obsah, preto je reprezentácia PDF užitočná, keď záleží na vizuálnych dôkazoch.
OpenAI dokumentuje cache promptov pre Nano a Predicted Outputs pre rad GPT-4.1 Nano. Cache promptov opätovne využíva oprávnený vstupný prefix v službe výrobcu. Predicted Outputs naopak poskytuje prevažne známy výstupný text na úpravu, napríklad pri prepracovaní dokumentu alebo súboru kódu so zachovaním nezmenených častí. Cesta predikcie je čisto textová a okrem iných nastavení vylučuje volanie funkcií, logprobs a max_completion_tokens. Cestu vyberte podľa skutočnej operácie a jej výsledok zachovajte spojený s pôvodným zdrojom.
Výrobca dokumentuje aj dolaďovanie s dohľadom a priamu optimalizáciu preferencií pre pomenovanú snímku GPT-4.1 modelu Nano. Tréningové príklady a preferované oproti odmietnutým odpovediam prispôsobujú model opakovanej úlohe; odlišujú sa od kontextu poskytnutého bežnej požiadavke. Pri praktickom kroku extrakcie alebo klasifikácie začnite jasnými kategóriami, príkladmi a výslovným konečným formátom a potom skontrolujte, či vrátené polia zachovávajú fakty, ktoré využije ďalšia fáza.
Ailoot Ultra · Dávkové spracovanie POST /v1/batches openai/gpt-4.1-nano:batch
openai/gpt-4.1-nano:batchÚvod
GPT-4.1 Nano je kompaktný, rýchlo reagujúci člen rodiny GPT-4.1 na presne určené úlohy s textom a obrázkami. Jeho veľký kontext, Structured Outputs a volanie funkcií podporujú klasifikáciu, extrakciu a cielené kroky aplikácie.
- Povolené vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metódy
Ailoot Ultra · Dávkové spracovanie POST /v1/batches
- Vstup
text- Výstup
text- Výstupný formát
- JSON priamo vložený v results[].response.body
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Poleendpoint | Typstring | PožiadavkaPovinné | Hodnoty a limity /v1/chat/completions | Predvolené— |
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity openai/gpt-4.1-nano:batch | Predvolené— |
Polerequests | Typbatch_item[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 | Predvolené— |
Polerequests[].custom_id | Typstring | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polerequests[].body.messages | Typmessage[] | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polecompletion_window | Typstring | PožiadavkaVoliteľné | Hodnoty a limity 24h | Predvolené— |
Poleprovider | Typobject|null | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Polerequests[].body.model | Typstring | PožiadavkaVoliteľné | Hodnoty a limity openai/gpt-4.1-nano:batch, openai/gpt-4.1-nano | Predvolené— |
Poleprovider.only | Typstring[] | PožiadavkaVoliteľné | Hodnoty a limity openai | Predvolené— |
Poleprovider.allow_fallbacks | Typboolean|null | PožiadavkaVoliteľné | Hodnoty a limity false, null | Predvolené— |
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciaendpoint, model, requests |
Parametermaterial_types | Špecifikáciatext |
Parameterrepresentation | Špecifikáciapriamo vložené requests[]; každá položka obsahuje custom_id a body |
Parameterrequest_endpoint_profile | Špecifikácia/v1/chat/completions |
Parameterfile_material | ŠpecifikáciaVolajúci môže lokálne načítať skutočný súbor UTF-8 JSONL do requests[]. Nepoužíva sa účel nahrávania, input_file_id ani odkaz na súbor. Chýbajúce alebo prázdne podklady zákazníka zastavia prípravu pred POST. |
Parameterserialization_order | Špecifikáciaendpoint, model, provider (ak je zadaný), completion_window (ak je zadaný), requests na konci |
Parameteroptional_controls | Špecifikáciaprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | ŠpecifikáciaTelá textových požiadaviek Chat Completions v zdokumentovanom obale dávky s priamo vloženými požiadavkami. |
Životný cyklus: asynchronous
GET /v1/batches/{operation_id} · skutočná hodnota response.id z pôvodnej odpovede na vytvorenie; rovnaký používateľ/kľúč/skupina
Cenník
Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.
- Rýchly režim
- Neuvedené Keď je zvolený rýchly režim
- Režim Flex
- Neuvedené Keď je zvolený režim flex
- Maximálna úroveň uvažovania
- Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)
- Ceny explicitnej cache
- Nie je zapnuté Keď sa požaduje explicitná cache
Sadzby Ailoot
Ceny podľa konfigurácie
Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.
| Konfigurácia | Sadzobník | Počet tokenov kontextu väčší než | Tokeny kontextu, najviac (vrátane hranice) | Poplatok |
|---|---|---|---|---|
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Počet tokenov kontextu väčší než— | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny $0.0001 / 1K tokenov Výstup · Výstupné tokeny $0.0004 / 1K tokenov Vstup · Čítanie cache $0.000025 / 1K tokenov Vstup · Zápis do cache — / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
| KonfiguráciaPásmo dĺžky požiadavky 1 | Sadzobník— | Počet tokenov kontextu väčší než0 | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny $0.0001 / 1K tokenov Výstup · Výstupné tokeny $0.0004 / 1K tokenov Vstup · Čítanie cache $0.000025 / 1K tokenov Vstup · Zápis do cache — / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot Ultra · Dávkové spracovanie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"openai/gpt-4.1-nano:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['openai/gpt-4.1-nano:batch', 'openai/gpt-4.1-nano']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4.1-nano:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Prijať a uložiť výsledky
Ailoot Ultra · Dávkové spracovanie
JSON priamo vložený v results[].response.body
GET /v1/batches/{operation_id}
Skontrolovať stav úlohy
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Uchovať všetky dokončené výsledky
Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.
Uchovajte úplný pôvodný stav vo formáte JSON, každý výsledok/custom_id a úplné telo odpovede alebo chyby. Dokončené results[] uložte ako JSONL bez filtrovania.
Ak treba overiť pôvodnú odpoveď
Uchovajte pôvodné ID operácie. Odpoveď 503 result_pending_check obsahuje X-Should-Retry:false; pôvodnú dávku s neznámym výsledkom nikdy znova neodosielajte.
Polia odpovede
| Pole | Typ |
|---|---|
Poleresults[].custom_id | Typstring |
Poleresults[].response.body.choices[].message.content | Typstring|null |
Poleresults[].error | Typobject|null |
Poleusage | Typobject|null |
Poleid | Typstring |
Polemodel | Typstring |
Poleendpoint | Typstring |
Polestatus | Typstring |
Polerequest_counts | Typobject |
Poleresults[].id | Typstring |
Poleresults[].response.status_code | Typinteger |
Poleresults[].response.request_id | Typstring |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatný zdokumentovaný obal s priamo vloženými požiadavkami, duplicitné kľúče alebo konflikt identity položky či nastavených schopností modelu. | Ďalší krokPred akýmkoľvek novým odoslaním opravte označené polia. |
Odpoveď401 · authentication_error | PodmienkaNeplatný kľúč API. | Ďalší krokPoužite kľúč Ailoot, ktorý ste oprávnení používať. |
Odpoveď403 · permission_error | PodmienkaSkupina pre dávkové spracovanie nie je dostupná. | Ďalší krokSkontrolujte oprávnenie kľúča/skupiny. |
Odpoveď422 · invalid_request_error | PodmienkaDávkové spracovanie sa účtuje zo zostatku; vytvorenie cez predplatné sa odmieta. | Ďalší krokPoužite skupinu s účtovaním zo zostatku, ktorú ste oprávnení používať. |
Odpoveď422 · price_unavailable | PodmienkaPre vstup dávky nemožno vypočítať cenovú ponuku. | Ďalší krokUchovajte odpoveď; použite zdokumentovaný vstup pre danú rodinu metód. |
Odpoveď402 · billing_error | PodmienkaRezerva pre dávkové spracovanie nie je dostupná. | Ďalší krokPred novou požiadavkou vyriešte podmienky prijatia. |
Odpoveď503 · price_unavailable | PodmienkaCena metódy dávkového spracovania alebo natívne sadzby nie sú dostupné. | Ďalší krokUchovajte odpoveď; nenahrádzajte ceny inými. |
Odpoveď503 · api_error | PodmienkaPresná trasa k dodávateľovi nie je dostupná. | Ďalší krokUchovajte odpoveď na účely opravy smerovania. |
Odpoveď503 · result_pending_check | PodmienkaPôvodný výsledok je potrebné skontrolovať; X-Should-Retry:false. | Ďalší krokUchovajte pôvodné operation_id/id a čítajte jeho stav; pôvodný POST nikdy neopakujte. |
Odpoveď404 · not_found | PodmienkaOperácia na zisťovanie stavu dávky neexistuje alebo patrí inej identite. | Ďalší krokPoužite presné pôvodné id a rovnakého používateľa/kľúč/skupinu. |
Aliasy
Aliasy modelov
Ailoot Ultra openai/gpt-4.1-nano:batch
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · OpenAI: GPT-4.1 Nano (batch)
- Aké vstupy a výsledky sú dostupné?
POST /v1/batches·openai/gpt-4.1-nano:batch:text→text- Aké polia používa požiadavka?
POST /v1/batches·openai/gpt-4.1-nano:batch:endpoint,model,requests,completion_window,provider- Aké limity platia?
POST /v1/batches·openai/gpt-4.1-nano:batch:requests.min_items:1