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á.
Execute exemplos de solicitações de API do Amazon Bedrock por meio do AWS SDK para Python (SDK for Python) (Boto3)
Esta seção orienta você a experimentar algumas operações comuns no Amazon Bedrock com o AWS Python para testar se suas permissões e autenticação estão configuradas corretamente. Antes de executar os exemplos abaixo, verifique se os seguintes pré-requisitos foram atendidos:
Pré-requisitos
-
Você tem um Conta da AWS usuário ou uma função com a autenticação configurada e as permissões necessárias para o Amazon Bedrock. Caso contrário, siga as etapas em Conceitos básicos da API da .
-
Você solicitou acesso ao Amazon Titan Text G1 - Express modelo. Caso contrário, siga as etapas em Solicitar acesso a um modelo de base do Amazon Bedrock.
-
Você instalou e configurou a autenticação para o AWS SDK para Python (Boto3). Para instalar o Boto3, siga as etapas em Quickstart
na documentação do Boto3. Verifique se você configurou suas credenciais para usar o Boto3 seguindo as etapas em Obtenha credenciais para conceder acesso programático.
Teste se suas permissões estão configuradas corretamente para o Amazon Bedrock, usando um usuário ou uma função que você configurou com as permissões adequadas.
A documentação do Amazon Bedrock também inclui exemplos de código para outras linguagens de programação. Para obter mais informações, consulte Exemplos de código para o Amazon Bedrock usando AWS SDKs.
Tópicos
Listar os modelos de base que o Amazon Bedrock oferece
O exemplo a seguir executa a ListFoundationModelsoperação usando um cliente Amazon Bedrock. ListFoundationModels
lista os modelos de fundação (FMs) que estão disponíveis no Amazon Bedrock em sua região. Execute o seguinte script SDK para Python para criar um cliente Amazon Bedrock e testar a operação: 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 o script for bem-sucedido, a resposta retornará uma lista de modelos de base que estão disponíveis no Amazon Bedrock.
Envie uma solicitação de texto para um modelo e gere uma resposta de texto com InvokeModel
O exemplo a seguir executa a InvokeModeloperação usando um cliente Amazon Bedrock. InvokeModel
permite que você envie uma solicitação para gerar uma resposta do modelo. Execute o seguinte script do SDK para Python para criar um cliente de runtime do Amazon Bedrock e gerar uma resposta de texto com a operação :
# 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 o comando for bem-sucedido, a resposta retornará o texto gerado pelo modelo em resposta ao prompt.
Enviar um prompt de texto a um modelo e gerar uma resposta de texto com Converse
O exemplo a seguir executa a operação Converse usando um cliente do Amazon Bedrock. É recomendável usar a operação Converse
em vez de InvokeModel
quando compatível, pois ela unifica a solicitação de inferência nos modelos do Amazon Bedrock e simplifica o gerenciamento de conversas em vários turnos. Execute o seguinte script do SDK para Python para criar um cliente de runtime do Amazon Bedrock e gerar uma resposta de texto com a operação 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 o comando for bem-sucedido, a resposta retornará o texto gerado pelo modelo em resposta ao prompt.