使用 Amazon 筆記本運行示例 Amazon 基岩API請求 SageMaker - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon 筆記本運行示例 Amazon 基岩API請求 SageMaker

本節指導您使用 Amazon SageMaker 筆記本在 Amazon 基岩中嘗試一些常見操作,以測試您的 Amazon 基岩角色許可是否已正確設置。在執行下列範例之前,請先檢查您是否符合下列先決條件:

先決條件

  • 你有一個 AWS 帳戶 並具有權限訪問具有 Amazon 基岩必要許可的角色。否則,請按照中的步驟操作我已經有一個 AWS 帳戶

  • 您已要求存取 Amazon Titan Text G1 - Express 模型。否則,請按照中的步驟操作請求存取 Amazon Bedrock 基礎模型

  • 執行下列步驟來設定 SageMaker 和建立記事本的IAM權限:

    1. 我已經有一個 AWS 帳戶透過主控台或修改您在其中設定之 Amazon 基岩角色的信任政策CLIAPI將下列信任政策附加到角色,以允許 Amazon 基岩和 SageMaker 服務同時擔任 Amazon 基岩角色:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockTrust", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "SagemakerTrust", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 登入您剛修改其信任政策的 Amazon 基岩角色。

    3. 請依照教學課程建立 Amazon SageMaker 筆記本執行個體中的步驟,並指定ARN您為建立 SageMaker 筆記本執行個體而建立的 Amazon 基岩角色。

    4. 當筆記本執行個體的 [狀態] 為時 InService,請選擇執行個體,然後選擇 [開啟] JupyterLab。

打開 SageMaker 筆記本後,您可以嘗試以下示例:

列出 Amazon 基岩必須提供的基礎模型

下列範例會使用 Amazon 基岩用戶端執行ListFoundationModels作業。 ListFoundationModels列出您所在地區的 Amazon 基岩中可用的基礎模型 (FMs)。SDK對 Python 腳本運行以下命令以創建 Amazon 基岩客戶端並測試操作 ListFoundationModels

# Use the ListFoundationModels API to show the models that are available in your region. import boto3 # Create an &BR; client in the &region-us-east-1; Region. bedrock = boto3.client( service_name="bedrock" ) bedrock.list_foundation_models()

如果指令碼成功,回應會傳回 Amazon 基岩中可用的基礎模型清單。

提交文字提示至模型並產生回應

下列範例會使用 Amazon 基岩用戶端執行匡威作業。 Converse可讓您提交產生模型回應的提示。SDK對 Python 腳本運行以下命令以創建 Amazon 基岩運行時客戶端並測試匡威操作:

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

如果指令成功,則回應會傳回模型為回應提示而產生的文字。