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à.
Invocare un modello con l’API Chat Completions OpenAI
Per eseguire l’inferenza del modello, è possibile utilizzare l’API Create chat completion OpenAI con i modelli Amazon Bedrock.
L’API Create chat completion può essere chiamata nei modi seguenti:
Per ulteriori informazioni, scegli un argomento:
Regioni e modelli supportati per l’API Chat Completions OpenAI
L’API Create chat completion può essere utilizzata con tutti i modelli OpenAI supportati in Amazon Bedrock e nelle Regioni AWS che li supportano. Per ulteriori informazioni sulle Regioni e sui modelli supportati, consulta Modelli di fondazione supportati in Amazon Bedrock.
Prerequisiti per utilizzare l’API Chat Completions
Per visualizzare i prerequisiti per l’utilizzo dell’API Chat Completions, scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- OpenAI SDK
-
-
Autenticazione: OpenAI SDK supporta solo l’autenticazione con una chiave API Amazon Bedrock. Genera una chiave API Amazon Bedrock per autenticare la tua richiesta. Per ulteriori informazioni sulle chiavi API Amazon Bedrock e su come generarle, consulta Generare chiavi API Amazon Bedrock per autenticarsi facilmente nell’API Amazon Bedrock.
-
Endpoint: trova l’endpoint corrispondente alla Regione AWS da utilizzare negli endpoint e nelle quote di runtime Amazon Bedrock. Se utilizzi un SDK AWS, potrebbe essere sufficiente specificare solo il codice della Regione e non tutto l’endpoint durante la configurazione del client.
-
Installa OpenAI SDK: per ulteriori informazioni, consulta Librerie nella documentazione OpenAI.
- HTTP request
-
-
Autenticazione: è possibile autenticarsi con le proprie credenziali AWS o con una chiave API Amazon Bedrock.
Configura le tue credenziali AWS o genera una chiave API Amazon Bedrock per autenticare la tua richiesta.
-
Endpoint: trova l’endpoint corrispondente alla Regione AWS da utilizzare negli endpoint e nelle quote di runtime Amazon Bedrock. Se utilizzi un SDK AWS, potrebbe essere sufficiente specificare solo il codice della Regione e non tutto l’endpoint durante la configurazione del client.
Creare un completamento di chat
Per i dettagli sull’API Create chat completion, consulta le risorse seguenti nella documentazione OpenAI:
Amazon Bedrock attualmente non supporta le altre operazioni dell’API Chat Completions OpenAI.
Per le modalità di utilizzo dell’API Create chat completion OpenAI, scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:
- OpenAI SDK (Python)
-
Per creare un completamento di chat con un SDK OpenAI, esegui queste operazioni:
-
Importa il componente SDK OpenAI e configura il client con i seguenti campi:
-
base_url: anteponi l’endpoint di runtime Amazon Bedrock a /openai/v1, come nel seguente formato:
https://${bedrock-runtime-endpoint}/openai/v1
-
api_key: specifica una chiave API Amazon Bedrock.
-
default_headers: se è necessario includere intestazioni, includile come coppie chiave-valore in questo oggetto. In alternativa, puoi specificare le intestazioni in extra_headers quando effettui una chiamata API specifica.
-
Utilizza il metodo chat.completions.create() con il client e specifica almeno model e messages nel corpo della richiesta.
L’esempio seguente chiama l’API Create chat completion in us-west-2. Sostituisci $AWS_BEARER_TOKEN_BEDROCK con la chiave API effettiva.
from openai import OpenAI
client = OpenAI(
base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1",
api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key
)
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
-
Per creare un completamento della chat con una richiesta HTTP diretta, esegui queste operazioni:
-
Specifica l’URL anteponendo l’endpoint di runtime Amazon Bedrock a /openai/v1/chat/completions, come nel seguente formato:
https://${bedrock-runtime-endpoint}/openai/v1/chat/completions
-
Specifica le credenziali AWS o una chiave API Amazon Bedrock nell’intestazione Authorization.
-
Nel corpo della richiesta, specifica almeno model e messages nel corpo della richiesta.
L’esempio seguente utilizza il comando curl per chiamare l’API Create chat completion in us-west-2. Sostituisci $AWS_BEARER_TOKEN_BEDROCK con la chiave API effettiva.
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!"
}
]
}'
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);