OpenAI: GPT-4.1 Nano (batch)
GPT-4.1 Nano on GPT-4.1-perheen kompakti, nopeasti vastaava jäsen tarkasti määritettyihin teksti- ja kuvatehtäviin. Sen suuri konteksti, Structured Outputs ja funktiokutsut tukevat luokittelua, poimintaa ja rajattuja sovellusvaiheita.
Tietoa mallista
Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.
GPT-4.1 Nano on OpenAI:n GPT-4.1-perheen nopein jäsen, joka on suunniteltu ohjeiden noudattamiseen ja työkalukutsuihin ilman erillistä päättelyvaihetta. Se hyväksyy tekstiä ja kuvia ja tuottaa tekstiä. Nano sopii tarkasti määritettyyn operaatioon, jossa sovellus tarvitsee tiiviin vastauksen, kenttäjoukon tai seuraavan työkalupyynnön laajan selvityksen sijaan.
Hyödyllinen esimerkki on saapuvien viestien luokittelu annettujen kategorioiden mukaan. Selitä jokainen kategoria, näytä epäselvien tai soveltamisalan ulkopuolisten viestien esitystapa ja pyydä kategoriaa yhdessä sitä tukevan lähdeilmauksen kanssa. Määritä poimintaan kenttänimet, sallitut arvot ja puuttuvan tiedon käsittely. Anna lyhyeen kirjoitustehtävään faktat ja pyydä sovelluksen seuraavan vaiheen tarvitsemaa täsmällistä katkelmaa. Esimerkkien ja rajoitteiden tulee olla riittävän pieniä pysyäkseen selkeinä myös suuressa lähdekokoelmassa.
Tuottaja ilmoittaa konteksti-ikkunaksi 1047576 tokenia, enimmäistulosteeksi 32768 tokenia ja tietojen katkaisupäiväksi 1. kesäkuuta 2024. Määritykset vastaavat GPT-4.1 Minin ikkunaa säilyttäen Nanon erillisen malli-identiteetin ja nopeaan vastaamiseen painottuvan tehtävän. Nimeä dokumentit ja keskustelun osiot, sisällytä vain operaation kannalta olennainen konteksti ja varaa tilaa täydelle vastaukselle. Hakutulokset tai annettu viiteteksti voivat tarjota mallin oppimia tietoja uudempia faktoja.
Nano tukee suoratoistoa ja Structured Outputs -toimintoa. Skeeman rajaama lopullinen vastaus palvelee eri tarkoitusta kuin funktiokutsu: toinen antaa sovellukselle valmiin tuotoksen, ja toinen pyytää sitä suorittamaan operaation. Structured Outputs tukee JSON Scheman osajoukkoa; määritä vaaditut ominaisuudet ja selkeä esitystapa tuntemattomille arvoille. Käsittele kieltäytymiset ja keskeneräiset vastaukset erikseen ja tarkista poimitut arvot syötettä vasten sen sijaan, että kelvollinen muoto rinnastettaisiin oikeaan johtopäätökseen.
Dokumentoitu työkalujoukko sisältää funktiokutsut, tiedostohaun, koodin tulkinnan, MCP-yhteydet ja erillisen kuvagenerointityökalun. Sovellus antaa työkalukuvaukset ja skeemat, suorittaa mukautetut funktiot ja palauttaa niiden todelliset tulokset. OpenAI suosittelee nimenomaisesti rinnakkaisten työkalukutsujen poistamista käytöstä 14. huhtikuuta 2025 päivätyssä Nano-malliversiossa, koska malli voi pyytää samaa työkalua useita kertoja yhdellä vuorolla. Tämä on malliversiokohtainen suorittamiseen liittyvä huomio, ei syy tulkita useita ehdotettuja kutsuja suoritetuiksi toiminnoiksi.
Kuvasyöte lisää tekstitehtävään visuaalista näyttöä, kuten näkyvän merkinnän lukemista tai kuvakaappauksen tilan kuvausta. Käytä tuettuja PNG-, JPEG- ja WebP-kuvia tai animoimattomia GIF-kuvia, pidä teksti luettavana ja selitä tärkeä havainto. Kuvaopas mainitsee vaikeuksia pienessä tai käännetyssä tekstissä, täsmällisissä sijaintisuhteissa, esinemäärissä ja osassa ei-latinalaista kirjoitusta. Anna ympäröivä konteksti, kun pelkkä rajaus tekisi merkinnästä tai kaaviosta epäselvän. Nanon oma vastaus on tekstiä; kuvagenerointityökalu palauttaa oman erillisen tuotoksensa. OpenAI:n dokumentoidussa kuvantulkintatyönkulussa pyynnön kokonaisdata on rajattu 512 MB:iin ja pyyntö voi sisältää enintään 1500 kuvaa; kuvien ja tekstin pitää myös mahtua mallin kontekstiin.
Tuottajan tiedostotyönkulussa kuvia ymmärtävä malli vastaanottaa PDF-tiedostoista sekä poimitun tekstin että sivukuvat. Muut dokumenttimuodot tuovat poimitun tekstin, ja laskentataulukoiden aineiston täydentäminen huomioi kunkin välilehden enintään 1000 ensimmäistä riviä. Tiedoston pitää olla alle 50 MB, ja pyynnön yhteisraja on 50 MB. Chat Completions tukee PDF-tiedosto-osia, ja dokumentoitu Responses-työnkulku hyväksyy myös muita tiedostotyyppejä. Muiden kuin PDF-dokumenttien upotettuja kaavioita ei välitetä kuvasisältönä, joten PDF-esitysmuoto auttaa visuaalisen näytön ollessa tärkeää.
OpenAI dokumentoi Nanolle kehotteiden välimuistin ja GPT-4.1 Nano -sarjalle Predicted Outputs -toiminnon. Kehotteiden välimuisti käyttää uudelleen siihen soveltuvaa syötteen alkuosaa tuottajan palvelussa. Predicted Outputs antaa sen sijaan pääosin tunnettua tulostekstiä muokkaukseen, kuten dokumentin tai kooditiedoston päivittämiseen sen muuttumattomat osat säilyttäen. Ennustetyönkulku käsittelee vain tekstiä ja sulkee pois muun muassa funktiokutsut sekä logprobs- ja max_completion_tokens-asetukset. Valitse työnkulku todellisen operaation mukaan ja pidä sen tulos yhteydessä alkuperäiseen lähteeseen.
Tuottaja dokumentoi myös ohjatun hienosäädön ja suoran preferenssioptimoinnin Nanon nimetylle GPT-4.1-malliversiolle. Koulutusesimerkit sekä paremmiksi valitut ja hylätyt vastaukset mukauttavat mallia toistuvaan tehtävään; ne eroavat tavallisen pyynnön saamasta kontekstista. Aloita käytännön poiminta- tai luokitteluvaihe selkeillä kategorioilla, esimerkeillä ja täsmällisellä lopputulosmuodolla ja tarkasta sitten, säilyttävätkö palautetut kentät seuraavan vaiheen käyttämät faktat.
Ailoot Ultra · Eräajo POST /v1/batches openai/gpt-4.1-nano:batch
openai/gpt-4.1-nano:batchAloitus
GPT-4.1 Nano on GPT-4.1-perheen kompakti, nopeasti vastaava jäsen tarkasti määritettyihin teksti- ja kuvatehtäviin. Sen suuri konteksti, Structured Outputs ja funktiokutsut tukevat luokittelua, poimintaa ja rajattuja sovellusvaiheita.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · Eräajo POST /v1/batches
- Syötetyypit
text- Tulostyypit
text- Tulosteen muoto
- vastaukseen sisältyvä JSON kentässä results[].response.body
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttäendpoint | Tyyppistring | VaatimusPakollinen | Arvot & rajat /v1/chat/completions | Oletus— |
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat openai/gpt-4.1-nano:batch | Oletus— |
Kenttärequests | Tyyppibatch_item[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttärequests[].custom_id | Tyyppistring | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttärequests[].body.messages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttäcompletion_window | Tyyppistring | VaatimusValinnainen | Arvot & rajat 24h | Oletus— |
Kenttäprovider | Tyyppiobject|null | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttärequests[].body.model | Tyyppistring | VaatimusValinnainen | Arvot & rajat openai/gpt-4.1-nano:batch, openai/gpt-4.1-nano | Oletus— |
Kenttäprovider.only | Tyyppistring[] | VaatimusValinnainen | Arvot & rajat openai | Oletus— |
Kenttäprovider.allow_fallbacks | Tyyppiboolean|null | VaatimusValinnainen | Arvot & rajat false, null | Oletus— |
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusendpoint, model, requests |
Parametrimaterial_types | Sopimustext |
Parametrirepresentation | Sopimuspyyntöön sisältyvä requests[]; jokaisella alkiolla on custom_id ja body |
Parametrirequest_endpoint_profile | Sopimus/v1/chat/completions |
Parametrifile_material | SopimusKutsuja voi lukea todellisen UTF-8 JSONL -aineiston paikallisesti requests[]-taulukkoon. Latauksen purpose-arvoa, input_file_id-arvoa tai tiedostoviitettä ei käytetä. Puuttuva tai tyhjä asiakkaan aineisto keskeyttää valmistelun ennen POST-pyyntöä. |
Parametriserialization_order | Sopimusendpoint, model, provider (jos annettu), completion_window (jos annettu), requests viimeisenä |
Parametrioptional_controls | Sopimusprovider.only, provider.allow_fallbacks, completion_window |
Parametrischema_scope | SopimusTekstimuotoiset Chat Completions -pyyntörungot dokumentoidussa pyyntöön sisältyvässä Batch-kääreessä. |
Elinkaari: asynchronous
GET /v1/batches/{operation_id} · alkuperäisen luontivastauksen todellinen response.id; sama käyttäjä, avain ja ryhmä
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Ei määritetty Kun nopea tila on valittu
- Flex-tila
- Ei määritetty Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0001 / 1K tokenia Tuloste · Tulostokenit $0.0004 / 1K tokenia Syöte · Välimuistin luku $0.000025 / 1K tokenia Syöte · Välimuistiin kirjoitus — / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0001 / 1K tokenia Tuloste · Tulostokenit $0.0004 / 1K tokenia Syöte · Välimuistin luku $0.000025 / 1K tokenia Syöte · Välimuistiin kirjoitus — / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · Eräajo
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.
Vastaanota ja tallenna tulokset
Ailoot Ultra · Eräajo
vastaukseen sisältyvä JSON kentässä results[].response.body
GET /v1/batches/{operation_id}
Tarkista työn tila
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
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä koko alkuperäinen tilatiedot sisältävä JSON, jokainen tulos ja custom_id sekä täydellinen vastaus- tai virherunko. Tallenna valmistuneet results[]-tulokset JSONL-muodossa suodattamatta.
Jos alkuperäinen vastaus on tarkistettava
Säilytä alkuperäinen operaation ID. 503 result_pending_check sisältää otsakkeen X-Should-Retry:false; älä koskaan lähetä uudelleen alkuperäistä eräajoa, jonka tila on tuntematon.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäresults[].custom_id | Tyyppistring |
Kenttäresults[].response.body.choices[].message.content | Tyyppistring|null |
Kenttäresults[].error | Tyyppiobject|null |
Kenttäusage | Tyyppiobject|null |
Kenttäid | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttäendpoint | Tyyppistring |
Kenttästatus | Tyyppistring |
Kenttärequest_counts | Tyyppiobject |
Kenttäresults[].id | Tyyppistring |
Kenttäresults[].response.status_code | Tyyppiinteger |
Kenttäresults[].response.request_id | Tyyppistring |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoDokumentoitu pyyntöön sisältyvä kääre on virheellinen, avaimet ovat päällekkäisiä, alkion identiteetti on virheellinen tai määritetyt mallin ominaisuudet ovat ristiriidassa. | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta lähetystä. |
Vastaus401 · authentication_error | EhtoVirheellinen API-avain. | Seuraava vaiheKäytä valtuutettua Ailoot-avainta. |
Vastaus403 · permission_error | EhtoEräajoryhmä ei ole käytettävissä. | Seuraava vaiheTarkista avaimen ja ryhmän käyttöoikeudet. |
Vastaus422 · invalid_request_error | EhtoEräajo laskutetaan saldosta; tilauspohjaisella laskutuksella tehty eräajon luontipyyntö hylätään. | Seuraava vaiheKäytä valtuutettua saldosta laskutettavaa ryhmää. |
Vastaus422 · price_unavailable | EhtoEräajon syötteelle ei voida laskea hinta-arviota. | Seuraava vaiheSäilytä vastaus; käytä dokumentoitua API-perheen syötettä. |
Vastaus402 · billing_error | EhtoEräajon varaus ei ole käytettävissä. | Seuraava vaihePoista pyynnön hyväksymisen esteet ennen uutta pyyntöä. |
Vastaus503 · price_unavailable | EhtoEräajomenetelmän hinta tai natiivit hinnat eivät ole käytettävissä. | Seuraava vaiheSäilytä vastaus; älä korvaa hintoja toisilla. |
Vastaus503 · api_error | EhtoTäsmällinen toimittajan reitti ei ole käytettävissä. | Seuraava vaiheSäilytä vastaus reitin korjaamista varten. |
Vastaus503 · result_pending_check | EhtoAlkuperäinen tulos edellyttää tarkistusta; X-Should-Retry:false. | Seuraava vaiheSäilytä alkuperäinen operation_id/id ja lue sen tila; älä koskaan toista alkuperäistä POST-pyyntöä. |
Vastaus404 · not_found | EhtoEräajon tilan operaatiota ei ole tai se kuuluu toiselle identiteetille. | Seuraava vaiheKäytä täsmälleen alkuperäistä id-arvoa sekä samaa käyttäjää, avainta ja ryhmää. |
Aliakset
Mallin aliakset
Ailoot Ultra openai/gpt-4.1-nano:batch
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
FAQ · OpenAI: GPT-4.1 Nano (batch)
- Mitä syötteitä ja tuloksia on saatavilla?
POST /v1/batches·openai/gpt-4.1-nano:batch:text→text- Mitä kenttiä pyyntö käyttää?
POST /v1/batches·openai/gpt-4.1-nano:batch:endpoint,model,requests,completion_window,provider- Mitä rajoja sovelletaan?
POST /v1/batches·openai/gpt-4.1-nano:batch:requests.min_items:1