Erste Schritte mit globalen Azure OpenAI-Batchbereitstellungen
Die Azure OpenAI Batch-API ist darauf ausgelegt, umfangreiche Verarbeitungsaufgaben mit hohem Volumen effizient zu verarbeiten. Verarbeiten Sie asynchrone Anforderungsgruppen mit separatem Kontingent mit einer angestrebten Verarbeitungszeit von 24 Stunden zu 50 % weniger Kosten als bei „Global-Standard“. Bei der Stapelverarbeitung senden Sie die einzelnen Anforderungen nicht nacheinander, sondern Sie senden eine große Anzahl von Anforderungen in einer einzelnen Datei. Globale Batchanforderungen verfügen über ein separates Tokenkontingent, das in die Warteschlange eingereiht wird, um Unterbrechungen Ihrer Onlineworkloads zu vermeiden.
Wichtige Anwendungsfälle:
Umfangreiche Datenverarbeitung: Analysieren Sie schnell umfangreiche Datasets parallel.
Inhaltsgenerierung: Erstellen Sie große Textmengen, z. B. Produktbeschreibungen oder Artikel.
Dokumentüberprüfung und Zusammenfassung: Automatisieren Sie die Überprüfung und Zusammenfassung von umfangreichen Dokumenten.
Automatisierung des Kundendiensts: Verarbeiten Sie zahlreiche Anfragen gleichzeitig für schnellere Antworten.
Datenextraktion und -analyse: Extrahieren und analysieren Sie Informationen aus großen Mengen unstrukturierter Daten.
NLP-Aufgaben (Natural Language Processing, Verarbeitung natürlicher Sprache): Führen Sie Aufgaben wie Stimmungsanalyse oder Übersetzung für große Datasets aus.
Marketing und Personalisierung: Generieren Sie personalisierte Inhalte und Empfehlungen im großen Stil.
Wichtig
Wir bemühen uns, Batchanforderungen innerhalb von 24 Stunden zu verarbeiten; die Aufträge, die länger dauern, laufen nicht ab. Sie können den Auftrag jederzeit abbrechen. Wenn Sie den Auftrag abbrechen, werden alle verbleibenden Arbeiten abgebrochen, und alle bereits abgeschlossenen Arbeiten werden zurückgegeben. Alle abgeschlossenen Arbeiten werden Ihnen in Rechnung gestellt.
Ruhende Daten verbleiben in der angegebenen Azure-Geografie, während Daten für Rückschlüsse möglicherweise an einem beliebigen Azure OpenAI-Standort verarbeitet werden. Erfahren Sie mehr über Data Residency.
Unterstützung für globalen Batch
Support für Region und Modell
Der globale Batch wird derzeit in den folgenden Regionen unterstützt:
Region | gpt-4o, 2024-05-13 | gpt-4o, 2024-08-06 | gpt-4o-mini, 2024-07-18 | gpt-4, 0613 | gpt-4, turbo-2024-04-09 | gpt-35-turbo, 0613 | gpt-35-turbo, 1106 | gpt-35-turbo, 0125 |
---|---|---|---|---|---|---|---|---|
canadaeast | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
eastus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
eastus2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
northcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
southcentralus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
swedencentral | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
westus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
westus3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Die folgenden Modelle unterstützten den globalen Batch:
Modell | Version | Eingabeformat |
---|---|---|
gpt-4o |
2024-08-06 | Text + Bild |
gpt-4o-mini |
2024-07-18 | Text + Bild |
gpt-4o |
2024-05-13 | Text + Bild |
gpt-4 |
turbo-2024-04-09 | Text |
gpt-4 |
0613 | Text |
gpt-35-turbo |
0125 | Text |
gpt-35-turbo |
1106 | Text |
gpt-35-turbo |
0613 | Text |
Auf der Modellseite finden Sie aktuelle Informationen zu den Regionen/Modellen, für die der globale Batch derzeit unterstützt wird.
API-Unterstützung
API-Version | |
---|---|
Neueste GA-API-Version: | 2024-10-21 |
Letztes Release der API-Vorschauversion: | 2024-10-01-preview |
Support wurde zuerst hinzugefügt in: 2024-07-01-preview
Featureunterstützung
Folgendes wird derzeit nicht unterstützt:
- Integration mit der Assistants-API.
- Integration mit der Azure OpenAI-Funktion „Für Ihre Daten“.
Hinweis
Strukturierte Ausgaben werden jetzt mit dem globalen Batch unterstützt.
Globale Batchbereitstellung
Auf der Studio-Benutzeroberfläche wird der Bereitstellungstyp als Global-Batch
angezeigt.
Tipp
Es wird empfohlen, das dynamische Kontingent für alle globalen Batchmodellbereitstellungen zu aktivieren, um Auftragsfehler aufgrund unzureichender Kontingente für Token in der Warteschlange zu vermeiden. Das dynamische Kontingent ermöglicht Ihrer Bereitstellung die opportunistische Nutzung eines größeren Kontingents, wenn zusätzliche Kapazität verfügbar ist. Wenn das dynamische Kontingent deaktiviert ist, kann Ihre Bereitstellung nur Anforderungen bis zum Grenzwert für Token in der Warteschlange verarbeiten, das beim Erstellen der Bereitstellung definiert wurde.
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Eine Azure OpenAI-Ressource mit einem bereitgestellten Modell des Bereitstellungstyps
Global-Batch
. Hilfe zu diesem Prozess finden Sie in der Anleitung zur Ressourcenerstellung und Modellimplementierung.
Vorbereiten der Batchdatei
Wie die Feinabstimmung verwendet der globale Batch Dateien im JSON-Zeilenformat (.jsonl
). Im Folgenden finden Sie einige Beispieldateien mit unterschiedlichen Typen von unterstützten Inhalten:
Eingabeformat
{"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?"}]}}
custom_id
ist erforderlich, damit Sie ermitteln können, welche einzelne Batchanforderung einer bestimmten Antwort entspricht. Antworten werden nicht in der Reihenfolge zurückgegeben, die in der .jsonl
-Batchdatei definiert ist.
Das model
-Attribut sollte so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, auf die Sie für Rückschlussantworten abzielen möchten.
Wichtig
Das model
-Attribut muss so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, die Sie als Ziel für Rückschlussantworten festlegen möchten. Derselbe globale Batchmodellbereitstellungsname muss in jeder Zeile der Batchdatei vorhanden sein. Wenn Sie eine andere Bereitstellung als Ziel festlegen möchten, müssen Sie dies in einer separaten Batchdatei bzw. einem separaten Batchauftrag tun.
Um eine optimale Leistung zu erzielen, empfehlen wir, große Dateien für die Batchverarbeitung zu übermitteln, anstatt eine große Anzahl kleiner Dateien mit nur wenigen Zeilen in jeder Datei.
Erstellen einer Eingabedatei
In diesem Artikel erstellen wir eine Datei mit dem Namen test.jsonl
und kopieren den Inhalt aus dem obigen Standardeingabecodeblock in die Datei. Sie müssen den Namen Ihrer globalen Batchbereitstellung ändern und jeder Zeile der Datei hinzufügen.
Hochladen der Batchdatei
Nachdem Ihre Eingabedatei vorbereitet wurde, müssen Sie die Datei zuerst hochladen, damit Sie dann einen Batchauftrag starten können. Der Dateiupload kann sowohl programmgesteuert als auch über Studio erfolgen.
Melden Sie sich bei KI Studio an.
Wählen Sie die Azure OpenAI-Ressource aus, in der Sie über eine globale Batchmodellbereitstellung verfügen.
Wählen Sie Batchaufträge>+ Batchaufträge erstellen aus.
Wählen Sie in der Dropdownliste unter Batchdaten>Dateien hochladen> die Option Datei hochladen aus, und geben Sie den Pfad der im vorherigen Schritt erstellten
test.jsonl
-Datei an. >Weiter.
Erstellen des Batchauftrags
Wählen Sie Erstellen aus, um den Batchauftrag zu starten.
Nachverfolgen des Fortschritts eines Batchauftrags
Nachdem Ihr Auftrag erstellt wurde, können Sie den Fortschritt des Auftrags überwachen, indem Sie die Auftrags-ID für den zuletzt erstellten Auftrag auswählen. Standardmäßig werden Sie zur Statusseite des zuletzt erstellten Batchauftrags weitergeleitet.
Sie können den Auftragsstatus für Ihren Auftrag im rechten Bereich nachverfolgen:
Abrufen einer Ausgabedatei eines Batchauftrags
Nachdem Ihr Auftrag abgeschlossen wurde oder einen Beendigungsstatus erreicht hat, werden eine Fehler- und eine Ausgabedatei generiert, die Sie zur Überprüfung herunterladen können, indem Sie die entsprechende Schaltfläche mit dem Pfeil nach unten auswählen.
Batch abbrechen
Hiermit wird ein laufender Batch abgebrochen. Der Batch befindet sich bis zu 10 Minuten lang im Status cancelling
, bevor er zu cancelled
wechselt. Hier sind Teilergebnisse (falls vorhanden) in der Ausgabedatei verfügbar.
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Python 3.8 oder eine höhere Version
- Die folgende Python-Bibliothek:
openai
- Jupyter-Notebooks
- Eine Azure OpenAI-Ressource mit einem bereitgestellten Modell des Bereitstellungstyps
Global-Batch
. Hilfe zu diesem Prozess finden Sie in der Anleitung zur Ressourcenerstellung und Modellimplementierung.
Die Schritte in diesem Artikel sollten in Jupyter Notebooks sequenziell ausgeführt werden. Deshalb instanziieren wir den Azure OpenAI-Client nur einmal am Anfang der Beispiele. Wenn Sie einen Schritt in einer anderen Reihenfolge ausführen möchten, müssen Sie häufig einen Azure OpenAI-Client als Teil dieses Aufrufs einrichten.
Auch wenn Sie die OpenAI Python-Bibliothek bereits installiert haben, müssen Sie möglicherweise ein Upgrade Ihrer Installation auf die neueste Version durchführen:
!pip install openai --upgrade
Vorbereiten der Batchdatei
Wie die Feinabstimmung verwendet der globale Batch Dateien im JSON-Zeilenformat (.jsonl
). Im Folgenden finden Sie einige Beispieldateien mit unterschiedlichen Typen von unterstützten Inhalten:
Eingabeformat
{"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?"}]}}
custom_id
ist erforderlich, damit Sie ermitteln können, welche einzelne Batchanforderung einer bestimmten Antwort entspricht. Antworten werden nicht in der Reihenfolge zurückgegeben, die in der .jsonl
-Batchdatei definiert ist.
Das model
-Attribut sollte so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, auf die Sie für Rückschlussantworten abzielen möchten.
Wichtig
Das model
-Attribut muss so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, die Sie als Ziel für Rückschlussantworten festlegen möchten. Derselbe globale Batchmodellbereitstellungsname muss in jeder Zeile der Batchdatei vorhanden sein. Wenn Sie eine andere Bereitstellung als Ziel festlegen möchten, müssen Sie dies in einer separaten Batchdatei bzw. einem separaten Batchauftrag tun.
Um eine optimale Leistung zu erzielen, empfehlen wir, große Dateien für die Batchverarbeitung zu übermitteln, anstatt eine große Anzahl kleiner Dateien mit nur wenigen Zeilen in jeder Datei.
Erstellen einer Eingabedatei
In diesem Artikel erstellen wir eine Datei mit dem Namen test.jsonl
und kopieren den Inhalt aus dem obigen Standardeingabecodeblock in die Datei. Sie müssen den Namen Ihrer globalen Batchbereitstellung ändern und jeder Zeile der Datei hinzufügen. Speichern Sie diese Datei im selben Verzeichnis, in dem Sie Ihr Jupyter Notebook ausführen.
Hochladen der Batchdatei
Nachdem Ihre Eingabedatei vorbereitet wurde, müssen Sie die Datei zuerst hochladen, damit Sie dann einen Batchauftrag starten können. Der Dateiupload kann sowohl programmgesteuert als auch über Studio erfolgen. In diesem Beispiel werden Umgebungsvariablen anstelle der Schlüssel- und Endpunktwerte verwendet. Wenn Sie mit der Verwendung von Umgebungsvariablen mit Python nicht vertraut sind, sehen Sie sich eine der Schnellstartanleitungen an, in denen die Einrichtung der Umgebungsvariablen schrittweise erläutert wird.
import os
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="2024-10-21"
)
# Upload a file with a purpose of "batch"
file = client.files.create(
file=open("test.jsonl", "rb"),
purpose="batch"
)
print(file.model_dump_json(indent=2))
file_id = file.id
Ausgabe:
{
"id": "file-9f3a81d899b4442f98b640e4bc3535dd",
"bytes": 815,
"created_at": 1722476551,
"filename": "test.jsonl",
"object": "file",
"purpose": "batch",
"status": null,
"status_details": null
}
Erstellen des Batchauftrags
Nachdem die Datei erfolgreich hochgeladen wurde, können Sie die Datei zur Batchverarbeitung übermitteln.
# Submit a batch job with the file
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(batch_response.model_dump_json(indent=2))
Hinweis
Derzeit muss das Abschlussfenster auf 24 Stunden festgelegt sein. Wenn Sie einen anderen Wert als 24 Stunden festlegen, schlägt Ihr Auftrag fehl. Aufträge, die länger als 24 Stunden dauern, werden bis zum Abbrechen weiter ausgeführt.
Ausgabe:
{
"id": "batch_6caaf24d-54a5-46be-b1b7-518884fcbdde",
"completion_window": "24h",
"created_at": 1722476583,
"endpoint": null,
"input_file_id": "file-9f3a81d899b4442f98b640e4bc3535dd",
"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
}
}
Nachverfolgen des Fortschritts eines Batchauftrags
Nachdem Sie den Batchauftrag erfolgreich erstellt haben, können Sie den Fortschritt entweder in Studio oder programmgesteuert überwachen. Beim Überprüfen des Fortschritts des Batchauftrags wird empfohlen, mindestens 60 Sekunden zwischen jedem Statusabruf zu warten.
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}")
Ausgabe:
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
Die folgenden Statuswerte sind möglich:
Status | Beschreibung |
---|---|
validating |
Die Eingabedatei wird überprüft, bevor die Stapelverarbeitung beginnen kann. |
failed |
Fehler beim Überprüfen der Eingabedatei. |
in_progress |
Die Eingabedatei wurde erfolgreich überprüft, und der Batch wird zurzeit ausgeführt. |
finalizing |
Der Batch wurde abgeschlossen, und die Ergebnisse werden vorbereitet. |
completed |
Der Batch wurde abgeschlossen, und die Ergebnisse sind bereit. |
expired |
Der Batch konnte nicht innerhalb des 24-Stunden-Zeitfensters abgeschlossen werden. |
cancelling |
Der Batch wird cancelled (es kann bis zu 10 Minuten dauern, bis dies wirksam wird). |
cancelled |
der Batch wurde cancelled . |
So überprüfen Sie die Auftragsstatusdetails, die Sie ausführen können:
print(batch_response.model_dump_json(indent=2))
Ausgabe:
{
"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
}
}
Beachten Sie, dass es sowohl eine error_file_id
als auch eine separate output_file_id
gibt. Verwenden Sie die error_file_id
für das Debuggen von Problemen, die mit Ihrem Batchauftrag auftreten.
Abrufen einer Ausgabedatei eines Batchauftrags
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)
Ausgabe:
Aus Platzgründen beziehen wir nur eine einzelne Antwort zum Chatabschluss als Ausgabe ein. Wenn Sie die Schritte in diesem Artikel ausführen, sollten Sie drei Antworten haben, die in etwa der folgenden entsprechen:
{
"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
}
Zusätzliche Batchbefehle
Batch abbrechen
Hiermit wird ein laufender Batch abgebrochen. Der Batch befindet sich bis zu 10 Minuten lang im Status cancelling
, bevor er zu cancelled
wechselt. Hier sind Teilergebnisse (falls vorhanden) in der Ausgabedatei verfügbar.
client.batches.cancel("batch_abc123") # set to your batch_id for the job you want to cancel
Batch auflisten
Listet Batchaufträge für eine bestimmte Azure OpenAI-Ressource auf.
client.batches.list()
Listenmethoden in der Python-Bibliothek werden paginiert.
So listen Sie alle Aufträge auf
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)
Auflisten von Batches (Vorschau)
Verwenden Sie die REST-API, um alle Batchaufträge mit zusätzlichen Sortier-/Filteroptionen aufzulisten.
In den folgenden Beispielen geben wir die generate_time_filter
-Funktion an, um das Erstellen des Filters zu vereinfachen. Wenn Sie diese Funktion nicht verwenden möchten, sieht das Format der Filterzeichenfolge wie created_at gt 1728860560 and status eq 'Completed'
aus.
import requests
import json
from datetime import datetime, timedelta
from azure.identity import DefaultAzureCredential
token_credential = DefaultAzureCredential()
token = token_credential.get_token('https://cognitiveservices.azure.com/.default')
endpoint = "https://{YOUR_RESOURCE_NAME}.openai.azure.com/"
api_version = "2024-10-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)
Ausgabe:
{
"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"
}
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Eine Azure OpenAI-Ressource mit einem bereitgestellten Modell des Bereitstellungstyps
Global-Batch
. Hilfe zu diesem Prozess finden Sie in der Anleitung zur Ressourcenerstellung und Modellimplementierung.
Vorbereiten der Batchdatei
Wie die Feinabstimmung verwendet der globale Batch Dateien im JSON-Zeilenformat (.jsonl
). Im Folgenden finden Sie einige Beispieldateien mit unterschiedlichen Typen von unterstützten Inhalten:
Eingabeformat
{"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?"}]}}
custom_id
ist erforderlich, damit Sie ermitteln können, welche einzelne Batchanforderung einer bestimmten Antwort entspricht. Antworten werden nicht in der Reihenfolge zurückgegeben, die in der .jsonl
-Batchdatei definiert ist.
Das model
-Attribut sollte so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, auf die Sie für Rückschlussantworten abzielen möchten.
Wichtig
Das model
-Attribut muss so festgelegt werden, dass es mit dem Namen der globalen Batchbereitstellung übereinstimmt, die Sie als Ziel für Rückschlussantworten festlegen möchten. Derselbe globale Batchmodellbereitstellungsname muss in jeder Zeile der Batchdatei vorhanden sein. Wenn Sie eine andere Bereitstellung als Ziel festlegen möchten, müssen Sie dies in einer separaten Batchdatei bzw. einem separaten Batchauftrag tun.
Um eine optimale Leistung zu erzielen, empfehlen wir, große Dateien für die Batchverarbeitung zu übermitteln, anstatt eine große Anzahl kleiner Dateien mit nur wenigen Zeilen in jeder Datei.
Erstellen einer Eingabedatei
In diesem Artikel erstellen wir eine Datei mit dem Namen test.jsonl
und kopieren den Inhalt aus dem obigen Standardeingabecodeblock in die Datei. Sie müssen den Namen Ihrer globalen Batchbereitstellung ändern und jeder Zeile der Datei hinzufügen.
Hochladen der Batchdatei
Nachdem Ihre Eingabedatei vorbereitet wurde, müssen Sie die Datei zuerst hochladen, damit Sie dann einen Batchauftrag starten können. Der Dateiupload kann sowohl programmgesteuert als auch über Studio erfolgen. In diesem Beispiel werden Umgebungsvariablen anstelle der Schlüssel- und Endpunktwerte verwendet. Wenn Sie mit der Verwendung von Umgebungsvariablen mit Python nicht vertraut sind, sehen Sie sich eine der Schnellstartanleitungen an, in denen die Einrichtung der Umgebungsvariablen schrittweise erläutert wird.
Wichtig
Wenn Sie einen API-Schlüssel verwenden, speichern Sie ihn an einer anderen Stelle sicher, z. B. in Azure Key Vault. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich.
Weitere Informationen zur Sicherheit von KI Services finden Sie unter Authentifizieren von Anforderungen an Azure KI Services.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/files?api-version=2024-10-21 \
-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"
Im obigen Code wird ein bestimmter Dateipfad für die Datei „test.jsonl“ vorausgesetzt. Passen Sie diesen Dateipfad nach Bedarf an Ihr lokales System an.
Ausgabe:
{
"status": "pending",
"bytes": 686,
"purpose": "batch",
"filename": "test.jsonl",
"id": "file-21006e70789246658b86a1fc205899a4",
"created_at": 1721408291,
"object": "file"
}
Status für den Dateiupload nachverfolgen
Je nach Größe der Uploaddatei kann es einige Zeit dauern, bis sie vollständig hochgeladen und verarbeitet wird. So überprüfen Sie den Status für den Dateiupload:
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/files/{file-id}?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY"
Ausgabe:
{
"status": "processed",
"bytes": 686,
"purpose": "batch",
"filename": "test.jsonl",
"id": "file-21006e70789246658b86a1fc205899a4",
"created_at": 1721408291,
"object": "file"
}
Erstellen des Batchauftrags
Nachdem die Datei erfolgreich hochgeladen wurde, können Sie die Datei zur Batchverarbeitung übermitteln.
curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/batches?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input_file_id": "file-abc123",
"endpoint": "/chat/completions",
"completion_window": "24h"
}'
Hinweis
Derzeit muss das Abschlussfenster auf 24 Stunden festgelegt sein. Wenn Sie einen anderen Wert als 24 Stunden festlegen, schlägt Ihr Auftrag fehl. Aufträge, die länger als 24 Stunden dauern, werden bis zum Abbrechen weiter ausgeführt.
Ausgabe:
{
"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"
}
Nachverfolgen des Fortschritts eines Batchauftrags
Nachdem Sie den Batchauftrag erfolgreich erstellt haben, können Sie den Fortschritt entweder in Studio oder programmgesteuert überwachen. Beim Überprüfen des Fortschritts des Batchauftrags wird empfohlen, mindestens 60 Sekunden zwischen jedem Statusabruf zu warten.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/batches/{batch_id}?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY"
Ausgabe:
{
"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"
}
Die folgenden Statuswerte sind möglich:
Status | Beschreibung |
---|---|
validating |
Die Eingabedatei wird überprüft, bevor die Stapelverarbeitung beginnen kann. |
failed |
Fehler beim Überprüfen der Eingabedatei. |
in_progress |
Die Eingabedatei wurde erfolgreich überprüft, und der Batch wird zurzeit ausgeführt. |
finalizing |
Der Batch wurde abgeschlossen, und die Ergebnisse werden vorbereitet. |
completed |
Der Batch wurde abgeschlossen, und die Ergebnisse sind bereit. |
expired |
Der Batch konnte nicht innerhalb des 24-Stunden-Zeitfensters abgeschlossen werden. |
cancelling |
Der Batch wird cancelled (es kann bis zu 10 Minuten dauern, bis dies wirksam wird). |
cancelled |
der Batch wurde cancelled . |
Abrufen einer Ausgabedatei eines Batchauftrags
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/files/{output_file_id}/content?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY" > batch_output.jsonl
Zusätzliche Batchbefehle
Batch abbrechen
Hiermit wird ein laufender Batch abgebrochen. Der Batch befindet sich bis zu 10 Minuten lang im Status cancelling
, bevor er zu cancelled
wechselt. Hier sind Teilergebnisse (falls vorhanden) in der Ausgabedatei verfügbar.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/batches/{batch_id}/cancel?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY"
Batch auflisten
Listet vorhandene Batchaufträge für eine bestimmte Azure OpenAI-Ressource auf.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/batches?api-version=2024-10-21 \
-H "api-key: $AZURE_OPENAI_API_KEY"
Der Listen-API-Aufruf wird paginiert. Die Antwort enthält eine boolesche has_more
-Angabe, wann mehr Ergebnisse zum Durchlaufen vorhanden sind.
Auflisten von Batches (Vorschau)
Verwenden Sie die REST-API, um alle Batchaufträge mit zusätzlichen Sortier-/Filteroptionen aufzulisten.
curl "YOUR_RESOURCE_NAME.openai.azure.com/batches?api-version=2024-10-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"
Um den Fehler zu vermeiden, werden URL rejected: Malformed input to a URL function
-Leerzeichen durch %20
ersetzt.
Grenzwerte für einen globalen Batch
Name des Grenzwerts | Wert des Grenzwerts |
---|---|
Maximale Anzahl von Dateien pro Ressource | 500 |
Maximale Größe der Eingabedatei | 200 MB |
Maximale Anforderungen pro Datei | 100.000 |
Kontingent für globalen Batch
Die Tabelle zeigt den Grenzwert für ein Batchkontingent. Kontingentwerte für einen globalen Batch werden als Tokens in der Warteschlange dargestellt. Wenn Sie eine Datei zur Batchverarbeitung übermitteln, wird die Anzahl der in der Datei vorhandenen Tokens gezählt. Bis der Batchauftrag einen endgültigen Status erreicht, werden diese Tokens auf Ihren Gesamtgrenzwert der Tokens in der Warteschlange angerechnet.
Modell | Enterprise Agreement | Standard | Monatliche Abonnements mit Kreditkarte | MSDN-Abonnements | Microsoft Azure for Students, Free Testversionen |
---|---|---|---|---|---|
gpt-4o |
5 B | 200 Mio. | 50 M | 90 K | N/V |
gpt-4o-mini |
15 B | 1 Mrd. | 50 M | 90 K | N/V |
gpt-4-turbo |
300 M | 80 Mio. | 40 M | 90 K | N/V |
gpt-4 |
150 M | 30 M | 5 M | 100 | N/V |
gpt-35-turbo |
10 Mrd. | 1 Mrd. | 100 M | 2 M | 50 |
Mrd. = Milliarde | M = Million | K = Tausend
Batchobjekt
Eigenschaft | type | Definition |
---|---|---|
id |
Zeichenfolge | |
object |
Zeichenfolge | batch |
endpoint |
Zeichenfolge | Der vom Batch verwendete API-Endpunkt |
errors |
Objekt | |
input_file_id |
Zeichenfolge | Die ID der Eingabedatei für den Batch |
completion_window |
Zeichenfolge | Der Zeitrahmen, in dem der Batch verarbeitet werden soll |
status |
Zeichenfolge | Der aktuelles Status des Batches. Mögliche Werte: validating , failed , in_progress , finalizing , completed , expired , cancelling , cancelled . |
output_file_id |
Zeichenfolge | Die ID der Datei, die die Ausgabe der erfolgreich ausgeführten Anforderungen enthält. |
error_file_id |
Zeichenfolge | Die ID der Datei, die die Ausgabe der fehlerhaften Anforderungen enthält. |
created_at |
integer | Ein Zeitstempel, wann dieser Batch erstellt wurde (in Unix-Epochen). |
in_progress_at |
integer | Ein Zeitstempel, wann dieser Batch mit dem Fortschritt begonnen hat (in Unix-Epochen). |
expires_at |
integer | Ein Zeitstempel, wann dieser Batch ablaufen wird (in Unix-Epochen). |
finalizing_at |
integer | Ein Zeitstempel, wann der Abschluss dieses Batches begonnen hat (in Unix-Epochen). |
completed_at |
integer | Ein Zeitstempel, wann der Abschluss dieses Batches begonnen hat (in Unix-Epochen). |
failed_at |
integer | Ein Zeitstempel, wann dieser Batch fehlgeschlagen ist (in Unix-Epochen). |
expired_at |
integer | Ein Zeitstempel, wann dieser Batch abgelaufen ist (in Unix-Epochen). |
cancelling_at |
integer | Ein Zeitstempel, wann das cancelling für diesen Batch begonnen hat (in Unix-Epochen). |
cancelled_at |
integer | Ein Zeitstempel, wann dieser Batch cancelled wurde (in Unix-Epochen). |
request_counts |
Objekt | Objektstruktur:total ganze Zahl Die Gesamtanzahl der Anforderungen im Batch. completed ganze Zahl Die Anzahl der Anforderungen im Batch, die erfolgreich abgeschlossen wurden. failed ganze Zahl Die Anzahl der Anforderungen im Batch, die fehlgeschlagen sind. |
metadata |
Karte | Ein Satz aus Schlüssel-Wert-Paaren, die an den Batch angefügt werden können. Diese Eigenschaft kann hilfreich sein, um zusätzliche Informationen zum Batch in einem strukturierten Format zu speichern. |
Häufig gestellte Fragen (FAQ)
Können Bilder mit der Batch-API verwendet werden?
Diese Funktion ist auf bestimmte multimodale Modelle beschränkt. Derzeit unterstützt nur GPT-4o Bilder als Teil von Batchanforderungen. Bilder können als Eingabe entweder über eine Bild-URL oder eine base64-codierte Darstellung des Bilds bereitgestellt werden. Bilder für einen Batch werden derzeit nicht mit GPT-4 Turbo unterstützt.
Kann ich die Batch-API mit fein abgestimmten Modellen verwenden?
Dies wird derzeit nicht unterstützt.
Kann ich die Batch-API für Einbettungsmodelle verwenden?
Dies wird derzeit nicht unterstützt.
Funktioniert die Inhaltsfilterung mit der globalen Batchbereitstellung?
Ja. Ähnlich wie bei anderen Bereitstellungstypen können Sie Inhaltsfilter erstellen und sie dem Bereitstellungstyp „globaler Batch“ zuordnen.
Kann ich zusätzliches Kontingent anfordern?
Ja, auf der Seite für das Kontingent in der Studio-Benutzeroberfläche. Die standardmäßige Kontingentzuweisung finden Sie im Artikel Kontingent und Grenzwerte.
Was geschieht, wenn die API meine Anforderung nicht innerhalb des 24-Stunden-Zeitrahmens abschließt?
Wir bemühen uns, diese Anforderungen innerhalb von 24 Stunden zu verarbeiten. Aufträge, die länger dauern, laufen nicht ab. Sie können den Auftrag jederzeit abbrechen. Wenn Sie den Auftrag abbrechen, werden alle verbleibenden Arbeiten abgebrochen, und alle bereits abgeschlossenen Arbeiten werden zurückgegeben. Abgeschlossene Arbeiten werden Ihnen in Rechnung gestellt.
Wie viele Anforderungen kann ich mithilfe von Batch in die Warteschlange stellen?
Es gibt keine feste Grenze für die Anzahl der Anforderungen, die Sie per Batch verarbeiten können, aber es hängt von Ihrem Kontingent von Tokens in der Warteschlange ab. Ihr Kontingent von Tokens in der Warteschlange enthält die maximale Anzahl von Eingabetokens, die Sie gleichzeitig in die Warteschlange einreihen können.
Sobald die Batchanforderung abgeschlossen wurde, wird Ihr Batchgrenzwert zurückgesetzt, da Ihre Eingabetokens gelöscht werden. Der Grenzwert hängt von der Anzahl der globalen Anforderungen in der Warteschlange ab. Wenn die Batch-API-Warteschlange Ihre Batches schnell verarbeitet, wird Ihr Batchgrenzwert schneller zurückgesetzt.
Problembehandlung
Ein Auftrag ist erfolgreich, wenn status
den Wert Completed
hat. Erfolgreiche Aufträge generieren weiterhin eine „error_file_id“, aber sie wird einer leeren Datei mit null Bytes zugeordnet.
Wenn ein Auftragsfehler auftritt, finden Sie Details zum Fehler in der errors
-Eigenschaft:
"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
},
}
Fehlercodes
Fehlercode | Definition |
---|---|
invalid_json_line |
Eine oder mehrere Zeilen in Ihrer Eingabedatei konnten nicht als gültiges JSON analysiert werden. Stellen Sie sicher, dass keine Tippfehler vorhanden sind und dass öffnende und schließende Klammern und Anführungszeichen ordnungsgemäß gemäß JSON-Standard formatiert sind. Übermitteln Sie die Anforderung dann neu. |
too_many_tasks |
Die Anzahl der Anforderungen in der Eingabedatei überschreitet den maximal zulässigen Wert von 100.000. Stellen Sie sicher, dass die Gesamtanzahl der Anforderungen unter 100.000 liegt. Übermitteln Sie den Auftrag dann neu. |
url_mismatch |
Entweder weist eine Zeile in der Eingabedatei eine URL auf, die nicht mit den restlichen Zeilen übereinstimmt, oder die in der Eingabedatei angegebene URL stimmt nicht mit der erwarteten Endpunkt-URL überein. Stellen Sie sicher, dass alle Anforderungs-URLs identisch sind und dass sie mit der Endpunkt-URL übereinstimmen, die Ihrer Azure OpenAI-Bereitstellung zugeordnet ist. |
model_not_found |
Der Name der Azure OpenAI-Modellimplementierung, der in der model -Eigenschaft der Eingabedatei angegeben wurde, wurde nicht gefunden.Stellen Sie sicher, dass dieser Name auf eine gültige Azure OpenAI-Modellimplementierung verweist. |
duplicate_custom_id |
Die benutzerdefinierte ID für diese Anforderung ist ein Duplikat der benutzerdefinierten ID in einer anderen Anforderung. |
empty_batch |
Überprüfen Sie Ihre Eingabedatei, um sicherzustellen, dass der Parameter für die benutzerdefinierte ID für jede Anforderung im Batch eindeutig ist. |
model_mismatch |
Der Name der Azure OpenAI-Modellimplementierung, der in der model -Eigenschaft dieser Anforderung in der Eingabedatei angegeben wurde, stimmt nicht mit dem Rest der Datei überein.Stellen Sie sicher, dass alle Anforderungen im Batch auf dieselbe AOAI-Modellimplementierung in der model -Eigenschaft der Anforderung verweisen. |
invalid_request |
Das Schema der Eingabezeile oder die Bereitstellungs-SKU ist ungültig. Stellen Sie sicher, dass die Eigenschaften der Anforderung in Ihrer Eingabedatei den erwarteten Eingabeeigenschaften entsprechen und dass die SKU der Azure OpenAI-Bereitstellung für Batch-API-Anforderungen globalbatch lautet. |
Bekannte Probleme
- Ressourcen, die mit der Azure CLI bereitgestellt werden, sind beim globalen Azure OpenAI-Batch nicht sofort einsatzbereit. Dies liegt an einem Problem, bei dem Ressourcen, die mit dieser Methode bereitgestellt werden, Endpunktdomänen aufweisen, die nicht dem Muster
https://your-resource-name.openai.azure.com
folgen. Dieses Problem lässt sich umgehen, indem eine neue Azure OpenAI-Ressource mithilfe einer der anderen gängigen Bereitstellungsmethoden bereitgestellt wird, die das Setup der Unterdomäne beim Bereitstellungsprozess ordnungsgemäß verarbeiten.
Siehe auch
- Erfahren Sie mehr über die Bereitstellungstypen für Azure OpenAI
- Erfahren Sie mehr über Kontingente und Grenzwerte in Azure OpenAI