modeller

OpenAI: GPT-4.1 Nano (batch)

Markdown · JSON

OpenAI: GPT-4.1 Nano (batch)

GPT-4.1 Nano er det kompakte, hurtigt reagerende medlem af GPT-4.1-familien til nøje specificerede tekst- og billedopgaver. Dens store kontekst, Structured Outputs og funktionskald understøtter klassifikation, udtræk og afgrænsede applikationstrin.

Om modellen

Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.

GPT-4.1 Nano er OpenAIs hurtigste medlem af GPT-4.1-familien, udviklet til efterlevelse af instruktioner og værktøjskald uden et separat ræsonneringstrin. Den modtager tekst og billeder og producerer tekst. Nano egner sig til en veldefineret handling, hvor applikationen har brug for et kompakt svar, et sæt felter eller den næste værktøjsanmodning frem for en omfattende undersøgelse.

Et nyttigt eksempel er at sortere indgående beskeder efter et leveret sæt kategorier. Forklar hver kategori, vis, hvordan tvetydige beskeder eller beskeder uden for opgavens rammer skal repræsenteres, og bed om kategorien sammen med den kildeformulering, der understøtter den. Til udtræk skal du definere feltnavne, tilladte værdier og håndtering af manglende oplysninger. Til en kort skriveopgave skal du levere fakta og bede om den konkrete passage, som det næste applikationstrin har brug for. Eksemplerne og begrænsningerne skal være korte nok til at forblive tydelige, selv når kildesamlingen er stor.

Leverandøren angiver et kontekstvindue på 1.047.576 tokens, et maksimalt output på 32.768 tokens og en vidensgrænse den 1. juni 2024. Specifikationerne matcher vinduet i GPT-4.1 Mini og bevarer samtidig Nanos særskilte modelidentitet og rolle med fokus på hurtige svar. Mærk dokumenter og samtaleafsnit, medtag kun den kontekst, som er relevant for handlingen, og reserver plads til det komplette svar. Hentede søgeresultater eller leveret referencetekst kan give fakta, som er nyere end modellens indlærte viden.

Nano understøtter streaming og Structured Outputs. Et skemabegrænset slutsvar tjener et andet formål end et funktionskald: det ene giver applikationen et færdigt resultat, mens det andet beder den om at udføre en handling. Structured Outputs understøtter en delmængde af JSON Schema; definer påkrævede egenskaber og en tydelig repræsentation af ukendte værdier. Håndter afvisninger og ufuldstændige svar separat, og kontroller de udtrukne værdier mod inputtet frem for at sætte lighedstegn mellem en gyldig form og en korrekt konklusion.

Det dokumenterede værktøjssæt omfatter funktionskald, filsøgning, kodefortolkning, MCP-forbindelser og et separat billedgenereringsværktøj. Applikationen leverer værktøjsbeskrivelser og skemaer, udfører egne funktioner og returnerer deres faktiske resultater. For Nano-modelversionen fra den 14. april 2025 anbefaler OpenAI specifikt at deaktivere parallelle værktøjskald, fordi modellen kan anmode om samme værktøj flere gange i én samtalerunde. Det er et versionsspecifikt hensyn ved udførelse, ikke en grund til at fortolke flere foreslåede kald som gennemførte handlinger.

Billedinput føjer visuelt kildemateriale til en tekstopgave, eksempelvis læsning af en synlig etiket eller beskrivelse af tilstanden i et skærmbillede. Brug understøttede PNG-, JPEG-, WebP- eller ikke-animerede GIF-billeder, hold teksten læsbar, og forklar, hvilken observation der er vigtig. Vejledningen til billedforståelse nævner vanskeligheder med lille eller roteret tekst, præcise rumlige relationer, optælling af genstande og visse ikke-latinske skriftsystemer. Tilføj omgivende kontekst, hvor en beskæring alene ville gøre en etiket eller et diagram tvetydigt. Nanos eget svar er tekst; et billedgenereringsværktøj returnerer sit eget separate resultat. I OpenAIs dokumenterede arbejdsgang til billedforståelse er den samlede anmodnings nyttelast begrænset til 512 MB, og en anmodning kan indeholde op til 1.500 billeder; billederne og teksten skal også passe ind i modellens kontekst.

I leverandørens filarbejdsgang modtager en model med billedforståelse både udtrukket tekst og sidebilleder fra PDF-dokumenter. Andre dokumentformater bidrager med udtrukket tekst, og berigelse af regneark medtager op til de første 1.000 rækker pr. ark. En fil skal være under 50 MB, og filerne i anmodningen må tilsammen fylde 50 MB. Chat Completions understøtter PDF-fildele, mens den dokumenterede Responses-arbejdsgang accepterer yderligere filtyper. Indlejrede diagrammer i dokumenter, der ikke er PDF-filer, sendes ikke som billedindhold, så en PDF-gengivelse er nyttig, når det visuelle kildemateriale er vigtigt.

OpenAI dokumenterer promptcaching for Nano og Predicted Outputs for GPT-4.1 Nano-serien. Promptcaching genbruger et inputpræfiks, som opfylder betingelserne, i leverandørens tjeneste. Predicted Outputs leverer i stedet stort set kendt outputtekst til en redigering, eksempelvis revision af et dokument eller en kodefil med bevarelse af de uændrede dele. Fremgangsmåden med forudsagt output er rent tekstbaseret og udelukker blandt andet funktionskald, logprobs og max_completion_tokens. Vælg fremgangsmåden til den faktiske handling, og hold resultatet knyttet til den oprindelige kilde.

Leverandøren dokumenterer også superviseret finjustering og direkte præferenceoptimering for Nanos navngivne GPT-4.1-modelversion. Træningseksempler og foretrukne frem for afviste svar tilpasser en model til en tilbagevendende opgave; de er adskilt fra den kontekst, der leveres til en almindelig anmodning. Til et praktisk udtræks- eller klassifikationstrin skal du begynde med tydelige kategorier, eksempler og et udtrykkeligt slutformat og derefter undersøge, om de returnerede felter bevarer de fakta, som næste trin skal bruge.

Ailoot Ultra · Batch POST /v1/batches openai/gpt-4.1-nano:batch

openai/gpt-4.1-nano:batch

OpenAI /openai/gpt-4.1-nano:batch

Start

GPT-4.1 Nano er det kompakte, hurtigt reagerende medlem af GPT-4.1-familien til nøje specificerede tekst- og billedopgaver. Dens store kontekst, Structured Outputs og funktionskald understøtter klassifikation, udtræk og afgrænsede applikationstrin.

Accepterede input
Tekst
Resultater
Tekst

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Batch POST /v1/batches
Inputtyper
text
Outputtyper
text
Outputformat
JSON direkte i results[].response.body
FeltTypeKravVærdier og grænserStandard
FeltendpointTypestringKravPåkrævetVærdier og grænser
/v1/chat/completions
Standard—
FeltmodelTypestringKravPåkrævetVærdier og grænser
openai/gpt-4.1-nano:batch
Standard—
FeltrequestsTypebatch_item[]KravPåkrævetVærdier og grænser
Minimumsantal elementer: 1
Standard—
Feltrequests[].custom_idTypestringKravPåkrævetVærdier og grænserStandard—
Feltrequests[].body.messagesTypemessage[]KravPåkrævetVærdier og grænserStandard—
Feltcompletion_windowTypestringKravValgfritVærdier og grænser
24h
Standard—
FeltproviderTypeobject|nullKravValgfritVærdier og grænserStandard—
Feltrequests[].body.modelTypestringKravValgfritVærdier og grænser
openai/gpt-4.1-nano:batch, openai/gpt-4.1-nano
Standard—
Feltprovider.onlyTypestring[]KravValgfritVærdier og grænser
openai
Standard—
Feltprovider.allow_fallbacksTypeboolean|nullKravValgfritVærdier og grænser
false, null
Standard—
Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktendpoint, model, requests
Parametermaterial_typesKontrakttext
ParameterrepresentationKontraktrequests[] direkte i anmodningen; hvert element har custom_id og body
Parameterrequest_endpoint_profileKontrakt/v1/chat/completions
Parameterfile_materialKontraktDen kaldende part kan læse det faktiske JSONL-indhold i UTF-8 lokalt ind i requests[]. Der angives hverken purpose til upload, input_file_id eller en filreference. Hvis kundematerialet mangler eller er tomt, stoppes forberedelsen før POST.
Parameterserialization_orderKontraktendpoint, model, provider (hvis angivet), completion_window (hvis angivet), requests til sidst
Parameteroptional_controlsKontraktprovider.only, provider.allow_fallbacks, completion_window
Parameterschema_scopeKontraktAnmodningsindhold for Chat Completions med tekst i den dokumenterede inline Batch-struktur.

Livscyklus: asynchronous

GET /v1/batches/{operation_id} · det faktiske response.id fra den oprindelige oprettelse; samme bruger/nøgle/gruppe

Priser

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Ikke angivet Når hurtig tilstand er valgt
flex-tilstand
Ikke angivet Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Priser for eksplicit caching
Ikke aktiveret Når der anmodes om eksplicit caching

Ailoot-takster

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanKonteksttokens, mere endKonteksttokens, op til og medBeløb
KonfigurationGrundtakster for tokensTakstplanGrundtakstKonteksttokens, mere end—Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0001 / 1K tokens
Output · Outputtokens $0.0004 / 1K tokens
Input · Cachelæsning $0.000025 / 1K tokens
Input · Cacheskrivning — / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens
KonfigurationAnmodningslængde · niveau 1Takstplan—Konteksttokens, mere end0Konteksttokens, op til og medIngen øvre grænseBeløb
Input · Inputtokens $0.0001 / 1K tokens
Output · Outputtokens $0.0004 / 1K tokens
Input · Cachelæsning $0.000025 / 1K tokens
Input · Cacheskrivning — / 1K tokens
Input · Cacheskrivning, 1 time — / 1K tokens

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Eksempelanmodninger

Ailoot Ultra · Batch

curl · gemte testdataPython HTTP · kundens faktiske JSONLPython · gem hvert færdigt resultat
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.

Hent og gem resultater

Ailoot Ultra · Batch

JSON direkte i results[].response.body

  • GET /v1/batches/{operation_id}
Kontrollér opgavestatus
curl · Status for den oprindelige handling
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
Behold alle færdige resultater

Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.

Gem hele den oprindelige status i JSON, hvert resultat/custom_id og det fulde svar- eller fejlindhold. Gem færdige results[] som JSONL uden filtrering.

Hvis det oprindelige svar skal kontrolleres

Gem det oprindelige operations-ID. 503 result_pending_check har X-Should-Retry:false; send aldrig en oprindelig batch igen, hvis dens udfald er ukendt.

Svarfelter
FeltType
Feltresults[].custom_idTypestring
Feltresults[].response.body.choices[].message.contentTypestring|null
Feltresults[].errorTypeobject|null
FeltusageTypeobject|null
FeltidTypestring
FeltmodelTypestring
FeltendpointTypestring
FeltstatusTypestring
Feltrequest_countsTypeobject
Feltresults[].idTypestring
Feltresults[].response.status_codeTypeinteger
Feltresults[].response.request_idTypestring
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldig dokumenteret inline-struktur, dublerede nøgler, ugyldig elementidentitet eller konflikt med modellens konfigurerede funktioner.Næste trinRet de angivne felter, før du sender en ny anmodning.
Svar401 · authentication_errorBetingelseUgyldig API-nøgle.Næste trinBrug den godkendte Ailoot-nøgle.
Svar403 · permission_errorBetingelseBatch-gruppen er ikke tilgængelig.Næste trinKontrollér nøglens/gruppens adgangsrettigheder.
Svar422 · invalid_request_errorBetingelseBatch afregnes via saldoen; oprettelse via et abonnement afvises.Næste trinBrug den godkendte gruppe med saldoafregning.
Svar422 · price_unavailableBetingelseDer kan ikke beregnes en pris for Batch-inputtet.Næste trinGem svaret; brug det dokumenterede input for API-familien.
Svar402 · billing_errorBetingelseReservationen til Batch er ikke tilgængelig.Næste trinAfklar adgangen, før du sender en ny anmodning.
Svar503 · price_unavailableBetingelsePrisen for Batch-metoden eller de native satser er ikke tilgængelige.Næste trinGem svaret; erstat ikke priserne med andre priser.
Svar503 · api_errorBetingelseDen præcise leverandørrute er ikke tilgængelig.Næste trinGem svaret, så ruten kan repareres.
Svar503 · result_pending_checkBetingelseDet oprindelige resultat skal kontrolleres; X-Should-Retry:false.Næste trinGem det oprindelige operation_id/id, og læs dets status; gentag aldrig den oprindelige POST.
Svar404 · not_foundBetingelseOperationen til Batch-status findes ikke eller tilhører en anden identitet.Næste trinBrug det nøjagtige oprindelige id og samme bruger/nøgle/gruppe.

Aliaser

Modelaliaser

Ailoot Ultra openai/gpt-4.1-nano:batch

Aliaser for metodestier

Brug metodestierne vist ovenfor.

Relaterede kalder-ID’er

openai/gpt-4.1-nano:batch

FAQ · OpenAI: GPT-4.1 Nano (batch)
Hvilke input og resultater er tilgængelige?

POST /v1/batches · openai/gpt-4.1-nano:batch: text → text

Hvilke felter bruger anmodningen?

POST /v1/batches · openai/gpt-4.1-nano:batch: endpoint, model, requests, completion_window, provider

Hvilke grænser gælder?

POST /v1/batches · openai/gpt-4.1-nano:batch: requests.min_items: 1

Flere oplysninger

Tilslut Ailoot til Claude Code, OpenCode, Hermes eller din egen applikation.

Virksomheden og dens projektportefølje

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Køb tokens med rabat.

Abonnementsrabat til regelmæssigt arbejde. Rabatkoder giver op til 50% på tokenkøb.

Abonnement
Vælg et abonnement med rabat til dine regelmæssige anmodninger.
Rabatkode på op til 50%
Indtast koden ved købet. Prisen genberegnes efter den aktuelle kampagne.
Udgifter i historikken
Model, tokens og beløb gemmes for hver anmodning.

Vælg abonnement · Se modelpriser

Tilslut API’et til produktet, du sælger.

SaaS, apps og bots efter Ailoots tilbudsvilkår og licensaftale. Anmod om en forhandlerlicens til videresalg.

Kommerciel applikation
Byg generering af tekst, billeder, video og lyd ind i tjenestens betalte funktioner.
Licens til forhandlere
Send projektbeskrivelse og adgangsmodel. Bed om skriftlige vilkår for anvendelse og videresalg.
Dokumenter på websitet
Tilbudsvilkår, licensaftale og politik for behandling af data kan læses før tilslutning.

Anmod om forhandlerlicens · Tilbudsvilkår og licensaftale