Anteckning
Å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 stöder nu användning av Azure Blob Storage för Azure OpenAI Batch-indata- och utdatafiler. Genom att använda din egen lagring omfattas du inte av batchbegränsningarna för antalet filer.
Regionstöd
Stöds nu i alla regioner där batchdistributioner stöds.
Azure Blob Storage-konfiguration
Förutsättningar
- Ett Azure Blob Storage-konto.
 - En Azure OpenAI-resurs med en modell av distributionstypen 
Global-BatchellerDataZoneBatchdistribuerad. Du kan referera till guiden för att skapa resurser och distribuera modeller för hjälp med den här processen. 
Hanterad identitet
För att Azure OpenAI-resursen ska få säker åtkomst till ditt Azure Blob Storage-konto behöver du konfigurera resursen med en systemtilldelad hanterad identitet.
Anmärkning
Användartilldelade hanterade identiteter stöds för närvarande inte.
Logga in på https://portal.azure.com.
Leta reda på din Azure OpenAI-resurs > Välj Resurshantering>Identitet>Systemtilldelad> ange status till På.
Rollbaserad åtkomstkontroll
När din Azure OpenAI-resurs har konfigurerats för systemtilldelad hanterad identitet måste du ge den åtkomst till ditt Azure Blob Storage-konto.
Leta https://portal.azure.com upp och välj din Azure Blob Storage-resurs.
Välj Ätkomstkontroll (IAM)>Lägg till>Lägg till rolltilldelning.
Sök efter Storage Blob Data-deltagare>Nästa.
Välj Hanterad identitet>+Välj medlemmar> Välj dina Azure OpenAI-resursers hanterade identitet.
Om du föredrar att använda anpassade roller för mer detaljerad åtkomst krävs följande behörigheter:
Indata:
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Utdata/mappar:
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/readMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/write
Skapa behållare
I det här exemplet skapar du två containrar med namnet batch-input, och batch-output. Du kan namnge dessa vad du vill, men om du använder ett alternativt namn måste du justera exemplen i följande steg.
Om du vill skapa en container under Datalagring> väljer du +ContainerNamn> dina containrar.
När dina containrar har skapats hämtar du URL:en för varje container genom att välja> för >> Kopiera URL:erna.
I det här fallet har vi:
https://{AZURE-BLOB-STORAGE-RESOURCE-NAME}.blob.core.windows.net/batch-inputhttps://{AZURE-BLOB-STORAGE-RESOURCE-NAME}.blob.core.windows.net/batch-output
Skapa indatafil
I den här artikeln skapar vi en fil med namnet test.jsonl och kopierar innehållet nedan till filen. Du måste ändra och lägga till ditt globala batchdistributionsnamn till varje rad i filen.
{"custom_id": "task-0", "method": "POST", "url": "/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": "/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": "/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?"}]}}
Ladda upp träningsfil
Öppna från ditt Azure Blob Storage-konto din batch-indatakontainer som du skapade tidigare.
Välj Ladda upp och välj din test.jsonl fil.
Under tiden som vi bearbetar filen jsonl som en del av batchjobbet kan du inte göra några ändringar i filen. Om en fil ändras när batchjobbet körs misslyckas jobbet.
Skapa batchjobb
Anmärkning
              metadata stöds för närvarande inte med den här funktionen.
import os
from datetime import datetime
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  azure_ad_token_provider=token_provider,
  api_version="2025-04-01-preview"
)
batch_response = client.batches.create(
    input_file_id=None,
    endpoint="/chat/completions",
    completion_window="24h",
      extra_body={ 
        "input_blob": "https://{AZURE-BLOB-STORAGE-RESOURCE-NAME}.blob.core.windows.net/batch-input/test.jsonl",
        "output_folder": {
                "url": "https://{AZURE-BLOB-STORAGE-RESOURCE-NAME}.blob.core.windows.net/batch-output",
        }
    }   
)
# Save batch ID for later use
batch_id = batch_response.id
print(batch_response.model_dump_json(indent=2))
Resultat:
{
  "id": "batch_b632a805-797b-49ed-9c9c-86eb4057f2a2",
  "completion_window": "24h",
  "created_at": 1747516485,
  "endpoint": "/chat/completions",
  "input_file_id": null,
  "object": "batch",
  "status": "validating",
  "cancelled_at": null,
  "cancelling_at": null,
  "completed_at": null,
  "error_file_id": null,
  "errors": null,
  "expired_at": null,
  "expires_at": 1747602881,
  "failed_at": null,
  "finalizing_at": null,
  "in_progress_at": null,
  "metadata": null,
  "output_file_id": null,
  "request_counts": {
    "completed": 0,
    "failed": 0,
    "total": 0
  },
  "error_blob": "",
  "input_blob": "https://docstest002.blob.core.windows.net/batch-input/test.jsonl",
  "output_blob": ""
}
Du kan övervaka statusen på samma sätt som du tidigare skulle göra som beskrivs i vår omfattande guide om hur du använder Azure OpenAI-batch.
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}")
Resultat:
2025-05-17 17:16:56.950427 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: validating
2025-05-17 17:17:57.532054 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: validating
2025-05-17 17:18:58.156793 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: in_progress
2025-05-17 17:19:58.739708 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: in_progress
2025-05-17 17:20:59.398508 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: finalizing
2025-05-17 17:22:00.242371 Batch Id: batch_b632a805-797b-49ed-9c9c-86eb4057f2a2,  Status: completed
När status är completed kan du hämta din output_blob sökväg:
print(batch_response.model_dump_json(indent=2))
Resultat:
{
  "id": "batch_b632a805-797b-49ed-9c9c-86eb4057f2a2",
  "completion_window": "24h",
  "created_at": 1747516485,
  "endpoint": "/chat/completions",
  "input_file_id": null,
  "object": "batch",
  "status": "completed",
  "cancelled_at": null,
  "cancelling_at": null,
  "completed_at": 1747516883,
  "error_file_id": null,
  "errors": null,
  "expired_at": null,
  "expires_at": 1747602881,
  "failed_at": null,
  "finalizing_at": 1747516834,
  "in_progress_at": 1747516722,
  "metadata": null,
  "output_file_id": null,
  "request_counts": {
    "completed": 3,
    "failed": 0,
    "total": 3
  },
  "error_blob": "https://docstest002.blob.core.windows.net/batch-output/{GUID}/errors.jsonl",
  "input_blob": "https://docstest002.blob.core.windows.net/batch-input/test.jsonl",
  "output_blob": "https://docstest002.blob.core.windows.net/batch-output/{GUID}/results.jsonl"
}
När batchjobbet är klart kan du ladda ned error_blob och output_blob via Azure Blob Storage-gränssnittet i Azure-portalen eller ladda ned programmatiskt:
Anmärkning
              error_blob, och output_blob sökvägar returneras alltid i svaret även i fall där en motsvarande fil inte skapas. I det här fallet fanns det inga fel, så errors.jsonl skapades inte, det finns bara results.jsonl.
pip install azure-identity azure-storage-blob
Tänk på att även om du har beviljat Azure OpenAI-resursen programmatisk åtkomst till Azure Blob Storage, kan du även behöva ge det användarkonto som kör skriptet nedan åtkomst för att ladda ned resultaten. För att ladda ned filen Storage Blob Data Reader räcker det med åtkomst.
# Import required libraries
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
# Define storage account and container information
storage_account_name = "docstest002" # replace with your storage account name
container_name = "batch-output"
# Define the blob paths to download
blob_paths = [
    "{REPLACE-WITH-YOUR-GUID}/results.jsonl",
]
credential = DefaultAzureCredential()
account_url = f"https://{storage_account_name}.blob.core.windows.net"
blob_service_client = BlobServiceClient(account_url=account_url, credential=credential)
container_client = blob_service_client.get_container_client(container_name)
for blob_path in blob_paths:
    blob_client = container_client.get_blob_client(blob_path)
    
    file_name = blob_path.split("/")[-1]
    
    print(f"Downloading {file_name}...")
    with open(file_name, "wb") as file:
        download_stream = blob_client.download_blob()
        file.write(download_stream.readall())
    
    print(f"Downloaded {file_name} successfully!")
Se även
Mer information om Azure OpenAI Batch finns i den omfattande batchguiden.