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à.
Questa sezione ti guida a provare alcune operazioni comuni in Amazon Bedrock con AWS Python per verificare che le autorizzazioni e l'autenticazione siano configurate correttamente. Prima di eseguire i seguenti esempi, è necessario verificare di aver soddisfatto i seguenti prerequisiti:
Prerequisiti
-
Hai un Account AWS utente o un ruolo con autenticazione configurata e le autorizzazioni necessarie per Amazon Bedrock. Altrimenti, segui i passaggi indicati in. Nozioni di base sull'API
-
Hai richiesto l'accesso al Amazon Titan Text G1 - Express modello. Altrimenti, segui i passaggi indicati inRichiedi l'accesso a un modello di base Amazon Bedrock.
-
Hai installato e configurato l'autenticazione per l' AWS SDK for Python (Boto3). Per installare Boto3, segui i passaggi indicati in Quickstart nella documentazione di Boto3.
Verifica di aver configurato le tue credenziali per utilizzare Boto3 seguendo i passaggi riportati in. Ottieni le credenziali per concedere l'accesso programmatico
Verifica che le tue autorizzazioni siano configurate correttamente per Amazon Bedrock, utilizzando un utente o un ruolo che hai configurato con le autorizzazioni appropriate.
La documentazione di Amazon Bedrock include anche esempi di codice per altri linguaggi di programmazione. Per ulteriori informazioni, consulta Esempi di codice per l'utilizzo di Amazon Bedrock AWS SDKs.
Argomenti
Elenca i modelli base che Amazon Bedrock ha da offrire
L'esempio seguente esegue l'ListFoundationModelsoperazione utilizzando un client Amazon Bedrock. ListFoundationModels
elenca i modelli base (FMs) disponibili in Amazon Bedrock nella tua regione. Esegui il seguente script SDK for Python per creare un client Amazon Bedrock e testarne il funzionamento: ListFoundationModels
"""
Lists the available Amazon Bedrock models.
"""
import logging
import json
import boto3
from botocore.exceptions import ClientError
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def list_foundation_models(bedrock_client):
"""
Gets a list of available Amazon Bedrock foundation models.
:return: The list of available bedrock foundation models.
"""
try:
response = bedrock_client.list_foundation_models()
models = response["modelSummaries"]
logger.info("Got %s foundation models.", len(models))
return models
except ClientError:
logger.error("Couldn't list foundation models.")
raise
def main():
"""Entry point for the example. Uses the AWS SDK for Python (Boto3)
to create an Amazon Bedrock client. Then lists the available Bedrock models
in the region set in the callers profile and credentials.
"""
bedrock_client = boto3.client(service_name="bedrock")
fm_models = list_foundation_models(bedrock_client)
for model in fm_models:
print(f"Model: {model['modelName']}")
print(json.dumps(model, indent=2))
print("---------------------------\n")
logger.info("Done.")
if __name__ == "__main__":
main()
Se lo script ha esito positivo, la risposta restituisce un elenco di modelli base disponibili in Amazon Bedrock.
Invia un messaggio di testo a un modello e genera una risposta testuale con InvokeModel
L'esempio seguente esegue l'InvokeModeloperazione utilizzando un client Amazon Bedrock. InvokeModel
consente di inviare un prompt per generare una risposta modello. Esegui il seguente script SDK for Python per creare un client di runtime Amazon Bedrock e generare una risposta di testo con l'operazione:
# Use the native inference API to send a text message to Amazon Titan Text G1 - Express.
import boto3
import json
from botocore.exceptions import ClientError
# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")
# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"
# Define the prompt for the model.
prompt = "Describe the purpose of a 'hello world' program in one line."
# Format the request payload using the model's native structure.
native_request = {
"inputText": prompt,
"textGenerationConfig": {
"maxTokenCount": 512,
"temperature": 0.5,
"topP": 0.9
},
}
# Convert the native request to JSON.
request = json.dumps(native_request)
try:
# Invoke the model with the request.
response = brt.invoke_model(modelId=model_id, body=request)
except (ClientError, Exception) as e:
print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
exit(1)
# Decode the response body.
model_response = json.loads(response["body"].read())
# Extract and print the response text.
response_text = model_response["results"][0]["outputText"]
print(response_text)
Se il comando ha esito positivo, la risposta restituisce il testo generato dal modello in risposta al prompt.
Invia un prompt di testo a un modello e genera una risposta testuale con Converse
L'esempio seguente esegue l'operazione Converse utilizzando un client Amazon Bedrock. Consigliamo di utilizzare Converse
operation over InvokeModel
quando supportato, perché unifica la richiesta di inferenza tra i modelli Amazon Bedrock e semplifica la gestione delle conversazioni a più turni. Esegui il seguente script SDK for Python per creare un client di runtime Amazon Bedrock e generare una risposta di testo con l'operazione: Converse
# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express.
import boto3
from botocore.exceptions import ClientError
# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")
# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"
# Start a conversation with the user message.
user_message = "Describe the purpose of a 'hello world' program in one line."
conversation = [
{
"role": "user",
"content": [{"text": user_message}],
}
]
try:
# Send the message to the model, using a basic inference configuration.
response = brt.converse(
modelId=model_id,
messages=conversation,
inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9},
)
# Extract and print the response text.
response_text = response["output"]["message"]["content"][0]["text"]
print(response_text)
except (ClientError, Exception) as e:
print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
exit(1)
Se il comando ha esito positivo, la risposta restituisce il testo generato dal modello in risposta al prompt.