View a markdown version of this page

Inferência usando a API de conclusão de bate-papo - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Inferência usando a API de conclusão de bate-papo

A API OpenAI Chat Completions gera respostas conversacionais usando os modelos Amazon Bedrock. Você pode usar a API Chat Completions nos bedrock-runtime endpoints bedrock-mantle e nos endpoints. Recomendamos usar o bedrock-mantle endpoint sempre que possível. Para obter detalhes completos da API, consulte a documentação de conclusão de OpenAI bate-papo.

Endpoint URL base Autenticação
bedrock-mantle (recomendado) https://bedrock-mantle.{region}.api.aws/v1/chat/completions Chave ou AWS credenciais da API Amazon Bedrock
bedrock-runtime https://bedrock-runtime.{region}.amazonaws.com/v1/chat/completions AWS credenciais (SigV4) ou chave de API Amazon Bedrock

Conclusões de bate-papo com o endpoint Bedrock-mantle

O bedrock-mantle endpoint oferece suporte à autenticação de chave da API Amazon Bedrock e ao OpenAI SDK.

Listar modelos disponíveis

Para listar os modelos disponíveis no bedrock-mantle endpoint, escolha a guia do seu método preferido e siga as etapas:

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"

Criar um preenchimento de chat

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

OpenAI SDK (Python)

Configure o OpenAI cliente usando variáveis de 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

Faça uma solicitação POST para/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

Para receber respostas incrementalmente, escolha a guia do seu método preferido e siga as etapas:

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

Faça uma solicitação POST para /v1/chat/completions com stream definido comotrue:

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

Conclusões de bate-papo com o endpoint de tempo de execução básico

O bedrock-runtime endpoint oferece suporte à autenticação AWS SigV4 e à autenticação de chave de API Amazon Bedrock.

Listar modelos disponíveis

Para listar os modelos disponíveis no bedrock-runtime endpoint, escolha a guia do seu método preferido e siga as etapas:

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"

Criar um preenchimento de chat

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

OpenAI SDK (Python)

Configure o OpenAI cliente para apontar para o bedrock-runtime endpoint:

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 obter mais detalhes sobre modelos, regiões e recursos avançados compatíveis com o bedrock-runtime endpoint, consulteAPI de conclusão de bate-papo (referência antiga).

Incluir uma barreira de proteção em um preenchimento de chat

Para incluir proteções na entrada e nas respostas do modelo, aplique uma barreira de proteção ao executar a invocação do modelo incluindo os seguintes parâmetros extras como campos no corpo da solicitação:

  • extra_headers: está associado a um objeto que conte´m os seguintes campos, que especificam cabeçalhos extras na solicitação:

    • X-Amzn-Bedrock-GuardrailIdentifier: (obrigatório) o ID da barreira de proteção.

    • X-Amzn-Bedrock-GuardrailVersion: (obrigatório) a versão da barreira de proteção.

    • X-Amzn-Bedrock-Trace: (opcional) se é necessário ou não habilitar o rastreamento da barreira de proteção.

  • extra_body: está associado a um objeto. Nesse objeto, você pode incluir o campo amazon-bedrock-guardrailConfig, que está associado a um objeto que contém os seguintes campos:

Para ter mais informações sobre esses parâmetros nas Barreiras de Proteção do Amazon Bedrock, consulte Testar uma barreira de proteção.

Para ver exemplos de uso de barreiras de proteção com preenchimentos de chat da OpenAI, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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