OpenAI: GPT-4.1 Nano (batch)
GPT-4.1 Nano yra kompaktiškas, greitai atsakantis GPT-4.1 šeimos modelis tiksliai apibrėžtoms teksto ir vaizdų užduotims. Didelis kontekstas, Structured Outputs ir funkcijų iškvietimas palaiko klasifikavimą, duomenų išgavimą ir konkrečius programos žingsnius.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
GPT-4.1 Nano yra greičiausias OpenAI GPT-4.1 šeimos modelis, skirtas instrukcijų laikymuisi ir įrankių iškvietimui be atskiro samprotavimo etapo. Priima tekstą bei vaizdus ir generuoja tekstą. Nano tinka aiškiai apibrėžtai operacijai, kai programai reikia glausto atsakymo, laukų rinkinio ar kitos įrankio užklausos, o ne plataus tyrimo.
Naudingas pavyzdys — gaunamų pranešimų rūšiavimas pagal pateiktą kategorijų rinkinį. Paaiškinkite kiekvieną kategoriją, parodykite, kaip pateikti dviprasmiškus ar už aprėpties ribų esančius pranešimus, ir paprašykite kategorijos kartu su ją pagrindžiančia šaltinio fraze. Duomenų išgavimui apibrėžkite laukų vardus, leidžiamas reikšmes ir trūkstamos informacijos tvarkymą. Trumpai rašymo užduočiai pateikite faktus ir paprašykite konkrečios ištraukos, kurios reikia kitam programos etapui. Pavyzdžiai ir apribojimai turėtų būti pakankamai nedideli, kad išliktų aiškūs net dideliame šaltinių rinkinyje.
Gamintojas nurodo 1 047 576 žetonų konteksto langą, didžiausią 32 768 žetonų išvestį ir žinių ribą — 2024 m. birželio 1 d. Šios specifikacijos atitinka GPT-4.1 Mini langą, išsaugant atskirą Nano modelio tapatybę ir į greitą atsaką orientuotą vaidmenį. Pažymėkite dokumentus ir pokalbio dalis, įtraukite tik operacijai aktualų kontekstą ir palikite vietos visam atsakymui. Paieškos rezultatai ar pateiktas informacinis tekstas gali suteikti faktų, naujesnių už modelio išmoktas žinias.
Nano palaiko srautinį perdavimą ir Structured Outputs. Schema apribotas galutinis atsakymas turi kitą paskirtį nei funkcijos iškvietimas: vienas suteikia programai užbaigtą artefaktą, o kitas prašo atlikti operaciją. Structured Outputs palaiko JSON Schema poaibį; apibrėžkite privalomas savybes ir aiškų nežinomų reikšmių pateikimą. Atsisakymus ir neužbaigtus atsakymus tvarkykite atskirai, o išgautas reikšmes tikrinkite pagal įvestį, nelaikydami galiojančios struktūros teisingos išvados atitikmeniu.
Dokumentuotą įrankių rinkinį sudaro funkcijų iškvietimas, paieška failuose, kodo vykdymas, MCP jungtys ir atskiras vaizdų generavimo įrankis. Programa pateikia įrankių aprašus bei schemas, vykdo pasirinktines funkcijas ir grąžina tikrus jų rezultatus. 2025 m. balandžio 14 d. Nano versijai OpenAI konkrečiai rekomenduoja išjungti lygiagrečius įrankių iškvietimus, nes modelis viename žingsnyje gali kelis kartus paprašyti to paties įrankio. Tai konkrečios versijos vykdymo aplinkybė, o ne priežastis kelis siūlomus iškvietimus laikyti atliktais veiksmais.
Vaizdų įvestis suteikia vaizdinių duomenų teksto užduočiai, pavyzdžiui, perskaityti matomą etiketę ar aprašyti ekrano kopijoje rodomą būseną. Naudokite palaikomus PNG, JPEG, WebP ar neanimuotus GIF vaizdus, išlaikykite tekstą įskaitomą ir paaiškinkite svarbų stebėjimą. Vaizdų supratimo vadove pažymimi sunkumai su smulkiu ar pasuktu tekstu, tiksliais erdviniais ryšiais, objektų skaičiumi ir kai kurių ne lotynų rašto sistemų tekstu. Pateikite aplinkinį kontekstą, kai vien iškarpa padarytų etiketę ar diagramą dviprasmišką. Paties Nano atsakymas yra tekstas; vaizdų generavimo įrankis grąžina atskirą artefaktą. Dokumentuotame OpenAI vaizdų supratimo procese bendras užklausos duomenų dydis ribojamas 512 MB, o vienoje užklausoje gali būti iki 1 500 vaizdų; vaizdai ir tekstas taip pat turi tilpti į modelio kontekstą.
Gamintojo failų procese vaizdus suprantantis modelis iš PDF gauna ir išgautą tekstą, ir puslapių vaizdus. Kiti dokumentų formatai pateikia išgautą tekstą, o skaičiuoklių papildymui naudojama ne daugiau kaip pirmosios 1 000 kiekvieno lapo eilučių. Failas turi būti mažesnis nei 50 MB, o bendra užklausos failų riba yra 50 MB. Chat Completions palaiko PDF failų dalis, o dokumentuotas Responses procesas priima papildomus failų tipus. Ne PDF dokumentuose esančios diagramos neperduodamos kaip vaizdinis turinys, todėl PDF pateikimas naudingas, kai svarbūs vaizdiniai duomenys.
OpenAI dokumentuoja Nano užklausų podėlį ir Predicted Outputs GPT-4.1 Nano serijai. Užklausų podėlis gamintojo tarnyboje pakartotinai naudoja tam tinkamą įvesties pradžią. Predicted Outputs vietoje to pateikia daugiausia žinomą išvesties tekstą redagavimui, pavyzdžiui, dokumentui ar kodo failui pataisyti išsaugant nepakitusias dalis. Prognozavimo kelias skirtas tik tekstui ir, be kitų valdiklių, nepalaiko funkcijų iškvietimo, logprobs ir max_completion_tokens. Kelią pasirinkite pagal tikrą operaciją ir išsaugokite jo rezultato ryšį su pradiniu šaltiniu.
Gamintojas taip pat dokumentuoja prižiūrimą papildomą mokymą ir tiesioginį pirmenybių optimizavimą įvardytai Nano GPT-4.1 versijai. Mokymo pavyzdžiai ir pageidaujami bei atmesti atsakymai pritaiko modelį kartotinei užduočiai; jie skiriasi nuo konteksto, pateikiamo įprastai užklausai. Praktiniam duomenų išgavimo ar klasifikavimo etapui pradėkite nuo aiškių kategorijų, pavyzdžių ir konkretaus galutinio formato, tada patikrinkite, ar grąžinti laukai išsaugo faktus, kuriuos naudos kitas etapas.
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches openai/gpt-4.1-nano:batch
openai/gpt-4.1-nano:batchPradžia
GPT-4.1 Nano yra kompaktiškas, greitai atsakantis GPT-4.1 šeimos modelis tiksliai apibrėžtoms teksto ir vaizdų užduotims. Didelis kontekstas, Structured Outputs ir funkcijų iškvietimas palaiko klasifikavimą, duomenų išgavimą ir konkrečius programos žingsnius.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Tekstas
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches
- Įvestis
text- Išvestis
text- Išvesties formatas
- tiesiogiai įterptas results[].response.body JSON
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasendpoint | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos /v1/chat/completions | Numatyta— |
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos openai/gpt-4.1-nano:batch | Numatyta— |
Laukasrequests | Tipasbatch_item[] | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
Laukasrequests[].custom_id | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.messages | Tipasmessage[] | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukascompletion_window | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos 24h | Numatyta— |
Laukasprovider | Tipasobject|null | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.model | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos openai/gpt-4.1-nano:batch, openai/gpt-4.1-nano | Numatyta— |
Laukasprovider.only | Tipasstring[] | ReikalavimasNeprivaloma | Reikšmės ir ribos openai | Numatyta— |
Laukasprovider.allow_fallbacks | Tipasboolean|null | ReikalavimasNeprivaloma | Reikšmės ir ribos false, null | Numatyta— |
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijaendpoint, model, requests |
Parametrasmaterial_types | Specifikacijatext |
Parametrasrepresentation | Specifikacijatiesiogiai įterptas requests[] masyvas; kiekvienas elementas turi custom_id ir body laukus |
Parametrasrequest_endpoint_profile | Specifikacija/v1/chat/completions |
Parametrasfile_material | SpecifikacijaKlientas gali vietoje perskaityti faktinį UTF-8 JSONL turinį į requests[] masyvą. Įkėlimo purpose, input_file_id ar failo nuoroda nenaudojami. Jei kliento medžiagos nėra arba ji tuščia, parengimas sustabdomas prieš POST. |
Parametrasserialization_order | Specifikacijaendpoint, model, provider (jei pateiktas), completion_window (jei pateiktas), requests pateikite paskiausiai |
Parametrasoptional_controls | Specifikacijaprovider.only, provider.allow_fallbacks, completion_window |
Parametrasschema_scope | SpecifikacijaTekstinių Chat Completions užklausų turiniai dokumentuotoje Batch paketo struktūroje, pateikiamoje pačioje užklausoje. |
Gyvavimo ciklas: asynchronous
GET /v1/batches/{operation_id} · faktinė pradinės kūrimo užklausos atsakymo response.id reikšmė; tas pats naudotojas, raktas ir grupė
Planai
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Nenurodyta Pasirinkus spartųjį režimą
- Flex režimas
- Nenurodyta Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
- Išreikštinio podėlio kainodara
- Neįjungta Kai prašoma išreikštinio podėlio
Ailoot įkainiai
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0001 / 1K tokenų Išvestis · Išvesties tokenai $0.0004 / 1K tokenų Įvestis · Talpyklos skaitymas $0.000025 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0001 / 1K tokenų Išvestis · Išvesties tokenai $0.0004 / 1K tokenų Įvestis · Talpyklos skaitymas $0.000025 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Paketinis apdorojimas
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.
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Paketinis apdorojimas
tiesiogiai įterptas results[].response.body JSON
GET /v1/batches/{operation_id}
Tikrinti užduoties būseną
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
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite visą pradinės būsenos JSON, kiekvieną rezultatą ir custom_id bei visą atsakymo arba klaidos turinį. Užbaigtus results[] išsaugokite JSONL formatu nieko nefiltruodami.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite pradinį operacijos ID. Atsakyme 503 result_pending_check pateikiama X-Should-Retry:false; niekada pakartotinai neteikite pradinio paketo, kurio baigtis nežinoma.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasresults[].custom_id | Tipasstring |
Laukasresults[].response.body.choices[].message.content | Tipasstring|null |
Laukasresults[].error | Tipasobject|null |
Laukasusage | Tipasobject|null |
Laukasid | Tipasstring |
Laukasmodel | Tipasstring |
Laukasendpoint | Tipasstring |
Laukasstatus | Tipasstring |
Laukasrequest_counts | Tipasobject |
Laukasresults[].id | Tipasstring |
Laukasresults[].response.status_code | Tipasinteger |
Laukasresults[].response.request_id | Tipasstring |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNeteisinga dokumentuota tiesiogiai įterpto paketo struktūra, pasikartojantys raktai, netinkama elemento tapatybė arba konfliktas su sukonfigūruotomis modelio galimybėmis. | Kitas žingsnisPrieš bet kokį naują pateikimą pataisykite nurodytus laukus. |
Atsakymas401 · authentication_error | SąlygaNegaliojantis API raktas. | Kitas žingsnisNaudokite leistiną Ailoot raktą. |
Atsakymas403 · permission_error | SąlygaPaketinio apdorojimo grupė neprieinama. | Kitas žingsnisPatikrinkite rakto ir grupės prieigos teises. |
Atsakymas422 · invalid_request_error | SąlygaPaketinis apdorojimas apmokamas iš balanso; kūrimo užklausos su prenumeratos apmokėjimu atmetamos. | Kitas žingsnisNaudokite leistiną grupę, kurios užklausos apmokamos iš balanso. |
Atsakymas422 · price_unavailable | SąlygaNepavyksta apskaičiuoti paketinio apdorojimo įvesties kainos. | Kitas žingsnisIšsaugokite atsakymą; naudokite dokumentuotą šios API šeimos įvestį. |
Atsakymas402 · billing_error | SąlygaPaketiniam apdorojimui reikalingas rezervas neprieinamas. | Kitas žingsnisPrieš teikdami naują užklausą išspręskite užklausos priėmimo problemą. |
Atsakymas503 · price_unavailable | SąlygaPaketinio apdorojimo metodo kaina arba savieji sistemos įkainiai neprieinami. | Kitas žingsnisIšsaugokite atsakymą; nekeiskite kainų kitomis. |
Atsakymas503 · api_error | SąlygaKonkretus tiekėjo maršrutas neprieinamas. | Kitas žingsnisIšsaugokite atsakymą maršrutui pataisyti. |
Atsakymas503 · result_pending_check | SąlygaPradinį rezultatą reikia patikrinti; X-Should-Retry:false. | Kitas žingsnisIšsaugokite pradinę operation_id/id reikšmę ir tikrinkite operacijos būseną; niekada nekartokite pradinės POST užklausos. |
Atsakymas404 · not_found | SąlygaPaketinio apdorojimo būsenos operacijos nėra arba ji susieta su kita tapatybe. | Kitas žingsnisNaudokite tikslią pradinę id reikšmę ir tą patį naudotoją, raktą bei grupę. |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra openai/gpt-4.1-nano:batch
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · OpenAI: GPT-4.1 Nano (batch)
- Kokios įvestys ir rezultatai prieinami?
POST /v1/batches·openai/gpt-4.1-nano:batch:text→text- Kokius laukus naudoja užklausa?
POST /v1/batches·openai/gpt-4.1-nano:batch:endpoint,model,requests,completion_window,provider- Kokie apribojimai taikomi?
POST /v1/batches·openai/gpt-4.1-nano:batch:requests.min_items:1