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.
Invoca un modelo con la API OpenAI Chat Completions
Puede ejecutar la inferencia de modelos mediante la API de finalización de chats OpenAI Create con los modelos de Amazon Bedrock.
Puede llamar a la API Create para completar el chat de las siguientes maneras:
Seleccione un tema para obtener más información:
Modelos y regiones compatibles con la API OpenAI Chat Completions
Puede usar la API Create para completar chats con todos los OpenAI modelos compatibles con Amazon Bedrock y en las AWS regiones que admiten estos modelos. Para obtener más información sobre los modelos y las regiones compatibles, consulteModelos fundacionales compatibles en Amazon Bedrock.
Requisitos previos para usar la API Chat Completions
Para ver los requisitos previos para usar la API Chat Completions, elige la pestaña que corresponda al método que prefieras y, a continuación, sigue los pasos:
- OpenAI SDK
-
- HTTP request
-
-
Autenticación: puede autenticarse con sus AWS credenciales o con una clave de API de Amazon Bedrock.
Configure sus AWS credenciales o genere una clave de API de Amazon Bedrock para autenticar su solicitud.
-
Punto final: busque el punto final que corresponda a la AWS región para usarlo en los puntos de enlace y las cuotas de Amazon Bedrock Runtime. Si usa un AWS SDK, es posible que solo necesite especificar el código de región y no todo el punto final al configurar el cliente.
-
Acceso al modelo: solicite acceso a un modelo de Amazon Bedrock compatible con esta función. Para obtener más información, consulte Adición o eliminación del acceso a los modelos fundacionales de Amazon Bedrock.
Crea un chat para completar
Consulte los siguientes recursos de la OpenAI documentación para obtener más información sobre la API Create para completar el chat:
Amazon Bedrock actualmente no admite las demás operaciones de la API de finalización de OpenAI chats.
Para obtener información sobre cómo usar la API OpenAI Create para completar chats, elige la pestaña que corresponda al método que prefieras y, a continuación, sigue estos pasos:
- OpenAI SDK (Python)
-
Para crear una finalización de chat con el OpenAI SDK, haga lo siguiente:
-
Importa el OpenAI SDK y configura el cliente con los siguientes campos:
-
base_url
— Prefije el prefijo del punto final de Amazon Bedrock Runtime a/openai/v1
, como en el siguiente formato:
https://${bedrock-runtime-endpoint}
/openai/v1
-
api_key
— Especifique una clave de API de Amazon Bedrock.
-
Utilice el chat.completions.create()
método con el cliente y especifique como mínimo la model
y messages
en el cuerpo de la solicitud.
En el siguiente ejemplo, se activa la API Create Chat Complete. us-west-2
$AWS_BEARER_TOKEN_BEDROCK
Sustitúyala por tu clave de API actual:
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
-
Para completar un chat con una solicitud HTTP directa, haz lo siguiente:
-
Especifique la URL añadiendo el prefijo del punto final de Amazon Bedrock Runtime a/openai/v1/chat/completions
, como en el siguiente formato:
https://${bedrock-runtime-endpoint}
/openai/v1/chat/completions
-
Especifique sus AWS credenciales o una clave de API de Amazon Bedrock en el Authorization
encabezado.
-
En el cuerpo de la solicitud, especifique al menos la model
y messages
en el cuerpo de la solicitud.
En el siguiente ejemplo, se llama a la API Create Chat Completeus-west-2
. $AWS_BEARER_TOKEN_BEDROCK
Sustitúyala por tu clave de API actual:
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!"
}
]
}'
Incluye una barrera al finalizar el 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 en la solicitud:
-
X-Amzn-Bedrock-GuardrailIdentifier
(obligatorio): el identificador de la barandilla.
-
X-Amzn-Bedrock-GuardrailVersion
(obligatorio): la versión de la barandilla.
-
X-Amzn-Bedrock-Trace
(opcional): si se debe habilitar o no el rastreo de la barandilla.
-
extra_body
— Mapea un objeto. En ese objeto, puede incluir el amazon-bedrock-guardrailConfig
campo, que se asigna a un objeto que contiene los siguientes campos:
Para obtener más información sobre estos parámetros en Amazon Bedrock Guardrails, consulte. Pon a prueba tu barandilla
Para ver ejemplos del uso de barandillas al finalizar el OpenAI chat, elige la pestaña del método que prefieras y, a continuación, sigue 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);