OpenAI: GPT-4o (batch)
GPT-4o sujungia teksto ir vaizdų supratimą su rašymu, programavimu, Structured Outputs ir programos įrankiais. Naudokite jį duomenimis pagrįstam atsakymui parengti, vaizdinei medžiagai interpretuoti ar apibrėžtiems laukams iš didelio šaltinių rinkinio grąžinti.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
GPT-4o yra universalus OpenAI GPT modelis, skirtas tekstui ir vaizdams suprasti, rašyti bei programų užduotims atlikti. Raidė „o“ reiškia „omni“, o šis dokumentuotas modelis priima tekstą ir vaizdus bei grąžina tekstą, įskaitant Structured Outputs. Praktinėje užklausoje galima sujungti rašytinę užduotį su nuotraukomis, ekrano kopijomis ar dokumentų puslapiais ir prašyti aiškaus paaiškinimo, pataisyto artefakto arba apibrėžtų laukų kitam programos etapui.
Ataskaitai pateikite pradinius dokumentus ir sprendimą, kurį ataskaita turėtų padėti priimti. Nurodykite aktualias datas, vienetus bei duomenų žymas ir paprašykite palyginimo, atskiriančio stebėjimus, prielaidas bei trūkstamą informaciją. Vaizdinei užduočiai nurodykite svarbų objektą, diagramą ar sąsajos būseną ir pateikite aplinkinį kontekstą. Kodo pakeitimui pateikite susijusį kodą, norimą veikimą ir apribojimus, kurie turi išlikti nepakitę. Taip konkrečiai naudojamos modelio teksto ir vaizdų galimybės, nesitikint, kad užklausa savaime apims visą užduotį.
Dabartiniame OpenAI GPT-4o profilyje nurodytas 128 000 žetonų konteksto langas, didžiausia 16 384 žetonų išvestis ir žinių riba — 2023 m. spalio 1 d. Gamintojas kelias datuotas GPT-4o versijas pateikia atskirai. Pokalbis, įvesties medžiaga ir generuojamas atsakymas dalijasi konteksto biudžetu, todėl didelį dokumentų rinkinį vis tiek reikia sutvarkyti ir palikti vietos galutiniam artefaktui. Kintančius faktus ar privačios sistemos turinį reikia pateikti tiesiogiai arba gauti per aiškiai sukonfigūruotą įrankį.
Vaizdų supratimo vadove priimami PNG, JPEG, WebP ir neanimuoti GIF. GPT-4o palaiko low, high ir auto vaizdo detalumo nustatymus; high ir auto naudoja apdorojimą vaizdo dalimis. Padidinkite smulkias etiketes, laikykite tekstą nepasuktą ir interpretuodami diagramą išsaugokite legendą ar aplinkinę schemą. Dokumentuoti apribojimai apima tikslią erdvinę lokalizaciją, apytikslį objektų skaičiavimą, kai kurių ne lotynų rašto sistemų tekstą ir panoraminius ar žuvies akies objektyvu gautus vaizdus. Modelis taip pat gali vaizdą aprašyti klaidingai, todėl išsaugokite šaltinį ir prašykite konkrečių stebėjimų, kuriais grindžiama interpretacija. 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ą.
OpenAI failų įvesties procesas vaizdus suprantančiam modeliui iš PDF pateikia ir išgautą tekstą, ir puslapių vaizdus. Ne PDF formato biuro dokumentai pateikia išgautą tekstą, o ne juose esančias diagramas, o skaičiuoklių duomenys papildomi iš ne daugiau kaip pirmųjų 1 000 kiekvieno lapo eilučių. Kiekvienas failas turi būti mažesnis nei 50 MB, o bendra vienos užklausos failų riba yra 50 MB. Chat Completions palaiko PDF failų dalis; dokumentuotas Responses procesas priima papildomus failų formatus. Jei svarbus vaizdinis tikslumas, rinkitės PDF pateikimą, o rezultate išlaikykite matomus šaltinių identifikatorius.
Srautinis perdavimas gali grąžinti atsakymą dar jo generavimo metu. Structured Outputs apriboja užbaigtą atsakymą palaikomu JSON Schema poaibiu, todėl tinka dokumentų duomenims išgauti ar programos objektui su apibrėžtais laukais sukurti. JSON režimas užtikrina tik JSON galiojimą. Apibrėžkite numatomus tipus, leidžiamas reikšmes ir elgesį, kai nėra patvirtinančių duomenų, o aiškius atsisakymus ar neužbaigtus atsakymus tvarkykite atskirai. Schema nepatvirtina reikšmės faktinio teisingumo, todėl prašomus laukus turi būti galima atsekti iki pateiktos medžiagos.
Gamintojas palaiko funkcijų iškvietimą, paiešką internete ir failuose, kodo vykdymą bei MCP jungtis. Pasirinktinėms funkcijoms reikia prasmingų aprašymų ir argumentų schemų; programa vykdo prašomą veiksmą ir grąžina jo rezultatą kitam modelio žingsniui. GPT-4o taip pat gali valdyti atskirą vaizdų generavimo įrankį sukonfigūruotame Responses procese. Įrankio sukurtas vaizdas yra atskiras artefaktas, o paties GPT-4o dokumentuotas atsakymas yra tekstas. Galutiniame agento paaiškinime turi būti naudojami iš tiesų gauti ar apskaičiuoti stebėjimai, o ne siūlomas įrankio iškvietimas laikomas jau atlikta operacija.
Predicted Outputs prieinama GPT-4o, kai iš naujo generuojamas daugiausia žinomas tekstas ar kodas su nedideliais pakeitimais. Pateikite esamą turinį ir tikslų pakeitimą, tada peržiūrėkite grąžintą artefaktą. Šis tik tekstui skirtas kelias nesuderinamas su funkcijų iškvietimu ir nepalaiko logprobs, max_completion_tokens bei kelių kitų valdiklių. Įrankiais pagrįsta užklausa yra atskiras pasirinkimas, kai atsakymui reikia naujos informacijos iš išorinės operacijos.
OpenAI dokumentuoja GPT-4o papildomą mokymą, o optimizavimo vadove vaizdų papildomam mokymui su vaizdų pavyzdžiais konkrečiai įvardijama 2024 m. rugpjūčio 6 d. versija. Šis konkrečiai versijai skirtas pritaikymo procesas skiriasi nuo įprastos užklausos modelio pseudonimui. Kasdieniam rašymui, analizei ar duomenų išgavimui pradėkite nuo naudingo užduoties aprašo ir pageidaujamos išvesties pavyzdžio. Tolesnis pokalbio žingsnis gali patikslinti vieną trūkstamą faktą, pataisyti lauką ar patobulinti tą patį artefaktą, išsaugant užduoties duomenis ir apribojimus.
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches openai/gpt-4o:batch
openai/gpt-4o:batchPradžia
GPT-4o sujungia teksto ir vaizdų supratimą su rašymu, programavimu, Structured Outputs ir programos įrankiais. Naudokite jį duomenimis pagrįstam atsakymui parengti, vaizdinei medžiagai interpretuoti ar apibrėžtiems laukams iš didelio šaltinių rinkinio grąžinti.
- 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-4o: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-4o:batch, openai/gpt-4o | 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.0025 / 1K tokenų Išvestis · Išvesties tokenai $0.01 / 1K tokenų Įvestis · Talpyklos skaitymas $0.00125 / 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.0025 / 1K tokenų Išvestis · Išvesties tokenai $0.01 / 1K tokenų Įvestis · Talpyklos skaitymas $0.00125 / 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-4o: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-4o:batch', 'openai/gpt-4o']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o: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-4o:batch
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · OpenAI: GPT-4o (batch)
- Kokios įvestys ir rezultatai prieinami?
POST /v1/batches·openai/gpt-4o:batch:text→text- Kokius laukus naudoja užklausa?
POST /v1/batches·openai/gpt-4o:batch:endpoint,model,requests,completion_window,provider- Kokie apribojimai taikomi?
POST /v1/batches·openai/gpt-4o:batch:requests.min_items:1