View a markdown version of this page

Inferencia mediante la API Chat Completions - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Inferencia mediante la API Chat Completions

La API OpenAI Chat Completions genera respuestas conversacionales mediante los modelos de Amazon Bedrock. Puede usar la API Chat Completions tanto en el terminal como en el terminal. bedrock-mantle bedrock-runtime Recomendamos usar el bedrock-mantle punto final siempre que sea posible. Para obtener información completa sobre la API, consulta la documentación de OpenAI Chat Completions.

Punto de conexión URL base Autenticación
bedrock-mantle (recomendado) https://bedrock-mantle.{region}.api.aws/v1/chat/completions Clave o AWS credenciales de la API de Amazon Bedrock
bedrock-runtime https://bedrock-runtime.{region}.amazonaws.com/v1/chat/completions AWS credenciales (SiGv4) o clave de API de Amazon Bedrock

Finaliza el chat con el punto final de Bedrock-Mantle

El bedrock-mantle punto de conexión admite la autenticación de claves de la API de Amazon Bedrock y el OpenAI SDK.

Enumere los modelos disponibles

Para ver una lista de los modelos disponibles en el bedrock-mantle terminal, elija la pestaña correspondiente al método que prefiera y, a continuación, siga los pasos:

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"

Creación de una finalización de chat

Elija la pestaña del método que prefiera y siga estos pasos:

OpenAI SDK (Python)

Configure el OpenAI cliente mediante variables de entorno:

# 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

Realice una solicitud 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!"} ] }'
Transmisión

Para recibir respuestas de forma incremental, elige la pestaña del método que prefieras y, a continuación, sigue los pasos:

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

Realiza una solicitud POST /v1/chat/completions con el siguiente stream ajuste: true

# 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 }'

Completa el chat con el terminal de tiempo de ejecución básico

El bedrock-runtime punto final admite la autenticación AWS SigV4 y la autenticación de claves de la API de Amazon Bedrock.

Enumere los modelos disponibles

Para ver una lista de los modelos disponibles en el bedrock-runtime terminal, elija la pestaña correspondiente al método que prefiera y, a continuación, siga los pasos:

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"

Creación de una finalización de chat

Elija la pestaña del método que prefiera y siga estos pasos:

OpenAI SDK (Python)

Configure el OpenAI cliente para que apunte al bedrock-runtime punto final:

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"}] }'

Para obtener más información sobre los modelos, las regiones y las funciones avanzadas compatibles con el bedrock-runtime terminal, consulteAPI Chat Completions (referencia antigua).

Inclusión de una barrera de protección en una finalización de chat

Para incluir medidas de seguridad en las entradas y respuestas del modelo, aplique una barrera de protección al ejecutar la invocación del modelo e incluya los siguientes parámetros adicionales como campos en el cuerpo de la solicitud:

  • extra_headers: se asigna a un objeto que contiene los siguientes campos, que especifican encabezados adicionales de la solicitud:

    • X-Amzn-Bedrock-GuardrailIdentifier (obligatorio): el ID de la barrera de protección.

    • X-Amzn-Bedrock-GuardrailVersion (obligatorio): la versión de la barrera de protección.

    • X-Amzn-Bedrock-Trace (opcional): si se debe habilitar o no el seguimiento de la barrera de protección.

  • extra_body: se asigna a un objeto. En ese objeto, puede incluir el campo amazon-bedrock-guardrailConfig, que se asigna a un objeto que contiene los siguientes campos:

Para obtener más información sobre estos parámetros en Barreras de protección para Amazon Bedrock, consulte Prueba de la barrera de protección.

Para ver ejemplos del uso de barreras de protección con finalizaciones de chat de OpenAI, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

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