Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Azure OpenAI Batch API hatékonyan kezeli a nagy léptékű és nagy mennyiségű feldolgozási feladatokat. A kérések aszinkron csoportjait külön kvótával dolgozza fel, és 24 órás célfordulót kínál 50% alacsonyabb költség mellett, mint a globális szabvány. A kötegelt feldolgozással nagy számú kérést küldhet egyetlen fájlba ahelyett, hogy egyszerre egyetlen kérést küldene. A globális kötegelt kérelmek külön sorba állított tokenkvótával rendelkeznek, így az online munkaterheléseket nem zavarják meg.
A kulcshasználati esetek a következők:
Large-Scale adatfeldolgozás: Gyorsan elemezheti a kiterjedt adathalmazokat párhuzamosan.
Tartalomlétrehozás: Hozzon létre nagy mennyiségű szöveget, például termékleírásokat vagy cikkeket.
Dokumentum áttekintése és összegzése: Automatizálhatja a hosszadalmas dokumentumok áttekintését és összegzését.
Ügyfélszolgálati automatizálás: Több lekérdezés egyidejű kezelése a gyorsabb válaszok érdekében.
Adatkinyerés és -elemzés: Adatok kinyerése és elemzése nagy mennyiségű strukturálatlan adatból.
Természetes nyelvi feldolgozással (NLP) kapcsolatos feladatok: Olyan feladatokat hajthat végre, mint a hangulatelemzés vagy a nagy adathalmazok fordítása.
Marketing és személyre szabás: Személyre szabott tartalmak és javaslatok létrehozása nagy méretekben.
Tipp
Ha a kötegfeladatai olyan nagyok, hogy még a telepítéséhez tartozó kvóta teljes kihasználása után is eléri a sorba állítható tokenek korlátját, bizonyos régiók mostantól támogatnak egy új funkciót, amely lehetővé teszi több kötegfeladat sorba állítását exponenciálisan növekvő várakozási idővel.
Miután elérhetővé válik a lekért jogkivonatkvóta, a következő kötegelt feladat automatikusan létrehozható és elindítható. További információ: nagy kötegelt feladatok újrapróbálkozásának automatizálása exponenciális visszalépéssel.
Fontos
A szolgáltatás arra törekszik, hogy a kötegelt kéréseket 24 órán belül feldolgozza, de nem tekinti lejártnak az ennél tovább tartó feladatokat. Bármikor lemondhatja a feladatot. Ha megszakítja a feladatot, a szolgáltatás megszakítja a hátralévő munkát, és visszaadja a már befejezett munkákat. Az elvégzett munkákért fizetnie kell.
A nyugalmi állapotban tárolt adatok a kijelölt Azure-földrajzi területen maradnak, míg az adatok következtetéshez bármely Azure OpenAI-helyen feldolgozhatók. További információ az adatrezidenciáról.
Batch-támogatás
A globális kötegelt modell rendelkezésre állása
| Régió | gpt-5.4-mini, 2026-03-17 | gpt-5.4, 2026-03-05 | gpt-5.1, 2025-11-13 | gpt-5, 2025-08-07 | o3, 2025-04-16 | o4-mini, 2025-04-16 | gpt-4.1, 2025-04-14 | gpt-4.1 nano, 2025-04-14 | gpt-4.1-mini, 2025-04-14 | o3-mini, 2025-01-31 | gpt-4o, 2024-05-13 | gpt-4o, 2024-08-06 | gpt-4o, 2024-11-20 | gpt-4o-mini, 2024-07-18 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| australiaeast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| brazilsouth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Kanadakelet | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| centralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eastus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eastus2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| francecentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Németország Közép-Nyugat | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| japaneast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| koreacentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| northcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| norwayeast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| polandcentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| southafricanorth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| southcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Dél-India | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| swedencentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Észak-Svájc | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| uksouth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westeurope | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westus3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Megjegyzés
Bár a Global Batch támogatja a régebbi API-verziókat, egyes modellekhez újabb API-verziókra van szükség. Például a o3-mini nem támogatott a 2024-10-21-tel, mivel az a dátum után jelent meg. Ha újabb modelleket szeretne elérni a Global Batch használatával, használja a v1 API-t.
Funkciótámogatás
A következő funkciók jelenleg nem támogatottak:
- Integráció az Assistants API-val.
- Integráció Azure OpenAI On Your Data funkcióval.
Tételes üzembe helyezés
Megjegyzés
A Microsoft Foundry portálon a kötegelt üzembe helyezési típusok Global-Batch és Data Zone Batch formában jelennek meg. Az Azure OpenAI üzembe helyezési típusairól további információt a deployment-típusok útmutatójában talál.
Tipp
Javasoljuk, hogy engedélyezze a dinamikus kvótát az összes globális kötegmodell-üzembe helyezéshez, hogy elkerülje a nem megfelelő jogkivonatkvóta miatti feladathibákat. A dinamikus kvóta használata lehetővé teszi, hogy az üzembe helyezés opportunista módon kihasználja a további kvóta előnyeit, ha további kapacitás áll rendelkezésre. Ha a dinamikus kvóta ki van kapcsolva, az üzemelő példány csak az üzembe helyezés létrehozásakor meghatározott lekéréses jogkivonat-korlátig tudja feldolgozni a kéréseket.
Előfeltételek
- Egy Azure-előfizetés – Hozzon létre egyet ingyen.
- Az üzembe helyezési típusú
GlobalBatchvagyDataZoneBatchüzembe helyezett modellel rendelkező erőforrás.
A kötegfájl előkészítése
A finomhangoláshoz hasonlóan a batch JSON-sorok (.jsonl) formátumban is használ fájlokat. Az alábbiakban néhány példafájlt láthat, amelyek különböző típusú támogatott tartalmakat tartalmaznak:
Bemeneti formátum
Responses API (Válaszok API)
{"custom_id": "task-0", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was Microsoft founded, and by whom?"}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was XBOX merged into Microsoft?"}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "What is Visual Basic?"}}
Csevegés befejezése API
{"custom_id": "task-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was Microsoft founded?"}]}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was the first XBOX released?"}]}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "What is Altair Basic?"}]}}
Ez custom_id szükséges ahhoz, hogy megállapíthassa, melyik kötegkérelem felel meg egy adott válasznak. A válaszok nem lesznek azonos sorrendben visszaadva a .jsonl kötegfájlban meghatározott sorrenddel.
model az attribútumot úgy kell beállítani, hogy megfeleljen a következtetési válaszokhoz megcélzott globális Batch-telepítés nevének.
Fontos
Az model attribútumot úgy kell beállítani, hogy megfeleljen annak a globális batch-telepítésnek a nevére, amely a következtetési válaszokra irányul.
A kötegelt fájl minden sorában ugyanazzal a globális Batch-modell üzembehelyezési nevével kell rendelkeznie. Ha másik üzembe helyezést szeretne megcélzni, ezt egy külön kötegfájlban/feladatban kell elvégeznie.
A legjobb teljesítmény érdekében javasoljuk, hogy nagy méretű fájlokat küldjön kötegelt feldolgozásra, nem pedig nagy számú kis fájlt, és csak néhány sort tartalmaz mindegyik fájl.
Bemeneti fájl létrehozása
Ebben a cikkben létrehozunk egy nevű test.jsonl fájlt, és átmásoljuk a fenti szabványos bemeneti kódblokk tartalmát a fájlba. Módosítania kell és hozzá kell adnia a globális kötegtelepítés nevét a fájl minden sorához.
Batch-feladat létrehozása
A bemeneti fájl előkészítése után először fel kell töltenie a fájlt, hogy aztán elindíthasson egy kötegelt feladatot. A fájlfeltöltés programozott módon vagy a Microsoft Foundry portálon keresztül is elvégezhető. Ez a példa bemutatja, hogy közvetlenül feltölt egy fájlt a Azure OpenAI-erőforrásba. Másik lehetőségként konfigurálhatja az Azure Blob Storage-t az Azure OpenAI Batch-hez.
-
Jelentkezzen be Microsoft Foundry. Győződjön meg arról, hogy a New Foundry kapcsoló be van kapcsolva. Ezek a lépések a Foundryre (új) vonatkoznak.
A jobb felső sarokban válassza a Build lehetőséget
A bal oldali panelen válassza a Modellek lehetőséget
Válassza a Batch-feladatokat>, és hozzon létre batch-feladatot
Kötegelt feladat előrehaladásának nyomon követése
A feladat létrehozása után a legutóbb létrehozott feladat feladatazonosítójának kiválasztásával figyelheti a feladat előrehaladását. Alapértelmezés szerint a rendszer a legutóbb létrehozott kötegelt feladat állapotlapjára kerül.
A feladat állapotát a jobb oldali panelen követheti nyomon:
Batch-feladat kimeneti fájlának lekérése
Miután a feladat befejeződött vagy elérte a terminálállapotot, egy hibafájlt és egy kimeneti fájlt hoz létre, amelyet a megfelelő gombra kattintva, a lefelé mutató nyíl ikonnal tölthet le felülvizsgálatra.
Köteg megszakítása
Folyamatban lévő köteg megszakítása. A köteg legfeljebb 10 percig cancelling állapotban lesz, mielőtt cancelled-ra vált, ekkor a részleges eredmények (ha vannak) lesznek elérhetők a kimeneti fájlban.
Előfeltételek
- Egy Azure-előfizetés – Hozzon létre egyet ingyen.
- Python 3.8-es vagy újabb verzió
- A következő Python kódtár:
openai - Jupyter Notebook
- Egy Azure OpenAI-erőforrás, amely üzembe helyezési típusú modellt tartalmaz,
Global-Batchkerült üzembe helyezésre. A folyamattal kapcsolatos segítségért tekintse meg az erőforrás-létrehozási és modelltelepítési útmutatót .
A cikkben szereplő lépések a Jupyter Notebooksban történő szekvenciális futtatásra szolgálnak. Ezért a példák elején csak egyszer fogjuk példányosítani az Azure OpenAI-ügyfelet. Ha egy rendelésen kívüli lépést szeretne futtatni, gyakran be kell állítania egy Azure OpenAI-ügyfelet a hívás részeként.
Még ha már telepítve van az OpenAI Python kódtár, előfordulhat, hogy frissítenie kell a telepítést a legújabb verzióra:
!pip install openai --upgrade
A kötegfájl előkészítése
A finomhangoláshoz hasonlóan a globális köteg JSON-sorok (.jsonl) formátumban is használ fájlokat. Az alábbiakban néhány példafájlt láthat, amelyek különböző típusú támogatott tartalmakat tartalmaznak:
Bemeneti formátum
Responses API (Válaszok API)
{"custom_id": "task-0", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was Microsoft founded, and by whom?"}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was XBOX merged into Microsoft?"}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "What is Visual Basic?"}}
Csevegés befejezése API
{"custom_id": "task-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was Microsoft founded?"}]}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was the first XBOX released?"}]}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "What is Altair Basic?"}]}}
Ez custom_id szükséges ahhoz, hogy megállapíthassa, melyik kötegkérelem felel meg egy adott válasznak. A válaszok nem lesznek azonos sorrendben visszaadva a .jsonl kötegfájlban meghatározott sorrenddel.
model az attribútumot úgy kell beállítani, hogy megfeleljen a következtetési válaszokhoz megcélzott globális Batch-telepítés nevének.
Fontos
Az model attribútumot úgy kell beállítani, hogy megfeleljen annak a globális batch-telepítésnek a nevére, amely a következtetési válaszokra irányul.
A kötegelt fájl minden sorában ugyanazzal a globális Batch-modell üzembehelyezési nevével kell rendelkeznie. Ha másik üzembe helyezést szeretne megcélzni, ezt egy külön kötegfájlban/feladatban kell elvégeznie.
A legjobb teljesítmény érdekében javasoljuk, hogy nagy méretű fájlokat küldjön kötegelt feldolgozásra, nem pedig nagy számú kis fájlt, és csak néhány sort tartalmaz mindegyik fájl.
Bemeneti fájl létrehozása
Ebben a cikkben létrehozunk egy elnevezett test.jsonl fájlt, és átmásoljuk a fenti szabványos bemeneti kódblokk tartalmát a fájlba. Módosítania kell és hozzá kell adnia a globális kötegtelepítés nevét a fájl minden sorához. Mentse a fájlt ugyanabba a könyvtárba, ahol a Jupyter Notebookot futtatja.
Kötegfájl feltöltése
A bemeneti fájl előkészítése után először fel kell töltenie a fájlt, hogy aztán elindíthasson egy kötegelt feladatot. A fájlfeltöltés programozott módon vagy a Microsoft Foundry portálon keresztül is elvégezhető. Ez a példa bemutatja, hogy közvetlenül feltölt egy fájlt a Azure OpenAI-erőforrásba. Másik lehetőségként konfigurálhatja az Azure Blob Storage-t az Azure OpenAI Batch-hez.
import os
from datetime import datetime
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
# Upload a file with a purpose of "batch"
file = client.files.create(
file=open("test.jsonl", "rb"),
purpose="batch",
extra_body={"expires_after":{"seconds": 1209600, "anchor": "created_at"}} # Optional you can set to a number between 1209600-2592000. This is equivalent to 14-30 days
)
print(file.model_dump_json(indent=2))
print(f"File expiration: {datetime.fromtimestamp(file.expires_at) if file.expires_at is not None else 'Not set'}")
file_id = file.id
A(z) expires_after objektum a létrehozását követő 14. napon lejárttá teszi a bemeneti fájlt. A 14–30 napos lejárati idő kiválasztásához állítsa a(z) seconds értékét 1209600 és 2592000 közötti értékre. A lejárat beállítása a bemeneti fájl korlátját is növeli. További részletekért lásd a Batch korlátait.
Kimeneti:
{
"id": "file-655111ec9cfc44489d9af078f08116ef",
"bytes": 176064,
"created_at": 1743391067,
"filename": "test.jsonl",
"object": "file",
"purpose": "batch",
"status": "processed",
"expires_at": 1744600667,
"status_details": null
}
File expiration: 2025-04-13 23:17:47
Batch-feladat létrehozása
Miután sikeresen feltöltötte a fájlt, elküldheti a fájlt kötegelt feldolgozásra.
# Submit a batch job with the file
batch_response = client.batches.create(
input_file_id=file_id,
endpoint="/chat/completions", # While passing this parameter is required, the system will read your input file to determine if the chat completions or responses API is needed.
completion_window="24h",
# extra_body={"output_expires_after":{"seconds": 1209600, "anchor": "created_at"}} # Optional you can set to a number between 1209600-2592000. This is equivalent to 14-30 days
)
# Save batch ID for later use
batch_id = batch_response.id
print(batch_response.model_dump_json(indent=2))
Megjegyzés
A befejezési ablakot jelenleg 24h értékre kell állítani. Ha bármilyen más értéket állít be, mint 24h, a feladat sikertelen lesz. A 24 óránál hosszabb ideig tartó feladatok végrehajtása a megszakításig folytatódik.
Kimeneti:
{
"id": "batch_6caaf24d-54a5-46be-b1b7-518884fcbdde",
"completion_window": "24h",
"created_at": 1722476583,
"endpoint": null,
"input_file_id": "file-655111ec9cfc44489d9af078f08116ef",
"object": "batch",
"status": "validating",
"cancelled_at": null,
"cancelling_at": null,
"completed_at": null,
"error_file_id": null,
"errors": null,
"expired_at": null,
"expires_at": 1722562983,
"failed_at": null,
"finalizing_at": null,
"in_progress_at": null,
"metadata": null,
"output_file_id": null,
"request_counts": {
"completed": 0,
"failed": 0,
"total": 0
}
}
Ha a kötegfeladatok olyan nagyok, hogy az üzembe helyezés kvótájának maximális kihasználása után is eléri a várakozó jogkivonat korlátját, bizonyos régiók mostantól támogatnak egy új gyors hibakezelés funkciót, amely lehetővé teszi több kötegelt feladat várólistára helyezését exponenciális visszavonulással, így amikor egy nagy kötegelt feladat befejeződik, a következő automatikusan elindítható. Ha többet szeretne megtudni arról, hogy mely régiók támogatják ezt a funkciót, és hogyan alakíthatja át a kódot annak előnyeihez, tekintse meg a kötegelt feladatok sorba állítását.
Kötegelt feladat előrehaladásának nyomon követése
Miután sikeresen létrehozta a batch-feladatot, monitorozhatja annak állapotát a Studióban vagy programozott módon. A kötegelt feladat előrehaladásának ellenőrzésekor javasoljuk, hogy minden állapothívás között legalább 60 másodpercet várjon.
import time
import datetime
status = "validating"
while status not in ("completed", "failed", "canceled"):
time.sleep(60)
batch_response = client.batches.retrieve(batch_id)
status = batch_response.status
print(f"{datetime.datetime.now()} Batch Id: {batch_id}, Status: {status}")
if batch_response.status == "failed":
for error in batch_response.errors.data:
print(f"Error code {error.code} Message {error.message}")
Kimeneti:
2024-07-31 21:48:32.556488 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: validating
2024-07-31 21:49:39.221560 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: in_progress
2024-07-31 21:50:53.383138 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: in_progress
2024-07-31 21:52:07.274570 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: in_progress
2024-07-31 21:53:21.149501 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: finalizing
2024-07-31 21:54:34.572508 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: finalizing
2024-07-31 21:55:35.304713 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: finalizing
2024-07-31 21:56:36.531816 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: finalizing
2024-07-31 21:57:37.414105 Batch Id: batch_6caaf24d-54a5-46be-b1b7-518884fcbdde, Status: completed
A következő állapotértékek lehetségesek:
| Állapot | Leírás |
|---|---|
validating |
A bemeneti fájl ellenőrzése még a kötegfeldolgozás megkezdése előtt megtörténik. |
failed |
A bemeneti fájl nem felelt meg az érvényesítési folyamatnak. |
in_progress |
A bemeneti fájl ellenőrzése sikeresen megtörtént, és a köteg jelenleg fut. |
finalizing |
A köteg befejeződött, és az eredmények előkészítése folyamatban van. |
completed |
A köteg elkészült, és az eredmények készen állnak. |
expired |
A feladat nem készült el a 24 órás időkereten belül. |
cancelling |
A feldolgozás alatt cancelled van (A hatályba lépése akár 10 percet is igénybe vehet.) |
cancelled |
a tétel volt cancelled. |
A futtatható feladat állapotadatainak vizsgálatához:
print(batch_response.model_dump_json(indent=2))
Kimeneti:
{
"id": "batch_6caaf24d-54a5-46be-b1b7-518884fcbdde",
"completion_window": "24h",
"created_at": 1722476583,
"endpoint": null,
"input_file_id": "file-9f3a81d899b4442f98b640e4bc3535dd",
"object": "batch",
"status": "completed",
"cancelled_at": null,
"cancelling_at": null,
"completed_at": 1722477429,
"error_file_id": "file-c795ae52-3ba7-417d-86ec-07eebca57d0b",
"errors": null,
"expired_at": null,
"expires_at": 1722562983,
"failed_at": null,
"finalizing_at": 1722477177,
"in_progress_at": null,
"metadata": null,
"output_file_id": "file-3304e310-3b39-4e34-9f1c-e1c1504b2b2a",
"request_counts": {
"completed": 3,
"failed": 0,
"total": 3
}
}
Figyelje meg, hogy mindkettő error_file_id és külön output_file_id is van.
error_file_id A segítségével hibakeresési segítséget nyújthat a kötegelt feladattal kapcsolatos problémák elhárításához.
Batch-feladat kimeneti fájlának lekérése
import json
output_file_id = batch_response.output_file_id
if not output_file_id:
output_file_id = batch_response.error_file_id
if output_file_id:
file_response = client.files.content(output_file_id)
raw_responses = file_response.text.strip().split('\n')
for raw_response in raw_responses:
json_response = json.loads(raw_response)
formatted_json = json.dumps(json_response, indent=2)
print(formatted_json)
Kimeneti:
A rövidség kedvéért csak a kimenet egyetlen csevegés-befejezési válaszát vesszük figyelembe. Ha a cikkben leírt lépéseket követi, három, az alábbihoz hasonló válasznak kell lennie:
Csevegés befejezése
{
"custom_id": "task-0",
"response": {
"body": {
"choices": [
{
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
},
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "Microsoft was founded on April 4, 1975, by Bill Gates and Paul Allen in Albuquerque, New Mexico.",
"role": "assistant"
}
}
],
"created": 1722477079,
"id": "chatcmpl-9rFGJ9dh08Tw9WRKqaEHwrkqRa4DJ",
"model": "gpt-4o-2024-05-13",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"system_fingerprint": "fp_a9bfe9d51d",
"usage": {
"completion_tokens": 24,
"prompt_tokens": 27,
"total_tokens": 51
}
},
"request_id": "660b7424-b648-4b67-addc-862ba067d442",
"status_code": 200
},
"error": null
}
Responses API (Válaszok API)
{
"custom_id": "task-0",
"response": {
"body": {
"id": "resp_0e5c78eb05ee70cf00690cc6d988e4819587556df17436a206",
"created_at": 1762445017.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"model": "gpt-4.1-batch",
"object": "response",
"output": [
{
"id": "msg_0e5c78eb05ee70cf00690cc6da3c548195aae483031113df16",
"content": [
{
"annotations": [],
"text": "Microsoft was founded on **April 4, 1975** by **Bill Gates** and **Paul Allen**.",
"type": "output_text",
"logprobs": []
}
],
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"temperature": 1.0,
"tool_choice": "auto",
"tools": [],
"top_p": 1.0,
"background": false,
"max_output_tokens": null,
"max_tool_calls": null,
"previous_response_id": null,
"prompt_cache_key": null,
"reasoning": {
"effort": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"status": "completed",
"text": {
"format": {
"type": "text"
},
"verbosity": "medium"
},
"top_logprobs": 0,
"truncation": "disabled",
"usage": {
"input_tokens": 16,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 41
},
"user": null,
"content_filters": null,
"store": true
},
"request_id": "809b30c2-fa0b-4613-b5cc-c30f6b780c9a",
"status_code": 200
},
"error": null
}
További kötegparancsok
Köteg megszakítása
Folyamatban lévő köteg megszakítása. A köteg legfeljebb 10 percig cancelling állapotban lesz, mielőtt cancelled-ra vált, ekkor a részleges eredmények (ha vannak) lesznek elérhetők a kimeneti fájlban.
client.batches.cancel("batch_abc123") # set to your batch_id for the job you want to cancel
Kötegek listázása
Kötegelt feladatok listázása egy adott Azure OpenAI-erőforráshoz.
client.batches.list()
A Python könyvtárban található lista metódusok oldalra bontva vannak.
Az összes feladat listázása:
all_jobs = []
# Automatically fetches more pages as needed.
for job in client.batches.list(
limit=20,
):
# Do something with job here
all_jobs.append(job)
print(all_jobs)
Lista köteg (előzetes verzió)
A REST API-val további rendezési/szűrési lehetőségekkel listázhatja az összes kötegelt feladatot.
Az alábbi példákban biztosítjuk a generate_time_filter függvényt, hogy megkönnyítsük a szűrő összeállítását. Ha nem szeretné használni ezt a függvényt, a szűrősztring formátuma a következőképpen created_at gt 1728860560 and status eq 'Completed'nézne ki.
import requests
import json
from datetime import datetime, timedelta
from azure.identity import DefaultAzureCredential
token_credential = DefaultAzureCredential()
token = token_credential.get_token('https://ai.azure.com/.default')
endpoint = "https://{YOUR_RESOURCE_NAME}.openai.azure.com/"
api_version = "2025-03-01-preview"
url = f"{endpoint}openai/batches"
order = "created_at asc"
time_filter = lambda: generate_time_filter("past 8 hours")
# Additional filter examples:
#time_filter = lambda: generate_time_filter("past 1 day")
#time_filter = lambda: generate_time_filter("past 3 days", status="Completed")
def generate_time_filter(time_range, status=None):
now = datetime.now()
if 'day' in time_range:
days = int(time_range.split()[1])
start_time = now - timedelta(days=days)
elif 'hour' in time_range:
hours = int(time_range.split()[1])
start_time = now - timedelta(hours=hours)
else:
raise ValueError("Invalid time range format. Use 'past X day(s)' or 'past X hour(s)'")
start_timestamp = int(start_time.timestamp())
filter_string = f"created_at gt {start_timestamp}"
if status:
filter_string += f" and status eq '{status}'"
return filter_string
filter = time_filter()
headers = {'Authorization': 'Bearer ' + token.token}
params = {
"api-version": api_version,
"$filter": filter,
"$orderby": order
}
response = requests.get(url, headers=headers, params=params)
json_data = response.json()
if response.status_code == 200:
print(json.dumps(json_data, indent=2))
else:
print(f"Request failed with status code: {response.status_code}")
print(response.text)
Kimeneti:
{
"data": [
{
"cancelled_at": null,
"cancelling_at": null,
"completed_at": 1729011896,
"completion_window": "24h",
"created_at": 1729011128,
"error_file_id": "file-472c0626-4561-4327-9e4e-f41afbfb30e6",
"expired_at": null,
"expires_at": 1729097528,
"failed_at": null,
"finalizing_at": 1729011805,
"id": "batch_4ddc7b60-19a9-419b-8b93-b9a3274b33b5",
"in_progress_at": 1729011493,
"input_file_id": "file-f89384af0082485da43cb26b49dc25ce",
"errors": null,
"metadata": null,
"object": "batch",
"output_file_id": "file-62bebde8-e767-4cd3-a0a1-28b214dc8974",
"request_counts": {
"total": 3,
"completed": 2,
"failed": 1
},
"status": "completed",
"endpoint": "/chat/completions"
},
{
"cancelled_at": null,
"cancelling_at": null,
"completed_at": 1729016366,
"completion_window": "24h",
"created_at": 1729015829,
"error_file_id": "file-85ae1971-9957-4511-9eb4-4cc9f708b904",
"expired_at": null,
"expires_at": 1729102229,
"failed_at": null,
"finalizing_at": 1729016272,
"id": "batch_6287485f-50fc-4efa-bcc5-b86690037f43",
"in_progress_at": 1729016126,
"input_file_id": "file-686746fcb6bc47f495250191ffa8a28e",
"errors": null,
"metadata": null,
"object": "batch",
"output_file_id": "file-04399828-ae0b-4825-9b49-8976778918cb",
"request_counts": {
"total": 3,
"completed": 2,
"failed": 1
},
"status": "completed",
"endpoint": "/chat/completions"
}
],
"first_id": "batch_4ddc7b60-19a9-419b-8b93-b9a3274b33b5",
"has_more": false,
"last_id": "batch_6287485f-50fc-4efa-bcc5-b86690037f43"
}
Kötegelt feladatok várólistára helyezése
Ha a kötegfeladatok olyan nagyok, hogy az üzembe helyezés során a kvótát maximálisan kihasználva is eléri a sorba állított token korlátját, bizonyos régiók mostantól támogatnak egy új, gyors hibakezelési funkciót, amely lehetővé teszi több kötegelt feladat várólistára helyezését exponenciálisan növekvő késleltetéssel. Miután egy nagy kötegelt feladat befejeződik, és a várólistás token kvóta ismét elérhetővé válik, a következő kötegelt feladat automatikusan létrehozható és elindítható.
Régi viselkedés:
- A nagy Batch-feladatok már futnak, és az üzembe helyezéshez rendelkezésre álló összes jogkivonatot használják.
- Új csoportos feladat beadva.
- Az új batch feladat a validációs fázisba kerül, amely akár néhány percig is eltarthat.
- Az új munka tokenmennyiségét a jelenleg elérhető kvótával vetik össze.
- Az új kötegelt feladat meghiúsul, mert túllépte a hibajelentési token korlátját.
Új viselkedés:
- A nagy Batch-feladatok már futnak, és az üzembe helyezéshez rendelkezésre álló összes jogkivonatot használják
- Új kötegelt feladat elküldve
- A jelenleg elérhető kötegkvóta-feladathoz képest azonnal összehasonlított új feladat hozzávetőleges tokenszáma gyorsan meghiúsul, így könnyebben kezelheti az újrapróbálkozásokat programozott módon.
Régiótámogatás
A következő régiók támogatják az új, gyors hiba kezelést:
- australiaeast
- eastus
- Németország Közép-Nyugat
- italynorth
- northcentralus
- polandcentral
- swedencentral
- Észak-Svájc
- eastus2
- westus
Az alábbi kód bemutatja a hibagyors működés kezelésének alapvető mechanikáit, amelyek lehetővé teszik az újrapróbálkozások és a kötegelt feladatok sorba állításának exponenciális hátratétellel történő automatizálását.
A kötegelt feladatok méretétől függően szükség lehet a max_retries jelentős növelésére vagy a példa további módosítására.
import time
from openai import BadRequestError
max_retries = 10
retries = 0
initial_delay = 5
delay = initial_delay
while True:
try:
batch_response = client.batches.create(
input_file_id=file_id,
endpoint="/chat/completions",
completion_window="24h",
)
# Save batch ID for later use
batch_id = batch_response.id
print(f"✅ Batch created successfully after {retries} retries")
print(batch_response.model_dump_json(indent=2))
break
except BadRequestError as e:
error_message = str(e)
# Check if it's a token limit error
if 'token_limit_exceeded' in error_message:
retries += 1
if retries >= max_retries:
print(f"❌ Maximum retries ({max_retries}) reached. Giving up.")
raise
print(f"⏳ Token limit exceeded. Waiting {delay} seconds before retry {retries}/{max_retries}...")
time.sleep(delay)
# Exponential backoff - increase delay for next attempt
delay *= 2
else:
# If it's a different error, raise it immediately
print(f"❌ Encountered non-token limit error: {error_message}")
raise
Kimeneti:
⏳ Token limit exceeded. Waiting 5 seconds before retry 1/10...
⏳ Token limit exceeded. Waiting 10 seconds before retry 2/10...
⏳ Token limit exceeded. Waiting 20 seconds before retry 3/10...
⏳ Token limit exceeded. Waiting 40 seconds before retry 4/10...
⏳ Token limit exceeded. Waiting 80 seconds before retry 5/10...
⏳ Token limit exceeded. Waiting 160 seconds before retry 6/10...
⏳ Token limit exceeded. Waiting 320 seconds before retry 7/10...
✅ Batch created successfully after 7 retries
{
"id": "batch_1e1e7b9f-d4b4-41fa-bd2e-8d2ec50fb8cc",
"completion_window": "24h",
"created_at": 1744402048,
"endpoint": "/chat/completions",
"input_file_id": "file-e2ba4ccaa4a348e0976c6fe3c018ea92",
"object": "batch",
"status": "validating",
"cancelled_at": null,
"cancelling_at": null,
"completed_at": null,
"error_file_id": "",
"errors": null,
"expired_at": null,
"expires_at": 1744488444,
"failed_at": null,
"finalizing_at": null,
"in_progress_at": null,
"metadata": null,
"output_file_id": "",
"request_counts": {
"completed": 0,
"failed": 0,
"total": 0
}
}
Előfeltételek
- Egy Azure-előfizetés – Hozzon létre egyet ingyen.
- Egy Azure OpenAI-erőforrás, amely üzembe helyezési típusú modellt tartalmaz,
Global-Batchkerült üzembe helyezésre. A folyamattal kapcsolatos segítségért tekintse meg az erőforrás-létrehozási és modelltelepítési útmutatót .
A kötegfájl előkészítése
A finomhangoláshoz hasonlóan a globális köteg JSON-sorok (.jsonl) formátumban is használ fájlokat. Az alábbiakban néhány példafájlt láthat, amelyek különböző típusú támogatott tartalmakat tartalmaznak:
Bemeneti formátum
Responses API (Válaszok API)
{"custom_id": "task-0", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was Microsoft founded, and by whom?"}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "When was XBOX merged into Microsoft?"}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/responses", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "input": "What is Visual Basic?"}}
Csevegés befejezése API
{"custom_id": "task-0", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was Microsoft founded?"}]}}
{"custom_id": "task-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "When was the first XBOX released?"}]}}
{"custom_id": "task-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "REPLACE-WITH-MODEL-DEPLOYMENT-NAME", "messages": [{"role": "system", "content": "You are an AI assistant that helps people find information."}, {"role": "user", "content": "What is Altair Basic?"}]}}
Ez custom_id szükséges ahhoz, hogy megállapíthassa, melyik kötegkérelem felel meg egy adott válasznak. A válaszok nem lesznek azonos sorrendben visszaadva a .jsonl kötegfájlban meghatározott sorrenddel.
model az attribútumot úgy kell beállítani, hogy megfeleljen a következtetési válaszokhoz megcélzott globális Batch-telepítés nevének.
Fontos
Az model attribútumot úgy kell beállítani, hogy megfeleljen annak a globális batch-telepítésnek a nevére, amely a következtetési válaszokra irányul.
A kötegelt fájl minden sorában ugyanazzal a globális Batch-modell üzembehelyezési nevével kell rendelkeznie. Ha másik üzembe helyezést szeretne megcélzni, ezt egy külön kötegfájlban/feladatban kell elvégeznie.
A legjobb teljesítmény érdekében javasoljuk, hogy nagy méretű fájlokat küldjön kötegelt feldolgozásra, nem pedig nagy számú kis fájlt, és csak néhány sort tartalmaz mindegyik fájl.
Bemeneti fájl létrehozása
Ebben a cikkben létrehozunk egy elnevezett test.jsonl fájlt, és átmásoljuk a fenti szabványos bemeneti kódblokk tartalmát a fájlba. Módosítania kell és hozzá kell adnia a globális kötegtelepítés nevét a fájl minden sorához.
Kötegfájl feltöltése
A bemeneti fájl előkészítése után először fel kell töltenie a fájlt, hogy aztán elindíthasson egy kötegelt feladatot. A fájlfeltöltés programozott módon vagy a Microsoft Foundry portálon keresztül is elvégezhető. Ez a példa bemutatja, hogy közvetlenül feltölt egy fájlt a Azure OpenAI-erőforrásba. Másik lehetőségként konfigurálhatja az Azure Blob Storage-t az Azure OpenAI Batch-hez.
Fontos
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. Ha API-kulcsot használ, tárolja azt biztonságosan az Azure Key Vault-ban. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok Azure Key Vault.
További információ az AI-szolgáltatások biztonságáról, olvassa el az Azure AI-szolgáltatások kéréseinek hitelesítése című részt.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/files \
-H "Content-Type: multipart/form-data" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-F "purpose=batch" \
-F "file=@C:\\batch\\test.jsonl;type=application/json" \
-F "expires_after.seconds=1209600" \
-F "expires_after.anchor=created_at"
A fenti kód egy adott fájl elérési útját feltételezi a test.jsonl fájlhoz. Módosítsa ezt a fájl elérési útját a helyi rendszer számára szükséges módon.
Az opcionális expires_after.seconds és expires_after.anchor a paraméterek úgy állítják be a bemeneti fájlt, hogy a létrehozás után 14 nappal lejárjon. A 14 és 30 nap közötti lejárati időszak kiválasztásához állítsa a(z) expires_after.seconds értékét 1209600 és 2592000 közötti értékre. A lejárati dátum beállítása a bemeneti fájl korlátját is növeli. További részletekért lásd a Batch korlátait.
Kimeneti:
{
"status": "processed",
"bytes": 817,
"purpose": "batch",
"filename": "test.jsonl",
"expires_at": 1744607747,
"id": "file-7733bc35e32841e297a62a9ee50b3461",
"created_at": 1743398147,
"object": "file"
}
Fájlfeltöltés állapotának nyomon követése
A feltöltési fájl méretétől függően eltarthat egy ideig, amíg a fájl teljesen fel lesz töltve és feldolgozva. A fájlfeltöltés állapotának ellenőrzéséhez futtassa a következőt:
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/files/{file-id} \
-H "api-key: $AZURE_OPENAI_API_KEY"
Kimeneti:
{
"status": "processed",
"bytes": 686,
"purpose": "batch",
"filename": "test.jsonl",
"expires_at": 1744607747,
"id": "file-7733bc35e32841e297a62a9ee50b3461",
"created_at": 1721408291,
"object": "file"
}
Batch-feladat létrehozása
Miután sikeresen feltöltötte a fájlt, elküldheti a fájlt kötegelt feldolgozásra.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_file_id": "file-abc123",
"endpoint": "/chat/completions",
"completion_window": "24h",
"output_expires_after": {
"anchor": "created_at",
"seconds": 1209600
}
}'
Az opcionális output_expires_after objektum úgy állítja be a kimeneti fájlokat, hogy a létrehozásuk után 14 nappal lejárjanak. A 14 és 30 nap közötti lejárati idő kiválasztásához állítsa a seconds értékét 1209600 és 2592000 közötti értékre. Az anchor értéknek meg kell lennie created_at.
Megjegyzés
A befejezési ablakot jelenleg 24h értékre kell állítani. Ha bármilyen más értéket állít be, mint 24h, a feladat sikertelen lesz. A 24 óránál hosszabb ideig tartó feladatok végrehajtása a megszakításig folytatódik.
Kimeneti:
{
"cancelled_at": null,
"cancelling_at": null,
"completed_at": null,
"completion_window": "24h",
"created_at": "2024-07-19T17:13:57.2491382+00:00",
"error_file_id": null,
"expired_at": null,
"expires_at": "2024-07-20T17:13:57.1918498+00:00",
"failed_at": null,
"finalizing_at": null,
"id": "batch_fe3f047a-de39-4068-9008-346795bfc1db",
"in_progress_at": null,
"input_file_id": "file-21006e70789246658b86a1fc205899a4",
"errors": null,
"metadata": null,
"object": "batch",
"output_file_id": null,
"request_counts": {
"total": null,
"completed": null,
"failed": null
},
"status": "Validating"
}
Kötegelt feladat előrehaladásának nyomon követése
Miután sikeresen létrehozta a batch-feladatot, monitorozhatja annak állapotát a Studióban vagy programozott módon. A kötegelt feladat előrehaladásának ellenőrzésekor javasoljuk, hogy minden állapothívás között legalább 60 másodpercet várjon.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches/{batch_id} \
-H "api-key: $AZURE_OPENAI_API_KEY"
Kimeneti:
{
"cancelled_at": null,
"cancelling_at": null,
"completed_at": null,
"completion_window": "24h",
"created_at": "2024-07-19T17:33:29.1619286+00:00",
"error_file_id": null,
"expired_at": null,
"expires_at": "2024-07-20T17:33:29.1578141+00:00",
"failed_at": null,
"finalizing_at": null,
"id": "batch_e0a7ee28-82c4-46a2-a3a0-c13b3c4e390b",
"in_progress_at": null,
"input_file_id": "file-c55ec4e859d54738a313d767718a2ac5",
"errors": null,
"metadata": null,
"object": "batch",
"output_file_id": null,
"request_counts": {
"total": null,
"completed": null,
"failed": null
},
"status": "Validating"
}
A következő állapotértékek lehetségesek:
| Állapot | Leírás |
|---|---|
validating |
A bemeneti fájl ellenőrzése még a kötegfeldolgozás megkezdése előtt megtörténik. |
failed |
A bemeneti fájl nem felelt meg az érvényesítési folyamatnak. |
in_progress |
A bemeneti fájl ellenőrzése sikeresen megtörtént, és a köteg jelenleg fut. |
finalizing |
A köteg befejeződött, és az eredmények előkészítése folyamatban van. |
completed |
A köteg elkészült, és az eredmények készen állnak. |
expired |
A feladat nem készült el a 24 órás időkereten belül. |
cancelling |
A köteg feldolgozás alatt cancelled van (Ez akár 10 percet is igénybe vehet, hogy hatályba lépjen.) |
cancelled |
a tétel volt cancelled. |
Batch-feladat kimeneti fájlának lekérése
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/files/{output_file_id}/content \
-H "api-key: $AZURE_OPENAI_API_KEY" > batch_output.jsonl
További kötegparancsok
Köteg megszakítása
Folyamatban lévő köteg megszakítása. A köteg legfeljebb 10 percig cancelling állapotban lesz, mielőtt cancelled-ra vált, ekkor a részleges eredmények (ha vannak) lesznek elérhetők a kimeneti fájlban.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches/{batch_id}/cancel \
-H "api-key: $AZURE_OPENAI_API_KEY"
Kötegek listázása
Egy adott Azure OpenAI-erőforrás meglévő kötegelt feladatainak listázása.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches \
-H "api-key: $AZURE_OPENAI_API_KEY"
Az API-hívás listája lapozható. A válasz tartalmaz egy logikai has_more értéket, amely jelzi, hogy mikor van több eredmény az iterációhoz.
Lista köteg (előzetes verzió)
A REST API-val további rendezési/szűrési lehetőségekkel listázhatja az összes kötegelt feladatot.
curl "YOUR_RESOURCE_NAME.openai.azure.com/batches?api-version=2025-04-01-preview&$filter=created_at%20gt%201728773533%20and%20created_at%20lt%201729032733%20and%20status%20eq%20'Completed'&$orderby=created_at%20asc" \
-H "api-key: $AZURE_OPENAI_API_KEY"
Az URL rejected: Malformed input to a URL function helyeken található szóközök %20-re cserélése elkerüli a hibát.
Kötegkorlátok
| Korlát megnevezés | Korlátérték |
|---|---|
| Kötegbemeneti fájlok maximális száma (lejárat nélkül) | 500 |
| Kötegelt bemeneti fájlok maximális száma (lejárat beállítva) | 10 000 |
| Bemeneti fájl maximális mérete | 200 MB |
| A bemeneti fájl maximális mérete – Saját tároló használata (BYOS) | 1 GB |
| Fájlonkénti kérelmek maximális száma | 100,000 |
Megjegyzés
Állítsa be a bemeneti fájlok lejáratát az erőforrásonkénti korlát növeléséhez és a tárolt fájlok kezeléséhez. A kötegbemeneti fájlkorlátok nem vonatkoznak a kimeneti fájlokra, például result.jsonl a .error.jsonl A Files API bemenetifájl-korlátainak elkerülése érdekében használja a Batch with Azure Blob Storage lehetőséget.
Kötegkvóta
A táblázat a kötegkvótakorlátot mutatja. A globális batch kvótaértékei sorba állított tokenek szempontjából jelennek meg. Amikor kötegelt feldolgozás céljából beküld egy fájlt, a rendszer megszámolja a fájlban lévő tokenek számát. Amíg a kötegfeladat el nem éri a terminálállapotot, ezek a jogkivonatok a teljes lekérdezett jogkivonat-korláttal számolnak.
Globális tétel
| Modell | Nagyvállalati és MCA-E | Alapértelmezett | Havi hitelkártya-alapú előfizetések | MSDN-előfizetések | Azure diákoknak, ingyenes próbaverziók |
|---|---|---|---|---|---|
gpt-4.1 |
5B | 200 millió | 50M | 90K | N/A |
gpt-4.1 mini |
15B | 1B | 50M | 90K | N/A |
gpt-4.1-nano |
15B | 1B | 50M | 90K | N/A |
gpt-4o |
5B | 200 millió | 50M | 90K | N/A |
gpt-4o-mini |
15B | 1B | 50M | 90K | N/A |
gpt-4-turbo |
300 millió | 80M | 40M | 90K | N/A |
gpt-4 |
150 millió | 30M | 5M | 100K | N/A |
o3-mini |
15B | 1B | 50M | 90K | N/A |
o4-mini |
15B | 1B | 50M | 90K | N/A |
gpt-5 |
5B | 200 millió | 50M | 90K | N/A |
gpt-5.1 |
5B | 200 millió | 50M | 90K | N/A |
gpt-5.2 |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.4 |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.4-mini |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.4-nano |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.5 |
5B | 200 millió | 50M | 90K | N/A |
B = milliárd | M = millió | K = ezer
Adatzóna köteg
| Modell | Nagyvállalati és MCA-E | Alapértelmezett | Havi hitelkártya-alapú előfizetések | MSDN-előfizetések | Azure diákoknak, ingyenes próbaverziók |
|---|---|---|---|---|---|
gpt-4.1 |
500 millió | 30M | 30M | 90K | N/A |
gpt-4.1-mini |
1,5B | 100 millió | 50M | 90K | N/A |
gpt-4o |
500 millió | 30M | 30M | 90K | N/A |
gpt-4o-mini |
1,5B | 100 millió | 50M | 90K | N/A |
o3-mini |
1,5B | 100 millió | 50M | 90K | N/A |
gpt-5 |
5B | 200 millió | 50M | 90K | N/A |
gpt-5.1 |
5B | 200 millió | 50M | 90K | N/A |
gpt-5.4 |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.4-mini |
5B | 200 millió | 50M | N/A | N/A |
gpt-5.5 |
5B | 200 millió | 50M | 90K | N/A |
Kötegelt feladat rekordjainak megőrzése
A batch-feladatrekordok legfeljebb 365 napig maradnak meg, miután a feladat elérte a terminálállapotot, például completed: , expiredfailedvagy cancelled. Ez idő alatt listázhatja és lekérdezheti a feladatot, illetve megszakíthatja, ha az még megszakítható állapotban van.
A létrehozott kimeneti és hibafájlok nem rendelkeznek alapértelmezett lejárati idővel. Ezek mindaddig elérhetők maradnak, amíg ön nem törli őket, vagy nem állít be explicit lejárati dátumot. Állítsa be a expires_after értéket, amikor feltölt egy bemeneti fájlt, vagy a output_expires_after értéket, amikor kötegelt feladatot hoz létre. Mindkét explicit lejárati beállítás 14–30 napot fogad el, és horgonyként használható created_at . Példaként tekintse meg a Batch-fájl feltöltése és a Kötegelt feladat létrehozása szakaszt a Python vagy a REST API lapon.
Batch-objektum
| Tulajdonság | Típus | Meghatározás |
|---|---|---|
id |
karakterlánc | A köteg azonosítója. |
object |
karakterlánc | batch |
endpoint |
karakterlánc | Az API végpont, amelyet a batch használ. |
errors |
objektum | Hibainformációk a tételhez, amennyiben vannak ilyenek. |
input_file_id |
karakterlánc | A bemeneti fájl azonosítója a batchhez. |
completion_window |
karakterlánc | A köteg feldolgozásának célideje. Ezt az értéket jelenleg a következőre kell állítania 24h: . A 24 órán belüli befejezés nem garantált, és a feladat addig folytatódhat, amíg be nem fejeződik, vagy ön megszakítja azt. |
status |
karakterlánc | A köteg aktuális állapota. Lehetséges értékek: validating, failed, in_progress, finalizing, completedexpired, , cancellingcancelled. |
output_file_id |
karakterlánc | A sikeresen végrehajtott kérések kimeneteit tartalmazó fájl azonosítója. |
error_file_id |
karakterlánc | A hibákkal rendelkező kérések kimeneteit tartalmazó fájl azonosítója. |
created_at |
egész szám | Időbélyeg a köteg létrehozásakor (Unix epoch másodpercben). |
in_progress_at |
egész szám | Időbélyeg, amikor ez a feladatcsomag elindult (Unix idő másodperc formátumban). |
expires_at |
egész szám | Időbélyeg, amikor ez a csomag lejár (Unix epoch másodpercben). |
finalizing_at |
egész szám | Időbélyeg, amikor ez az adag megkezdte a véglegesítést (Unix epoch másodpercben). |
completed_at |
egész szám | "Egy időbélyeg, amikor ez a csomag befejeződött (Unix-epoch másodpercben)." |
failed_at |
egész szám | Időbélyeg, amikor ez a munkafolyamat meghiúsult (Unix időbélyeg másodpercben). |
expired_at |
egész szám | Időbélyeg, amikor ez a csomag lejárt (Unix idő másodpercben). |
cancelling_at |
egész szám | Időbélyeg, amikor a feldolgozási folyamat elindult cancelling (Unix epoch másodpercekben). |
cancelled_at |
egész szám | Időbélyeg (Unix-korszak másodpercben), amikor ez a köteg cancelled volt. |
request_counts |
objektum | Objektumstruktúra:total
Egész szám A kötegben lévő kérelmek teljes száma. completed
Egész szám A kötegben sikeresen befejezett kérelmek száma. failed
Egész szám A kötegben meghiúsult kérelmek száma. |
metadata |
leképez | Kulcs-érték párok készlete, amelyeket a köteghez csatolhat. Ez a tulajdonság hasznos lehet a köteg további információinak strukturált formátumban való tárolásához. |
Gyakori kérdések (GYIK)
Használhatók képek a batch API-val?
Ez a képesség bizonyos multimodális modellekre korlátozódik. A képeket bemenetként a kép URL-címén vagy a kép base64 kódolású ábrázolásán keresztül is megadhatja.
Használhatom a batch API-t finomhangolt modellekkel?
A batch API jelenleg nem támogatja a finomhangolt modelleket.
Használhatom a batch API-t a modellek beágyazásához?
A batch API jelenleg nem támogatja a finomhangolt modelleket.
Működik a tartalomszűrés a Global Batch üzembe helyezésével?
Igen. A többi üzembehelyezési típushoz hasonlóan tartalomszűrőket is létrehozhat, és társíthatja őket a Global Batch központi telepítési típusával.
Kérhetek további kvótát?
Igen, az Foundry portál kvótaoldaláról. Az alapértelmezett kvótafoglalás a kvóta és a korlátok című cikkben található.
Mi történik, ha az API nem teljesíti a kérésemet a 24 órás időkereten belül?
Célunk, hogy ezeket a kéréseket 24 órán belül feldolgozzuk; nem járnak le azok a feladatok, amelyek hosszabb időt vesznek igénybe. Bármikor lemondhatja a feladatot. A feladat megszakítása után a fennmaradó munka megszűnik, és a már befejezett munka vissza lesz adva. Az elvégzett munkákért díjat számítunk fel.
Hány kérést tudok kötegelt feldolgozással sorba állítani?
A kötegelhető kérések számának nincs rögzített korlátja, de ez a sorban álló token kvótájától függ. A sorba állított tokenkvóta tartalmazza az egyszerre ütemezhető bemeneti tokenek maximális számát.
A kötegkérelem befejezése után a kötegelt kérések sebességkorlátja alaphelyzetbe áll, mivel a bemeneti tokenek törlődnek. A korlát a várólistán lévő globális kérések számától függ. Ha a Batch API-üzenetsor gyorsan feldolgozza a kötegeket, a kötegsebesség-korlát gyorsabban alaphelyzetbe áll.
Hibaelhárítás
A feladat akkor sikeres, ha statuscompleted. A sikeres feladatok továbbra is létrehoznak egy error_file_id, de nulla bájtot tartalmazó üres fájlhoz lesz társítva.
Feladathiba esetén a tulajdonságban megtalálja a errors hiba részleteit:
{
"value": [
{
"id": "batch_80f5ad38-e05b-49bf-b2d6-a799db8466da",
"completion_window": "24h",
"created_at": 1725419394,
"endpoint": "/chat/completions",
"input_file_id": "file-c2d9a7881c8a466285e6f76f6321a681",
"object": "batch",
"status": "failed",
"cancelled_at": null,
"cancelling_at": null,
"completed_at": 1725419955,
"error_file_id": "file-3b0f9beb-11ce-4796-bc31-d54e675f28fb",
"errors": {
"object": "list",
"data": [
{
"code": "empty_file",
"message": "The input file is empty. Please ensure that the batch contains at least one request."
}
]
},
"expired_at": null,
"expires_at": 1725505794,
"failed_at": null,
"finalizing_at": 1725419710,
"in_progress_at": 1725419572,
"metadata": null,
"output_file_id": "file-ef12af98-dbbc-4d27-8309-2df57feed572",
"request_counts": {
"total": 10,
"completed": null,
"failed": null
}
}
]
}
Hibakódok
| Hibakód | Meghatározás |
|---|---|
invalid_json_line |
A bemeneti fájl egy sora (vagy több) nem elemezhető érvényes jsonként. Győződjön meg arról, hogy nincsenek elírások, megfelelő nyitó és záró zárójelek és idézőjelek a JSON szabványnak megfelelően, és küldje el újra a kérést. |
too_many_tasks |
A bemeneti fájlban lévő kérelmek száma meghaladja a maximálisan megengedett 100 000 értéket. Győződjön meg arról, hogy a kérelmek száma 100 000 alatt van, és küldje el újra a feladatot. |
url_mismatch |
A bemeneti fájl egyik sora olyan URL-címvel rendelkezik, amely nem felel meg a többi sornak, vagy a bemeneti fájlban megadott URL-cím nem egyezik meg a várt végpont URL-címével. Győződjön meg arról, hogy az összes kérelem URL-címe megegyezik, és megegyezik a Azure OpenAI-telepítéshez társított végpont URL-címével. |
model_not_found |
A bemeneti fájl model tulajdonságában megadott Azure OpenAI-modell üzembehelyezési neve nem található.Győződjön meg arról, hogy ez a név érvényes Azure OpenAI-modell üzembe helyezésére mutat. |
duplicate_custom_id |
A kérés egyéni azonosítója egy másik kérelemben szereplő egyéni azonosító duplikálása. |
empty_file |
A bemeneti fájl üres. Győződjön meg arról, hogy a csoport legalább egy kérést tartalmaz. |
model_mismatch |
A kérelem model tulajdonságában megadott Azure OpenAI-modell üzembehelyezési neve nem egyezik meg a fájl többi részével.Győződjön meg arról, hogy a köteg minden kérése ugyanarra a Azure OpenAI in Foundry Models modell üzembe helyezésére mutat a kérelem model tulajdonságában. |
invalid_request |
A bemeneti sor sémája érvénytelen, vagy az üzembehelyezési termékváltozat érvénytelen. Győződjön meg arról, hogy a kérelem tulajdonságai a bemeneti fájlban megegyeznek a várt bemeneti tulajdonságokkal, és hogy az Azure OpenAI üzembe helyezési SKU-ja globalbatch kötegelt API-kérésekhez. |
input_modified |
A Blob-adatot módosították, miután a kötegelt feladatot elküldték. |
input_no_permissions |
A bemeneti blob nem érhető el. Ellenőrizze az engedélyeket és a hálózati hozzáférést az Azure OpenAI-fiók és az Azure Storage-fiók között. |
Ismert problémák
Az Azure CLI-vel telepített erőforrások alapértelmezés szerint nem fognak működni az Azure OpenAI globális kötegével. Ennek oka egy olyan probléma, amely miatt az ezzel a módszerrel üzembe helyezett erőforrások végponti altartományai nem követik a
https://your-resource-name.openai.azure.commintát. A probléma megoldásának módja egy új Azure OpenAI-erőforrás telepítése a többi gyakori üzembehelyezési módszer egyikének alkalmazásával, amely az altartomány beállítását megfelelően kezeli az üzembe helyezés folyamatának részeként.Az UTF-8-BOM kódolású
jsonlfájlok nem támogatottak. A JSON-sorok fájljait az UTF-8 használatával kell kódolni. A Byte-Order-Mark (BOM) kódolású fájlok használatát hivatalosan nem támogatja a JSON RFC-specifikáció, és Azure Az OpenAI jelenleg érvénytelenként kezeli a BOM-kódolt fájlokat. Az UTF-8-BOM kódolt fájl jelenleg a következő általános hibaüzenetet adja vissza: "Az ellenőrzés nem sikerült: Érvényes modelltelepítési név nem nyerhető ki a bemeneti fájlból. Győződjön meg arról, hogy a bemeneti fájl minden sorában érvényes üzembehelyezési név van megadva a "modell" mezőben, és hogy az üzembe helyezés neve minden sorban konzisztens."Ha saját tárolót használ a kötegelt bemeneti adatokhoz, a kötegelt feladat elküldése után, ha a bemeneti blob módosul, a pontozási feladatot a szolgáltatás nem fogja végrehajtani.
Lásd még:
- További információ Azure OpenAI deployment típusokról
- Tudjon meg többet az Azure OpenAI kvóták és korlátok részleteiről.