Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure OpenAI Batch API hanterar effektivt storskaliga och stora bearbetningsuppgifter. Den bearbetar asynkrona grupper av förfrågningar med en separat kvot och erbjuder en målsatt handläggningstid på 24 timmar till 50 % lägre kostnad än global standard. Med batchbearbetning skickar du ett stort antal begäranden i en enda fil i stället för att skicka en begäran i taget. Globala batchbegäranden har en separat kvot för enqueued token, så att dina onlinearbetsbelastningar inte störs.
Viktiga användningsfall är:
Storskalig databehandling: Analysera snabbt omfattande datamängder parallellt.
Innehållsgenerering: Skapa stora mängder text, till exempel produktbeskrivningar eller artiklar.
Dokumentgranskning och sammanfattning: Automatisera granskning och sammanfattning av långa dokument.
Kundsupportautomatisering: Hantera flera frågor samtidigt för snabbare svar.
Extrahering och analys av data: Extrahera och analysera information från stora mängder ostrukturerade data.
NLP-uppgifter (Natural Language Processing): Utför uppgifter som attitydanalys eller översättning på stora datamängder.
Marknadsföring och anpassning: Generera anpassat innehåll och rekommendationer i stor skala.
Tips
Om batchjobben är så stora att du når den köade tokengränsen även efter att du har maxat kvoten för distributionen stöder vissa regioner nu en ny funktion som gör att du kan köa flera batchjobb med exponentiell backoff.
När din köade tokenkvot är tillgänglig kan nästa batchjobb skapas och startas automatiskt. Mer information finns i Automatisera återförsök av stora batchjobb med exponentiell backoff.
Viktigt
Tjänsten syftar till att bearbeta batchbegäranden inom 24 timmar, men det upphör inte att gälla jobb som tar längre tid. Du kan avbryta jobbet när som helst. När du avbryter jobbet avbryter tjänsten allt återstående arbete och returnerar allt redan slutfört arbete. Du betalar för allt slutfört arbete.
Data som lagras i vila finns kvar i det avsedda Azure geografiska området, medan data kan bearbetas för slutsatsdragning på valfri Azure OpenAI-plats. Läs mer om datahemvist.
Batch-stöd
Global tillgänglighet för batchmodeller
| Regionen | 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 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Brasilien södra | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Östkanada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| centralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eastus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eastus2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| francecentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tyskland Västcentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| japaneast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| koreacentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| northcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| norwayeast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| polencentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| southafricanorth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| southcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| södra Indien | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| swedencentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| norra Schweiz | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| uksouth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westeurope | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| westus3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
För att komma åt gpt-5 och o3måste du registrera dig. Mer information finns i guiden för resonemangsmodeller.
Observera
Global Batch stöder äldre API-versioner, men vissa modeller kräver nyare API-versioner. Till exempel o3-mini stöds inte med 2024-10-21 eftersom det släpptes efter det här datumet. Om du vill komma åt nyare modeller med Global Batch använder du v1-API:et.
Stöd för funktioner
Följande funktioner stöds inte för närvarande:
- Integrering med ASSISTENT-API:et.
- Integration med Azure OpenAI-funktionen på dina data.
Gruppvis driftsättning
Observera
I Microsoft Foundry-portalen visas batchdistributionstyperna som Global-Batch och Data Zone Batch. Mer information om Azure OpenAI-distributionstyper finns i guiden deployment types.
Tips
Vi rekommenderar att du aktiverar dynamisk kvot för alla globala batchmodelldistributioner för att undvika jobbfel på grund av otillräcklig kvot för enqueued token. Med dynamisk kvot kan distributionen opportunistiskt dra nytta av mer kvot när extra kapacitet är tillgänglig. När dynamisk kvot är inaktiverad kan din distribution bara hantera förfrågningar upp till gränsen för köade token som definierades när du skapade distributionen.
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfri.
- En resurs med en modell av distributionstypen
GlobalBatchellerDataZoneBatchdistribuerad.
Förbereda batchfilen
Precis som finjustering använder batch filer i JSON-linjeformat (.jsonl). Nedan visas några exempelfiler med olika typer av innehåll som stöds:
Indataformat
API för respons
{"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?"}}
API för chattens slutförande
{"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?"}]}}
custom_id Krävs för att du ska kunna identifiera vilken enskild batchbegäran som motsvarar ett givet svar. Svar returneras inte i samma ordning som den ordning som definierats i .jsonl batchfilen.
model attributet ska anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Viktigt
Attributet model måste anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Samma distributionsnamn för global Batch-modell måste finnas på varje rad i batchfilen. Om du vill rikta in dig på en annan distribution måste du göra det i en separat batchfil/ett separat batchjobb.
För bästa prestanda rekommenderar vi att du skickar stora filer för batchbearbetning i stället för ett stort antal små filer med bara några rader i varje fil.
Skapa indatafil
I den här artikeln skapar vi en fil med namnet test.jsonl och kopierar innehållet från standardindatakodblocket ovan till filen. Du måste ändra och lägga till namnet på den globala batchdistributionen till varje rad i filen.
Skapa batchjobb
När indatafilen har förberetts måste du först ladda upp filen för att sedan kunna initiera ett batchjobb. Filuppladdning kan göras både programmatiskt eller via Microsoft Foundry-portalen. Det här exemplet visar hur du laddar upp en fil direkt till din Azure OpenAI-resurs. Du kan också konfigurera Azure Blob Storage för Azure OpenAI Batch.
-
Logga in på Microsoft Foundry. Kontrollera att växlingsknappen New Foundry är aktiverad. Dessa steg hänvisar till Foundry (ny).
I det övre högra hörnet väljer du Skapa
I den vänstra rutan väljer du Modeller
Välj Batch-jobb>skapa ett batchjobb
Följ batchjobbets status
När jobbet har skapats kan du övervaka jobbets förlopp genom att välja jobb-ID:t för det senast skapade jobbet. Som standard kommer du till statussidan för ditt senast skapade batchjobb.
Du kan spåra jobbstatus för ditt jobb i den högra rutan:
Hämta utdatafil för batchjobb
När jobbet har slutförts eller nått ett terminaltillstånd genereras en felfil och en utdatafil som kan laddas ned för granskning genom att välja respektive knapp med nedåtpilikonen.
Avbryt gruppbearbetning
Avbryter en pågående batch. Batchen har status cancelling i upp till 10 minuter innan den ändras till cancelled, där det kommer att ha partiella resultat (om några) tillgängliga i utdatafilen.
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfri.
- Python version 3.8 eller senare
- Följande Python bibliotek:
openai - Jupyter Notebooks
- En Azure OpenAI-resurs med en modell av distributionstypen
Global-Batchdistribuerad. Du kan läsa guiden för att skapa resurser och driftsätta modeller om du behöver hjälp med den här processen.
Stegen i den här artikeln är avsedda att köras sekventiellt i Jupyter Notebooks. Därför instansierar vi bara Azure OpenAI-klienten en gång i början av exemplen. Om du vill köra ett steg utan att följa ordningen behöver du ofta konfigurera en Azure OpenAI-klient i samband med det anropet.
Även om du redan har OpenAI Python-biblioteket installerat kan du behöva uppgradera installationen till den senaste versionen:
!pip install openai --upgrade
Förbereda batchfilen
Precis som finjustering använder den globala batchen filer i JSON-linjeformat (.jsonl). Nedan visas några exempelfiler med olika typer av innehåll som stöds:
Indataformat
API för respons
{"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?"}}
API för chattens slutförande
{"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?"}]}}
custom_id Krävs för att du ska kunna identifiera vilken enskild batchbegäran som motsvarar ett givet svar. Svar returneras inte i samma ordning som den ordning som definierats i .jsonl batchfilen.
model attributet ska anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Viktigt
Attributet model måste anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Samma distributionsnamn för global Batch-modell måste finnas på varje rad i batchfilen. Om du vill rikta in dig på en annan distribution måste du göra det i en separat batchfil/ett separat batchjobb.
För bästa prestanda rekommenderar vi att du skickar stora filer för batchbearbetning i stället för ett stort antal små filer med bara några rader i varje fil.
Skapa indatafil
I den här artikeln skapar vi en fil med namnet test.jsonl och kopierar innehållet från standardindatakodblocket ovan till filen. Du måste ändra varje rad i filen och lägga till namnet på din globala batchdistribution. Spara den här filen i samma katalog som du kör din Jupyter Notebook.
Ladda upp batchfil
När indatafilen har förberetts måste du först ladda upp filen för att sedan kunna initiera ett batchjobb. Filuppladdning kan göras både programmatiskt eller via Microsoft Foundry-portalen. Det här exemplet visar hur du laddar upp en fil direkt till din Azure OpenAI-resurs. Du kan också konfigurera Azure Blob Storage för Azure OpenAI Batch.
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
Genom att avkommentera och lägga till extra_body={"expires_after":{"seconds": 1209600, "anchor": "created_at"}} ställer du in att uppladdningsfilen ska upphöra att gälla om 14 dagar. Det finns en maxgräns på 500 indatabatchfiler per resurs när ingen förfallotid har angetts. Genom att ange ett värde för förfallodatum ökas antalet indatabatchfiler per resurs till 10 000 filer per resurs. Om du vill ta bort filbegränsningar för batchindata använder du Batch med Azure Blob Storage.
Produktionen:
{
"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
Skapa batchjobb
När filen har laddats upp kan du skicka filen för batchbearbetning.
# 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))
Observera
För närvarande måste slutförandefönstret vara inställt på 24h. Om du anger något annat värde än 24h jobbet misslyckas. Jobb som tar längre tid än 24 timmar fortsätter att köras tills de avbryts.
Produktionen:
{
"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
}
}
Om dina batchjobb är så stora att du når gränsen för kölagda token även efter att du har maxat kvoten för din driftsättning, stöder vissa regioner nu en ny funktion för fail fast som gör att du kan köa flera batchjobb med exponentiellt ökande väntetid, så att nästa jobb kan startas automatiskt när ett stort batchjobb har slutförts. Om du vill veta mer om vilka regioner som har stöd för den här funktionen och hur du anpassar din kod för att dra nytta av den, se köning av batchjobb.
Följ batchjobbets förlopp
När du har skapat batchjobbet kan du övervaka förloppet antingen i Studio eller programmatiskt. När du kontrollerar batchjobbförloppet rekommenderar vi att du väntar minst 60 sekunder mellan varje statusanrop.
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}")
Produktionen:
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
Följande statusvärden är möjliga:
| Status | Beskrivning |
|---|---|
validating |
Indatafilen verifieras innan batchbearbetningen kan börja. |
failed |
Indatafilen har misslyckats med valideringsprocessen. |
in_progress |
Indatafilen har verifierats och batchen körs för närvarande. |
finalizing |
Batchen har slutförts och resultaten förbereds. |
completed |
Batchen har slutförts och resultatet är klart. |
expired |
Batchen kunde inte slutföras inom tidsperioden på 24 timmar. |
cancelling |
Batchen håller på att cancelled (Det kan ta upp till 10 minuter innan detta träder i kraft.) |
cancelled |
batchen var cancelled. |
För att granska detaljerad information om jobbstatus kan du köra:
print(batch_response.model_dump_json(indent=2))
Produktionen:
{
"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
}
}
Observera att det finns både error_file_id och en separat output_file_id. Använd error_file_id för att hjälpa till att felsöka eventuella problem som uppstår med ditt batchjobb.
Hämta utdatafil för batchjobb
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)
Produktionen:
För korthets skull tar vi bara med ett enda svar från chatslutförande som utdata. Om du följer stegen i den här artikeln bör du ha tre svar som liknar det nedan:
Chatten har slutförts
{
"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
}
API för respons
{
"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
}
Ytterligare batchkommandon
Avbryt gruppbearbetning
Avbryter en pågående batch. Batchen har status cancelling i upp till 10 minuter innan den ändras till cancelled, där det kommer att ha partiella resultat (om några) tillgängliga i utdatafilen.
client.batches.cancel("batch_abc123") # set to your batch_id for the job you want to cancel
Lista batch
Lista batchjobb för en viss Azure OpenAI-resurs.
client.batches.list()
Listmetoder i Python-biblioteket är sidnumrerade.
Så här listar du alla jobb:
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)
Listbatch (förhandsversion)
Använd REST-API:et för att visa en lista över alla batchjobb med ytterligare sorterings-/filtreringsalternativ.
I exemplen nedan tillhandahåller generate_time_filter vi funktionen för att göra det enklare att konstruera filtret. Om du inte vill använda den här funktionen skulle formatet för filtersträngen se ut som created_at gt 1728860560 and status eq 'Completed'.
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)
Produktionen:
{
"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öa jobb i batch
Om batchjobben är så stora att du når den köade tokengränsen även efter att du har maxat kvoten för distributionen stöder vissa regioner nu en ny snabb funktion för fel som gör att du kan köa flera batchjobb med exponentiell backoff. När ett stort batchjobb har slutförts och din köade tokenkvot återigen är tillgänglig kan nästa batchjobb skapas och startas automatiskt.
Gammalt beteende:
- Ett eller flera stora batchjobb körs redan och använder alla tillgängliga token för din driftsättning.
- Nytt batchjobb har skickats in.
- Det nya batchjobbet går in i valideringsfasen som kan pågå i upp till några minuter.
- Antalet token för det nya jobbet kontrolleras mot den tillgängliga kvoten.
- Det nya batchjobbet misslyckas med att felrapporteringstokensgränsen har överskridits.
Nytt beteende:
- Ett eller flera stora batchjobb körs redan och använder alla tillgängliga token för din driftsättning
- Nytt batchjobb har skickats
- Det ungefärliga antalet token för ett nytt jobb jämförs omedelbart med den batchkvot som för närvarande är tillgänglig, så att jobbet misslyckas direkt om kvoten inte räcker, vilket gör det enklare att hantera återförsök programmatiskt.
Regionstöd
Följande regioner har stöd för det nya beteendet för snabb felhantering:
- australiaeast
- eastus
- Tyskland Västcentral
- italynorth
- northcentralus
- polencentral
- swedencentral
- norra Schweiz
- eastus2
- westus
Koden nedan visar de grundläggande principerna för hur man hanterar ett fail fast-beteende för att möjliggöra automatiserade återförsök och köläggning av batchjobb med exponentiell backoff.
Beroende på storleken på dina batchjobb kan du behöva öka max_retries eller ändra det här exemplet ytterligare.
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
Produktionen:
⏳ 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
}
}
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfri.
- En Azure OpenAI-resurs med en modell av distributionstypen
Global-Batchdistribuerad. Du kan läsa guiden för att skapa resurser och driftsätta modeller om du behöver hjälp med den här processen.
Förbereda batchfilen
Precis som finjustering använder den globala batchen filer i JSON-linjeformat (.jsonl). Nedan visas några exempelfiler med olika typer av innehåll som stöds:
Indataformat
API för respons
{"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?"}}
API för chattens slutförande
{"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?"}]}}
custom_id Krävs för att du ska kunna identifiera vilken enskild batchbegäran som motsvarar ett givet svar. Svar returneras inte i samma ordning som den ordning som definierats i .jsonl batchfilen.
model attributet ska anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Viktigt
Attributet model måste anges så att det matchar namnet på den globala Batch-distribution som du vill rikta in dig på för slutsatsdragningssvar.
Samma distributionsnamn för global Batch-modell måste finnas på varje rad i batchfilen. Om du vill rikta in dig på en annan distribution måste du göra det i en separat batchfil/ett separat batchjobb.
För bästa prestanda rekommenderar vi att du skickar stora filer för batchbearbetning i stället för ett stort antal små filer med bara några rader i varje fil.
Skapa indatafil
I den här artikeln skapar vi en fil med namnet test.jsonl och kopierar innehållet från standardindatakodblocket ovan till filen. Du måste ändra och lägga till namnet på den globala batchdistributionen till varje rad i filen.
Ladda upp batchfil
När indatafilen har förberetts måste du först ladda upp filen för att sedan kunna initiera ett batchjobb. Filuppladdning kan göras både programmatiskt eller via Microsoft Foundry-portalen. Det här exemplet visar hur du laddar upp en fil direkt till din Azure OpenAI-resurs. Du kan också konfigurera Azure Blob Storage för Azure OpenAI Batch.
Viktigt
Använd API-nycklar med försiktighet. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt. Om du använder en API-nyckel lagrar du den på ett säkert sätt i Azure Key Vault. Mer information om hur du använder API-nycklar på ett säkert sätt i dina appar finns i API-nycklar med Azure Key Vault.
Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI services.
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"
Koden ovan förutsätter en viss filsökväg för din test.jsonl-fil. Justera den här filsökvägen efter behov för det lokala systemet.
Genom att lägga till valfria "expires_after.seconds=1209600" parametrar och "expires_after.anchor=created_at" parametrar ställer du in att uppladdningsfilen ska upphöra att gälla om 14 dagar. Det finns en maxgräns på 500 batchindatafiler per resurs när ingen förfallotid har angetts. Genom att ange ett värde för förfallodatum ökas antalet batchfiler per resurs till 10 000 filer per resurs. Du kan ange ett tal mellan 1209600-2592000. Detta motsvarar 14–30 dagar. Om du vill ta bort filbegränsningar för batchindata använder du Batch med Azure Blob Storage.
Produktionen:
{
"status": "processed",
"bytes": 817,
"purpose": "batch",
"filename": "test.jsonl",
"expires_at": 1744607747,
"id": "file-7733bc35e32841e297a62a9ee50b3461",
"created_at": 1743398147,
"object": "file"
}
Spåra filuppladdningsstatus
Beroende på storleken på din uppladdningsfil kan det ta lite tid innan den laddas upp och bearbetas helt. Så här kontrollerar du statusen för filuppladdningen:
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/files/{file-id} \
-H "api-key: $AZURE_OPENAI_API_KEY"
Produktionen:
{
"status": "processed",
"bytes": 686,
"purpose": "batch",
"filename": "test.jsonl",
"expires_at": 1744607747,
"id": "file-7733bc35e32841e297a62a9ee50b3461",
"created_at": 1721408291,
"object": "file"
}
Skapa batchjobb
När filen har laddats upp kan du skicka filen för batchbearbetning.
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": {
"seconds": 1209600
},
"anchor": "created_at"
}'
Här kan du lägga till "output_expires_after":{"seconds": 1209600}, och "anchor": "created_at" så att utdatafilerna upphör att gälla om 14 dagar.
Observera
För närvarande måste slutförandefönstret vara inställt på 24h. Om du anger något annat värde än 24h jobbet misslyckas. Jobb som tar längre tid än 24 timmar fortsätter att köras tills de avbryts.
Produktionen:
{
"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"
}
Följ batchjobbets status
När du har skapat batchjobbet kan du övervaka förloppet antingen i Studio eller programmatiskt. När du kontrollerar batchjobbförloppet rekommenderar vi att du väntar minst 60 sekunder mellan varje statusanrop.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches/{batch_id} \
-H "api-key: $AZURE_OPENAI_API_KEY"
Produktionen:
{
"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"
}
Följande statusvärden är möjliga:
| Status | Beskrivning |
|---|---|
validating |
Indatafilen verifieras innan batchbearbetningen kan börja. |
failed |
Indatafilen har misslyckats med valideringsprocessen. |
in_progress |
Indatafilen har verifierats och batchen körs för närvarande. |
finalizing |
Batchen är slutförd och resultaten förbereds. |
completed |
Batchen har slutförts och resultatet är klart. |
expired |
Batchen kunde inte slutföras inom tidsperioden på 24 timmar. |
cancelling |
Batchen håller på att cancelled (Det kan ta upp till 10 minuter innan detta börjar gälla.) |
cancelled |
batchen var cancelled. |
Hämta utdatafil för batchjobb
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
Ytterligare batchkommandon
Avbryt gruppbearbetning
Avbryter en pågående batch. Batchen har status cancelling i upp till 10 minuter innan den ändras till cancelled, där det kommer att ha partiella resultat (om några) tillgängliga i utdatafilen.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches/{batch_id}/cancel \
-H "api-key: $AZURE_OPENAI_API_KEY"
Lista omgång
Visa en lista över befintliga batchjobb för en viss Azure OpenAI-resurs.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/v1/batches \
-H "api-key: $AZURE_OPENAI_API_KEY"
List-API-anropet är paginerat. Svaret innehåller ett booleskt has_more värde som anger när det finns fler resultat att iterera igenom.
Listbatch (förhandsversion)
Använd REST-API:et för att visa en lista över alla batchjobb med ytterligare sorterings-/filtreringsalternativ.
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"
För att undvika felutrymmena URL rejected: Malformed input to a URL function ersätts med %20.
Batchgränser
| Begränsningsnamn | Gränsvärde |
|---|---|
| Maximalt antal Batch-indatafiler – (inget förfallodatum) | 500 |
| Maximalt antal batch-indatafiler – (utgångsdatum angivet) | 10 000 |
| Maximal storlek på indatafil | 200 MB |
| Maximal filstorlek för indata - BYOS (Bring Your Own Storage) | 1 GB |
| Maximalt antal begäranden per fil | 100,000 |
Observera
Batchfilgränser gäller inte för utdatafiler (till exempel result.jsonl, och error.jsonl). Om du vill ta bort filbegränsningar för batchindata använder du Batch med Azure Blob Storage.
Kvot för batchbearbetning
Tabellen visar batchkvotgränsen. Kvotvärden för global batchbearbetning anges i form av kölagda token. När du skickar en fil för batchbearbetning räknas antalet token i filen. Tills batchjobbet når ett terminaltillstånd räknas dessa token mot den totala tillåtna tokengränsen.
Global omgång
| Modell | Enterprise och MCA-E | Standard | Månatliga kreditkortsbaserade prenumerationer | MSDN-prenumerationer | Azure för studenter, kostnadsfria utvärderingsversioner |
|---|---|---|---|---|---|
gpt-4.1 |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
gpt-4.1 mini |
15B | 1B | 50M | 90 000 | Ej tillämpligt |
gpt-4.1-nano |
15B | 1B | 50M | 90 000 | Ej tillämpligt |
gpt-4o |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
gpt-4o-mini |
15B | 1B | 50M | 90 000 | Ej tillämpligt |
gpt-4-turbo |
300M | 80M | 40M | 90 000 | Ej tillämpligt |
gpt-4 |
150 M | 30 M | 5 M | 100 000 | Ej tillämpligt |
o3-mini |
15B | 1B | 50M | 90 000 | Ej tillämpligt |
o4-mini |
15B | 1B | 50M | 90 000 | Ej tillämpligt |
gpt-5 |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
gpt-5.1 |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
B = miljarder | M = miljoner | K = tusen
Datazongrupp
| Modell | Enterprise och MCA-E | Standard | Månatliga kreditkortsbaserade prenumerationer | MSDN-prenumerationer | Azure för studenter, kostnadsfria utvärderingsversioner |
|---|---|---|---|---|---|
gpt-4.1 |
500M | 30 M | 30 M | 90 000 | Ej tillämpligt |
gpt-4.1-mini |
1,5B | 100 M | 50M | 90 000 | Ej tillämpligt |
gpt-4o |
500M | 30 M | 30 M | 90 000 | Ej tillämpligt |
gpt-4o-mini |
1,5B | 100 M | 50M | 90 000 | Ej tillämpligt |
o3-mini |
1,5B | 100 M | 50M | 90 000 | Ej tillämpligt |
gpt-5 |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
gpt-5.1 |
5B | 200M | 50M | 90 000 | Ej tillämpligt |
Batch-objekt
| Egenskapen | Typ | Definition |
|---|---|---|
id |
Sträng | Identifieraren för batchen. |
object |
Sträng | batch |
endpoint |
Sträng | API-endpointen som används av batchen. |
errors |
Objekt | Eventuell felinformation för batchen. |
input_file_id |
Sträng | ID:t för inmatningsfilen för batchen. |
completion_window |
Sträng | Den tidsram inom vilken batchen ska behandlas. |
status |
Sträng | Batchens aktuella status. Möjliga värden: validating, failed, in_progress, finalizing, completed, expired, , cancelling. cancelled |
output_file_id |
Sträng | ID:t för filen som innehåller utdata från begäranden som har körts framgångsrikt. |
error_file_id |
Sträng | ID:t för filen som innehåller utdata från begäranden med fel. |
created_at |
heltal | En tidsstämpel när den här batchen skapades (i Unix-epoksekunder). |
in_progress_at |
Heltal | En tidsstämpel för när den här batchen började fortskrida (i Unix-epoksekunder). |
expires_at |
heltal | En tidsstämpel när den här batchen upphör att gälla (i Unix-epoksekunder). |
finalizing_at |
Heltal | En tidsstämpel när den här batchen började slutföras (i Unix-epoksekunder). |
completed_at |
Heltal | En tidsstämpel när den här batchen slutfördes (i Unix-epoksekunder). |
failed_at |
Heltal | En tidsstämpel när den här batchen misslyckades (i Unix-epoksekunder). |
expired_at |
heltal | En tidsstämpel när den här batchen upphörde att gälla (i Unix-epoksekunder). |
cancelling_at |
heltal | En tidsstämpel när den här batchen startade cancelling (i Unix-epoksekunder). |
cancelled_at |
heltal | En tidsstämpel när den här batchen var cancelled (i Unix-epoksekunder). |
request_counts |
Objekt | Objektstruktur:total
Heltal Det totala antalet begäranden i batchen. completed
Heltal Antalet begäranden i batchen som har slutförts. failed
Heltal Antalet begäranden i batchen som misslyckades. |
metadata |
Karta | En uppsättning nyckel/värde-par som du kan koppla till batchen. Den här egenskapen kan vara användbar för att lagra ytterligare information om batchen i ett strukturerat format. |
Vanliga frågor och svar
Kan avbildningar användas med batch-API:et?
Den här funktionen är begränsad till vissa multimodala modeller. Du kan ange bilder som indata antingen via en bild-URL eller en base64-kodad representation av bilden.
Kan jag använda batch-API:et med finjusterade modeller?
Batch-API:et stöder för närvarande inte finjusterade modeller.
Kan jag använda batch-API:et för inbäddningsmodeller?
Batch-API:et stöder för närvarande inte finjusterade modeller.
Fungerar innehållsfiltrering med Global Batch-distribution?
Ja. På samma sätt som andra distributionstyper kan du skapa innehållsfilter och associera dem med distributionstypen Global Batch.
Kan jag begära ytterligare kvot?
Ja, från kvotsidan i Foundry-portalen. Standardkvotallokering finns i artikeln om kvoter och gränser.
Vad händer om API:et inte slutför min begäran inom tidsramen på 24 timmar?
Vi strävar efter att behandla dessa förfrågningar inom 24 timmar; vi låter inte jobb som tar längre tid än så löpa ut. Du kan avbryta jobbet när som helst. När du avbryter jobbet avbryts allt återstående arbete och allt redan slutfört arbete returneras. Du debiteras för allt slutfört arbete.
Hur många begäranden kan jag köa med batch?
Det finns ingen fast gräns för hur många begäranden du kan batcha, men det beror på din kvot för enqueued-token. Din köade tokenkvot innehåller det maximala antalet indatatoken som du kan ange samtidigt.
När batchbegäran har slutförts återställs batchhastighetsgränsen när dina indatatoken rensas. Gränsen beror på antalet globala begäranden i kön. Om Batch API-kön bearbetar dina batchar snabbt återställs batchhastighetsgränsen snabbare.
Felsökning
Ett jobb är lyckat när status är completed. Lyckade jobb genererar fortfarande en error_file_id, men den associeras med en tom fil med noll byte.
När ett jobbfel inträffar hittar du information om felet i egenskapen errors :
{
"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
}
}
]
}
Felkoder
| Felkod | Definition |
|---|---|
invalid_json_line |
En rad (eller flera) i indatafilen kunde inte parsas som giltig json. Se till att det inte finns några stavfel, att inledande och avslutande hakparenteser samt citattecken är korrekta enligt JSON-standarden, och skicka sedan in begäran igen. |
too_many_tasks |
Antalet begäranden i indatafilen överskrider det högsta tillåtna värdet på 100 000. Kontrollera att dina totala begäranden är under 100 000 och skicka jobbet igen. |
url_mismatch |
Antingen har en rad i indatafilen en URL som inte matchar resten av raderna, eller så matchar url:en som anges i indatafilen inte den förväntade slutpunkts-URL:en. Kontrollera att alla url:er för begäran är desamma och att de matchar slutpunkts-URL:en som är associerad med din Azure OpenAI-distribution. |
model_not_found |
Det Azure OpenAI-modelldistributionsnamnet som angavs i egenskapen model för indatafilen hittades inte.Kontrollera att det här namnet pekar på en giltig Azure OpenAI-modelldistribution. |
duplicate_custom_id |
Det anpassade ID:t för den här begäran är en dubblett av det anpassade ID:t i en annan begäran. |
empty_file |
Indatafilen är tom. Kontrollera att batchen innehåller minst en begäran. |
model_mismatch |
Distributionsnamnet för Azure OpenAI-modell som angavs i egenskapen model för den här begäran i indatafilen matchar inte resten av filen.Se till att alla förfrågningar i batchen pekar på samma modelldistribution för Azure OpenAI i Foundry Models i egenskapen model i förfrågan. |
invalid_request |
Schemat för indataraden är ogiltigt eller så är distributions-SKU:n ogiltig. Kontrollera att egenskaperna för begäran i indatafilen matchar de förväntade indataegenskaperna och att Azure OpenAI-distributions-SKU:n är globalbatch för batch-API-begäranden. |
input_modified |
Indatablobben har ändrats efter att batchjobbet har skickats in. |
input_no_permissions |
Det går inte att komma åt indatabloben. Kontrollera behörigheter och nätverksåtkomst mellan Azure OpenAI-kontot och Azure Storage kontot. |
Kända problem
Resurser som distribueras med Azure CLI fungerar inte direkt med den globala Azure OpenAI-batchen. Detta beror på ett problem där resurser som distribueras med den här metoden har underdomäner för slutpunkter som inte följer
https://your-resource-name.openai.azure.commönstret. En lösning på det här problemet är att distribuera en ny Azure OpenAI-resurs med någon av de andra vanliga distributionsmetoderna som hanterar underdomänkonfigurationen korrekt som en del av distributionsprocessen.UTF-8-BOM-kodade
jsonlfiler stöds inte. JSON-radfiler ska kodas med UTF-8. Användning av byte-Order-Mark (BOM) kodade filer stöds inte officiellt av JSON RFC-specifikationen, och Azure OpenAI behandlar för närvarande BOM-kodade filer som ogiltiga. En UTF-8-BOM-kodad fil returnerar för närvarande det allmänna felmeddelandet: "Valideringen misslyckades: Det gick inte att extrahera ett giltigt modelldistributionsnamn från indatafilen. Kontrollera att varje rad i indatafilen har ett giltigt distributionsnamn som anges i fältet "modell" och att distributionsnamnet är konsekvent på alla rader."När du använder din egen lagring för batchindata, kommer tjänsten att låta poängsättningsjobbet misslyckas om indatabloben ändras efter att batchjobbet har skickats in.
Se även
- Läs mer om Azure OpenAI distributionstyper
- Läs mer om Azure OpenAI quotas och gränser