View a markdown version of this page

Inferenza utilizzando l'API Chat Completions - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inferenza utilizzando l'API Chat Completions

L'API OpenAI Chat Completions genera risposte conversazionali utilizzando i modelli Amazon Bedrock. Puoi utilizzare l'API Chat Completions sia sugli endpoint che sugli endpoint. bedrock-mantle bedrock-runtime Ti consigliamo di utilizzare l'bedrock-mantleendpoint ogni volta che è possibile. Per i dettagli completi sull'API, consulta la documentazione OpenAIChat Completions.

Endpoint URL di base Autenticazione
bedrock-mantle (consigliato) https://bedrock-mantle.{region}.api.aws/v1/chat/completions Chiave o AWS credenziali API Amazon Bedrock
bedrock-runtime https://bedrock-runtime.{region}.amazonaws.com/v1/chat/completions AWS credenziali (SigV4) o chiave API Amazon Bedrock

Ogni endpoint ha le proprie quote di token per modello. Per i dettagli sulle quote applicate al traffico su ciascun endpoint, consulta e. Quote per l'endpoint del substrato roccioso Quote per l'endpoint bedrock-runtime

Completamento della chat con l'endpoint bedrock-mantle

L'bedrock-mantleendpoint supporta l'autenticazione con chiave API Amazon Bedrock e l'OpenAISDK.

Elenca i modelli disponibili

Per elencare i modelli disponibili sull'bedrock-mantleendpoint, scegli la scheda relativa al tuo metodo preferito, quindi segui i passaggi:

OpenAI SDK (Python)
# List all available models using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() models = client.models.list() for model in models.data: print(model.id)
HTTP request
# List all available models # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X GET $OPENAI_BASE_URL/models \ -H "Authorization: Bearer $OPENAI_API_KEY"

Creare un completamento di chat

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

OpenAI SDK (Python)

Configura il OpenAI client utilizzando le variabili di ambiente:

# Create a chat completion using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="openai.gpt-oss-120b", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ] ) print(completion.choices[0].message)
HTTP request

Fai una richiesta POST a/v1/chat/completions:

# Create a chat completion # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ] }'
Streaming

Per ricevere risposte in modo incrementale, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:

OpenAI SDK (Python)
# Stream chat completion responses incrementally using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="openai.gpt-oss-120b", messages=[{"role": "user", "content": "Tell me a story"}], stream=True ) for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="")
HTTP request

Effettua una richiesta POST a /v1/chat/completions with stream set totrue:

# Stream chat completion responses incrementally # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "messages": [ {"role": "user", "content": "Tell me a story"} ], "stream": true }'

Completamenti della chat con l'endpoint bedrock-runtime

L'bedrock-runtimeendpoint supporta l'autenticazione AWS SigV4 e l'autenticazione con chiave API Amazon Bedrock.

Elenca i modelli disponibili

Per elencare i modelli disponibili sull'bedrock-runtimeendpoint, scegli la scheda relativa al tuo metodo preferito, quindi segui i passaggi:

OpenAI SDK (Python)
from openai import OpenAI import os client = OpenAI( base_url="https://bedrock-runtime.us-east-1.amazonaws.com/v1", api_key=os.environ.get("AWS_BEARER_TOKEN_BEDROCK") ) models = client.models.list() for model in models.data: print(model.id)
HTTP request
curl -X GET "https://bedrock-runtime.us-east-1.amazonaws.com/v1/models" \ -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK"

Creare un completamento di chat

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

OpenAI SDK (Python)

Configura il OpenAI client in modo che punti all'bedrock-runtimeendpoint:

from openai import OpenAI import os client = OpenAI( base_url="https://bedrock-runtime.us-east-1.amazonaws.com/v1", api_key=os.environ.get("AWS_BEARER_TOKEN_BEDROCK") ) response = client.chat.completions.create( model="us.anthropic.claude-sonnet-4-6", messages=[{"role": "user", "content": "Hello"}] ) print(response.choices[0].message.content)
HTTP request (API key)
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \ -d '{ "model": "us.anthropic.claude-sonnet-4-6", "messages": [{"role": "user", "content": "Hello"}] }'
HTTP request (SigV4)
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/v1/chat/completions" \ -H "Content-Type: application/json" \ --aws-sigv4 "aws:amz:us-east-1:bedrock" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -d '{ "model": "us.anthropic.claude-sonnet-4-6", "messages": [{"role": "user", "content": "Hello"}] }'

Per maggiori dettagli sui modelli, le regioni e le funzionalità avanzate dell'bedrock-runtimeendpoint supportati, consulta. API Chat Completions (riferimento precedente)

Includere un guardrail in un completamento di chat

Per includere misure di sicurezza nell’input e nelle risposte del modello, applica un guardrail quando esegui l’invocazione del modello includendo i seguenti parametri aggiuntivi come campi nel corpo della richiesta.

  • extra_headers: esegue il mapping a un oggetto contenente i seguenti campi, che specificano intestazioni aggiuntive nella richiesta:

    • X-Amzn-Bedrock-GuardrailIdentifier (obbligatorio): ID del guardrail.

    • X-Amzn-Bedrock-GuardrailVersion (obbligatorio): versione del guardrail.

    • X-Amzn-Bedrock-Trace (facoltativo): indica se abilitare o meno la traccia del guardrail.

  • extra_body: esegue il mapping a un oggetto. In tale oggetto è possibile includere il campo amazon-bedrock-guardrailConfig, che viene mappato a un oggetto contenente i campi seguenti:

Per ulteriori informazioni sui questi parametri in Guardrail per Amazon Bedrock, consulta Testare il guardrail.

Per esempi di utilizzo dei guardrail con Chat Completions OpenAI, scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

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);