Modelle von OpenAI - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Modelle von OpenAI

OpenAI bietet die folgenden Open-Weight-Modelle an:

  • gpt-oss-20b – Ein kleineres Modell, das für geringere Latenz und lokale oder spezielle Anwendungsfälle optimiert ist

  • gpt-oss-120b – Ein größeres Modell, das für die Produktion und allgemeine Anwendungsfälle oder Anwendungsfälle mit anspruchsvollem Reasoning optimiert ist

In der folgenden Tabelle werden Informationen zu den Modellen zusammengefasst:

Informationen gpt-oss-20b gpt-oss-120b
Datum der Veröffentlichung 5. August 2025 5. August 2025
Modell-ID openai.gpt-oss-20b-1:0 openai.gpt-oss-120b-1:0
Product iD (Produkt-ID) N/A N/A
Unterstützte Eingabemodalitäten Text Text
Unterstützte Ausgabemodalitäten Text Text
Kontextfenster 128 000 128 000

Die OpenAI-Modelle unterstützen folgende Features:

OpenAI-Anfragestext

Informationen zu den Parametern im Anforderungstext und ihren Beschreibungen finden Sie unter Erstellen der Chat-Vervollständigung in der OpenAI-Dokumentation.

Verwenden Sie die Anforderungstextfelder wie folgt:

  • Fügen Sie in einer InvokeModel- oder OpenAI-Chat-Vervollständigungsanforderung die Felder in den Anforderungstext ein.

  • Gehen Sie in einer Converse-Anfrage wie folgt vor:

    • Ordnen Sie messages wie folgt zu:

      • Fügen Sie für jede Nachricht, deren Rolle developer ist, den content zu einem SystemContentBlock im system-Array hinzu.

      • Fügen Sie für jede Nachricht, deren Rolle user oder assistant ist, den content zu einem ContentBlock im content-Feld hinzu und geben Sie die role im role-Feld einer Nachricht im messages-Array an.

    • Ordnen Sie die Werte für die folgenden Felder den entsprechenden Feldern im inferenceConfig-Objekt zu:

      OpenAI field Converse-Feld
      max_completion_tokens maxTokens
      stop stopSequences
      temperature temperature
      top_p topP
    • Schließt alle anderen Felder in das additionalModelRequestFields-Objekt ein.

Überlegungen zum Aufsetzen des Anforderungstextes
  • Die OpenAI-Modelle unterstützen nur Texteingabe und -ausgabe.

  • Der Wert im Feld model muss mit dem Wert im Header übereinstimmen. Sie können dieses Feld weglassen, damit es automatisch mit demselben Wert wie im Header gefüllt wird.

  • Der Wert im Feld stream muss mit der API-Operation übereinstimmen, die Sie verwenden. Sie können dieses Feld weglassen, damit es automatisch mit dem korrekten Wert gefüllt wird.

    • Wenn Sie InvokeModel verwenden, muss der Wert stream false sein.

OpenAI-Antworttext

Der Antworttext für OpenAI-Modelle entspricht dem Objekt zur Chat-Vervollständigung, das von OpenAI zurückgegeben wurde. Weitere Informationen zu den Antwortfeldern finden Sie unter Das Chat-Vervollständigungsobjekt in der OpenAI-Dokumentation.

Anmerkung

Wenn Sie InvokeModel verwenden, geht das Reasoning des Modells, umgeben von <reasoning>-Tags, dem Textinhalt der Antwort voraus.

Beispiel für die Verwendung von OpenAI-Modellen

Dieser Abschnitt enthält einige Beispiele für die Verwendung der OpenAI-Modelle.

Bevor Sie diese Beispiele ausprobieren, überprüfen Sie, ob Sie die Voraussetzungen erfüllt haben:

  • Authentifizierung – Sie können sich entweder mit Ihren AWS-Anmeldeinformationen oder mit einem API-Schlüssel von Amazon Bedrock authentifizieren.

    Richten Sie Ihre AWS-Anmeldeinformationen ein oder generieren Sie einen API-Schlüssel von Amazon Bedrock, um Ihre Anforderung zu authentifizieren.

    Anmerkung

    Wenn Sie die Chat-Vervollständigungs-API von OpenAI verwenden, können Sie sich nur mit einem API-Schlüssel von Amazon Bedrock authentifizieren.

  • Endpunkt – Suchen Sie den Endpunkt, der der AWS-Region entspricht, die in Runtime-Endpunkte und -kontingente von Amazon Bedrock verwendet werden soll. Wenn Sie ein AWS SDK verwenden, müssen Sie bei der Einrichtung des Clients möglicherweise nur den Regionscode und nicht den gesamten Endpunkt angeben. Sie müssen einen Endpunkt verwenden, der einer Region zugeordnet ist, die von dem im Beispiel verwendeten Modell unterstützt wird.

  • Modellzugriff – Fordern Sie den Zugriff auf ein OpenAI-Modell an. Weitere Informationen finden Sie unter Zugriff auf Amazon Bedrock Foundation-Modelle in AWS GovCloud (USA).

  • (Wenn im Beispiel ein SDK verwendet wird) Installieren Sie das SDK – Richten Sie nach der Installation Standardanmeldeinformationen und eine Standard-AWS-Region ein. Wenn Sie keine Standardanmeldeinformationen oder -region einrichten, müssen Sie diese in den entsprechenden Codebeispielen explizit angeben. Weitere Informationen zu Anbietern standardisierter Anmeldeinformationen finden Sie unter Standardisierte Anmeldeinformationsanbieter für AWS SDKs und Tools.

    Anmerkung

    Wenn Sie das OpenAI SDK verwenden, können Sie sich nur mit einem API-Schlüssel von Amazon Bedrock authentifizieren und müssen den Amazon-Bedrock-Endpunkt explizit festlegen.

Erweitern Sie den Abschnitt für das Beispiel, das Sie sehen möchten:

Wenn Sie Beispiele für die Verwendung der OpenAI-API zum Erstellen von Chat-Vervollständigungen sehen möchten, wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

OpenAI SDK (Python)

Das folgende Python-Skript ruft die API zum Erstellen von Chat-Vervollständigungen mit dem OpenAI-Python SDK auf:

from openai import OpenAI client = OpenAI( base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key ) completion = client.chat.completions.create( model="openai.gpt-oss-20b-1:0", messages=[ { "role": "developer", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] ) print(completion.choices[0].message)
HTTP request using curl

Sie können den folgenden Befehl in einem Terminal ausführen, um die API zum Erstellen von Chat-Vervollständigungen mit curl aufzurufen:

curl -X POST https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \ -d '{ "model": "openai.gpt-oss-20b-1:0", "messages": [ { "role": "developer", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie dann die Schritte:

Python
import boto3 import json # Initialize the Bedrock Runtime client client = boto3.client('bedrock-runtime') # Model ID model_id = 'openai.gpt-oss-20b-1:0' # Create the request body native_request = { "model": model_id, # You can omit this field "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "assistant", "content": "Hello! How can I help you today?" }, { "role": "user", "content": "What is the weather like today?" } ], "max_completion_tokens": 150, "temperature": 0.7, "top_p": 0.9, "stream": False # You can omit this field } # Make the InvokeModel request response = client.invoke_model( modelId=model_id, body=json.dumps(native_request) ) # Parse and print the message for each choice in the chat completion response_body = json.loads(response['body'].read().decode('utf-8')) for choice in response_body['choices']: print(choice['message']['content'])

Wenn Sie die einheitliche Converse-API verwenden, müssen Sie die OpenAI-Felder zum Erstellen von Chat-Vervollständigungen dem entsprechenden Feld im Converse-Anfragestext zuordnen.

Vergleichen Sie beispielsweise den folgenden Text der Anforderung zur Chat-Vervollständigung mit dem entsprechenden Anforderungstext von Converse:

Create chat completion request body
{ "model": "openai.gpt-oss-20b-1:0", "messages": [ { "role": "developer", "content": "You are a helpful assistant." }, { "role": "assistant", "content": "Hello! How can I help you today?" }, { "role": "user", "content": "What is the weather like today?" } ], "max_completion_tokens": 150, "temperature": 0.7 }
Converse request body
{ "messages": [ { "role": "user", "content": [ { "text": "Hello! How can I help you today?" } ] }, { "role": "user", "content": [ { "text": "What is the weather like today?" } ] } ], "system": [ { "text": "You are a helpful assistant." } ], "inferenceConfig": { "maxTokens": 150, "temperature": 0.7 } }

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

Python
# Use the Conversation API to send a text message to Anthropic Claude. import boto3 from botocore.exceptions import ClientError # Initialize the Bedrock Runtime client client = boto3.client("bedrock-runtime") # Set the model ID model_id = "openai.gpt-oss-20b-1:0" # Set up messages and system message messages = [ { "role": "assistant", "content": [ { "text": "Hello! How can I help you today?" } ] }, { "role": "user", "content": [ { "text": "What is the weather like today?" } ] } ] system = [ { "text": "You are a helpful assistant." } ] try: # Send the message to the model, using a basic inference configuration. response = client.converse( modelId=model_id, messages=messages, system=system, inferenceConfig={ "maxTokens": 150, "temperature": 0.7, "topP": 0.9 }, ) # Extract and print the response text. for content_block in response["output"]["message"]["content"]: print(content_block) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1)

Wenden Sie beim Ausführen eines Modellaufrufs einen Integritätsschutz an, indem Sie die Integritätsschutz-ID, die Version und die Information angeben, ob der Integritätsschutz-Trace im Header einer Modellaufrufanforderung aktiviert werden soll oder nicht.

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

Python
import boto3 from botocore.exceptions import ClientError import json # Initiate the Amazon Bedrock Runtime client bedrock_runtime = boto3.client("bedrock-runtime") # Model ID model_id = "openai.gpt-oss-20b-1:0" # Replace with actual values from your guardrail guardrail_id = "GR12345" guardrail_version = "DRAFT" # Create the request body native_request = { "model": model_id, # You can omit this field "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "assistant", "content": "Hello! How can I help you today?" }, { "role": "user", "content": "What is the weather like today?" } ], "max_completion_tokens": 150, "temperature": 0.7, "top_p": 0.9, "stream": False # You can omit this field } try: response = bedrock_runtime.invoke_model( modelId=model_id, body=json.dumps(native_request), guardrailIdentifier=guardrail_id, guardrailVersion=guardrail_version, trace='ENABLED', ) response_body = json.loads(response.get('body').read()) print("Received response from InvokeModel API (Request Id: {})".format(response['ResponseMetadata']['RequestId'])) print(json.dumps(response_body, indent=2)) except ClientError as err: print("RequestId = " + err.response['ResponseMetadata']['RequestId']) raise err

Wenn Sie Beispiele für die Verwendung des Integritätsschutzes mit OpenAI-Chat-Vervollständigungen sehen möchten, wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

OpenAI SDK (Python)
import openai from openai import OpenAIError # Endpoint for Amazon Bedrock Runtime bedrock_endpoint = "https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1" # Model ID model_id = "openai.gpt-oss-20b-1:0" # Replace with actual values bedrock_api_key = "$AWS_BEARER_TOKEN_BEDROCK" guardrail_id = "GR12345" guardrail_version = "DRAFT" client = openai.OpenAI( api_key=bedrock_api_key, base_url=bedrock_endpoint, ) try: response = client.chat.completions.create( model=model_id, # Specify guardrail information in the header extra_headers={ "X-Amzn-Bedrock-GuardrailIdentifier": guardrail_id, "X-Amzn-Bedrock-GuardrailVersion": guardrail_version, "X-Amzn-Bedrock-Trace": "ENABLED", }, # Additional guardrail information can be specified in the body extra_body={ "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz" # Used for input tagging } }, messages=[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "assistant", "content": "Hello! How can I help you today?" }, { "role": "user", "content": "What is the weather like today?" } ] ) request_id = response._request_id print(f"Request ID: {request_id}") print(response) except OpenAIError as e: print(f"An error occurred: {e}") if hasattr(e, 'response') and e.response is not None: request_id = e.response.headers.get("x-request-id") print(f"Request ID: {request_id}")
OpenAI SDK (Java)
import com.openai.client.OpenAIClient; import com.openai.client.okhttp.OpenAIOkHttpClient; import com.openai.core.http.HttpResponseFor; import com.openai.models.chat.completions.ChatCompletion; import com.openai.models.chat.completions.ChatCompletionCreateParams; // Endpoint for Amazon Bedrock Runtime String bedrockEndpoint = "http://bedrock-runtime.us-west-2.amazonaws.com/openai/v1" // Model ID String modelId = "openai.gpt-oss-20b-1:0" // Replace with actual values String bedrockApiKey = "$AWS_BEARER_TOKEN_BEDROCK" String guardrailId = "GR12345" String guardrailVersion = "DRAFT" OpenAIClient client = OpenAIOkHttpClient.builder() .apiKey(bedrockApiKey) .baseUrl(bedrockEndpoint) .build() ChatCompletionCreateParams request = ChatCompletionCreateParams.builder() .addUserMessage("What is the temperature in Seattle?") .model(modelId) // Specify additional headers for the guardrail .putAdditionalHeader("X-Amzn-Bedrock-GuardrailIdentifier", guardrailId) .putAdditionalHeader("X-Amzn-Bedrock-GuardrailVersion", guardrailVersion) // Specify additional body parameters for the guardrail .putAdditionalBodyProperty( "amazon-bedrock-guardrailConfig", JsonValue.from(Map.of("tagSuffix", JsonValue.of("xyz"))) // Allows input tagging ) .build(); HttpResponseFor<ChatCompletion> rawChatCompletionResponse = client.chat().completions().withRawResponse().create(request); final ChatCompletion chatCompletion = rawChatCompletionResponse.parse(); System.out.println(chatCompletion);

Mit Batch-Inferenz können Sie Modellinferenzen asynchron mit mehreren Prompts ausführen. Wenn Sie Batch-Inferenz mit einem OpenAI-Modell ausführen möchten, gehen Sie wie folgt vor:

  1. Erstellen Sie eine JSONL-Datei und füllen Sie sie zumindest mit der Mindestanzahl von JSON-Objekten, die jeweils durch eine neue Zeile getrennt sind. Jedes modelInput-Objekt muss dem Format des Anforderungstexts zur Erstellung der OpenAI-Chat-Vervollständigung entsprechen. Im Folgenden finden Sie ein Beispiel für die ersten beiden Zeilen einer JSONL-Datei, die Anforderungstexte für OpenAI enthält.

    { "recordId": "RECORD1", "modelInput": { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Can you generate a question with a factual answer?" } ], "max_completion_tokens": 1000 } } { "recordId": "RECORD2", "modelInput": { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "What is the weather like today?" } ], "max_completion_tokens": 1000 } } ...
    Anmerkung

    Das Feld model ist optional, da der Batch-Inferenzservice es für Sie auf der Grundlage des Headers einfügt, wenn Sie es weglassen.

    Stellen Sie sicher, dass Ihre JSONL-Datei den Batch-Inferenzkontingenten entspricht, wie unter Formatieren und Hochladen Ihrer Batch-Inferenzdaten beschrieben.

  2. Laden Sie die Datei in einen Amazon-S3-Bucket hoch.

  3. Senden Sie eine CreateModelInvocationJob-Anfrage mit einem Endpunkt der Amazon-Bedrock-Steuerebene mit dem im Feld inputDataConfig angegebenen S3-Bucket aus dem vorherigen Schritt und dem im Feld modelId angegebenen OpenAI-Modell.

Ein durchgehendes Codebeispiel finden Sie unter Batch-Inferenz – Codebeispiel. Ersetzen Sie die Werte durch die entsprechenden Konfigurationen für die OpenAI-Modelle.