OpenAIModelle - 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.

OpenAIModelle

OpenAIbietet die folgenden Modelle mit offenem Gewicht 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 hohem logischem Denken optimiert ist.

In der folgenden Tabelle sind 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
Eingabemodalitäten werden unterstützt Text Text
Output-Modalitäten werden unterstützt Text Text
Kontextfenster 128.000 128.000

Die OpenAI Modelle unterstützen die folgenden Funktionen:

OpenAIHauptteil der Anfrage

Informationen zu den Parametern im Anfragetext und ihren Beschreibungen finden Sie in der OpenAI Dokumentation unter Chat-Abschluss erstellen.

Verwenden Sie die Felder für den Anfragetext auf folgende Weise:

  • Fügen Sie InvokeModeldie Felder in den Text der Anfrage in den Text der Anfrage ein. OpenAI

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

    • Ordnen Sie das messages wie folgt zu:

      • Fügen Sie für jede Nachricht, deren Rolle darin bestehtdeveloper, das content A SystemContentBlockin das system Array ein.

      • Fügen Sie für jede Nachrichtassistant, deren Rolle user oder ist, das content zu a ContentBlockim content Feld hinzu und geben Sie das 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 Umgekehrtes Feld
      max_completion_tokens maxTokens
      stop Stop-Sequenzen
      temperature temperature
      top_p topP
    • Schließt alle anderen Felder in das additionalModelRequestFields Objekt ein.

Überlegungen bei der Erstellung des Anfragetexts
  • Die OpenAI Modelle unterstützen nur Texteingabe und Textausgabe.

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

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

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

OpenAIAntworttext

Der Antworttext für OpenAI Modelle entspricht dem Objekt zum Abschluss des Chats, das von zurückgegeben wurdeOpenAI. Weitere Informationen zu den Antwortfeldern finden Sie in der OpenAI Dokumentation unter Das Chat-Abschlussobjekt.

Anmerkung

Wenn Sie dies verwendenInvokeModel, geht die Argumentation des Modells, umgeben von <reasoning> Tags, dem Textinhalt der Antwort voraus.

Beispiel für die Verwendung von Modellen OpenAI

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 Amazon Bedrock API-Schlüssel authentifizieren.

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

    Anmerkung

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

  • Endpunkt — Finden Sie den Endpunkt, der der AWS Region entspricht, die in Amazon Bedrock Runtime-Endpunkten und -Kontingenten verwendet werden soll. Wenn Sie ein AWS SDK verwenden, müssen Sie bei der Einrichtung des Clients möglicherweise nur den Regionalcode 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 hinzufügen oder entfernen.

  • (Wenn das Beispiel ein SDK verwendet) Installieren Sie das SDK — Richten Sie nach der Installation Standardanmeldedaten und eine AWS Standardregion ein. Wenn Sie keine Standardanmeldedaten oder eine Region einrichten, müssen Sie diese in den entsprechenden Codebeispielen explizit angeben. Weitere Informationen zu standardisierten Anbietern von Anmeldeinformationen finden Sie unter AWS SDKs Tools für standardisierte Anmeldeinformationsanbieter.

    Anmerkung

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

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

Um Beispiele für die Verwendung der OpenAI Create Chat Completion API zu sehen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

OpenAI SDK (Python)

Das folgende Python-Skript ruft die Create Chat Completion API 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" ) 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 Create Chat Completion API 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 und folgen Sie dann den Schritten:

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 du die vereinheitlichte Converse-API verwendest, musst du die Felder „Chat-Abschluss OpenAI erstellen“ dem entsprechenden Feld im Converse-Anfragetext zuordnen.

Vergleichen Sie beispielsweise den folgenden Text der Anfrage zum Abschluss eines Chats mit dem entsprechenden Anfragetext 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 und folgen Sie dann den Schritten:

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 eine Leitplanke an, indem Sie die Guardrail-ID und die Version angeben und angeben, ob der Guardrail-Trace aktiviert werden soll oder nicht, im Header einer Modellaufrufanforderung.

Wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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

Um Beispiele für die Verwendung von Leitplanken mit OpenAI Chat-Abschlüssen zu sehen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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 Eingabeaufforderungen ausführen. Um Batch-Inferenz mit einem OpenAI Modell auszuführen, gehen Sie wie folgt vor:

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

    { "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 model Feld ist optional, da der Batch Inference Service es für Sie auf der Grundlage der Kopfzeile einfügt, wenn Sie es weglassen.

    Vergewissern Sie sich, dass Ihre JSONL-Datei den Batch-Inferenzquoten entspricht, wie unter beschrieben. Formatieren Sie Ihre Batch-Inferenzdaten und laden Sie sie hoch

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

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

Ein end-to-end Codebeispiel finden Sie unterCodebeispiel für Batch-Inferenz. Ersetzen Sie es durch die richtigen Konfigurationen für die OpenAI Modelle.