

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コンソールと API を使用した詳細な開始方法
<a name="detailed-getting-started"></a>

コンテンツは近日公開されます。

# Amazon Bedrock コンソールで使用を開始する
<a name="getting-started-console"></a>

このセクションでは、 AWS コンソールの[プレイグラウンド](playgrounds.md)を使用して Amazon Bedrock 基盤モデル (FM) にテキストプロンプトを送信し、テキストまたはイメージレスポンスを生成する方法について説明します。次の例を実行する前に、次の前提条件が満たされていることを確認してください。

**前提条件**
+  AWS アカウント と には、Amazon Bedrock に必要なアクセス許可を持つ、そのアカウントのロールにアクセスするアクセス許可があります。そうでない場合は、「[クイックスタート](getting-started.md)」の手順を実行します。
+ 米国東部 (バージニア北部) リージョンにいる。リージョンを変更するには、コンソールの右上、IAM ロールの横にあるリージョン名を選択します。米国東部 (バージニア北部) (us-east-1) を選択します。

**Topics**
+ [テキストプレイグラウンドを調べる](#getting-started-text)
+ [イメージプレイグラウンドを調べる](#getting-started-image)

## テキストプレイグラウンドを調べる
<a name="getting-started-text"></a>

次の例は、テキストプレイグラウンドの使用方法を示します。

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインの **[プレイグラウンド]** から **[テキスト]** を選択します。

1. **[モデルを選択]** を選択し、プロバイダーとモデルを選択します。この例では、**[Amazon Titan Text G1 - Lite]** を選択します。次に、**[適用]** を選択します。

1. テキストパネルの下からデフォルトのプロンプトを選択するか、「**Describe the purpose of a "hello world" program in one line**」などのプロンプトをテキストパネルに入力します。

1. **[実行]** を選択して、モデルで推論を実行します。生成されたテキストは、テキストパネルのプロンプトの下に表示されます。

## イメージプレイグラウンドを調べる
<a name="getting-started-image"></a>

次の例は、イメージプレイグラウンドの使用方法を示します。

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインの **[プレイグラウンド]** から **[イメージ]** を選択します。

1. **[モデルを選択]** を選択し、プロバイダーとモデルを選択します。この例では、**[Amazon Titan Image Generator G1 V1]** を選択します。次に、**[適用]** を選択します。

1. テキストパネルの下からデフォルトのプロンプトを選択するか、「**Generate an image of happy cats**」などのプロンプトをテキストパネルに入力します。

1. **[設定]** ペインで、**[画像の数]** を [**1**] に変更します。

1. **[実行]** を選択して、モデルで推論を実行します。生成されたイメージがプロンプトの上に表示されます。

# API の使用を開始する
<a name="getting-started-api"></a>

このセクションでは、 AWS API を使用して Amazon Bedrock リクエストを行うように環境を設定する方法について説明します。 AWS では、エクスペリエンスを合理化するために以下のツールを提供しています。
+ AWS Command Line Interface (AWS CLI)
+ AWS SDKs
+ Amazon SageMaker AI ノートブックを使用

API の使用を開始するには、プログラムによるアクセス権を付与するために認証情報が必要です。次のセクションが該当している場合、展開して指示に従ってください。該当しない場合は、その後のセクションに進みます。

## を初めて使用する AWS
<a name="gs-api-new-to-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

## AWS CLI または AWS SDK をインストールする必要があります
<a name="gs-api-cli-sdk-install"></a>

をインストールするには AWS CLI、[「 のインストールまたは最新バージョンへの更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」の手順に従います。

 AWS SDK をインストールするには、 [AWS](https://aws.amazon.com/developer/tools/)で使用するプログラミング言語に対応するタブを選択します。 AWS ソフトウェア開発キット (SDKs) は、多くの一般的なプログラミング言語で使用できます。各 SDK には、デベロッパーが好みの言語でアプリケーションを簡単に構築できるようになる API、コード例、およびドキュメントが提供されています。SDK は、次のような便利なタスクを自動的に実行します。
+ サービスリクエストに暗号署名する
+ リクエストを再試行する
+ エラー応答を処理する

## プログラムによるアクセス権を付与するために認証情報を取得する
<a name="gs-grant-program-access"></a>

ユーザーが の AWS 外部とやり取りする場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。 は、セキュリティ上の懸念に応じて複数のオプション AWS を提供します。

**注記**  
Amazon Bedrock API にすばやくアクセスするために使用できる API キーを生成するためのステップバイステップガイドについては、「[Amazon Bedrock API キーの使用を開始する: 30 日間のキーを生成し、最初の API コールを行う](getting-started-api-keys.md)」を参照してください。  
セキュリティ要件を強化するために、このセクションに進みます。

プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権が必要なプリンシパル | 目的 | 方法 | 
| --- | --- | --- | 
| IAM ユーザー | 長期認証情報の期間を制限して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/getting-started-api.html)  | 
| IAM ロール | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/getting-started-api.html)  | 

## IAM ユーザー用にアクセスキーを作成する方法
<a name="create-user-time-bound"></a>

IAM ユーザーのアクセスキーを使用する場合は、制限付きインラインポリシーを含めて IAM ユーザーの有効期限を設定する AWS ことをお勧めします。

**重要**  
次の警告に注意してください。  
アカウントのルート認証情報を使用して AWS リソースにアクセス**しないでください**。これらの認証情報は無制限のアカウントアクセスを提供し、取り消すのが困難です。
アプリケーションファイルにリテラルアクセスキーや認証情報を**配置しないでください**。これを行うと、パブリックリポジトリにプロジェクトをアップロードするなど、誤って認証情報が公開されるリスクが発生します。
プロジェクト領域に認証情報を含むファイルを**含めないでください**。
アクセスキーを安全に管理します。[アカウント識別子を確認する](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)ためであっても、アクセスキーを認可されていない当事者に提供しないでください。提供すると、第三者がアカウントへの永続的なアクセスを取得する場合があります。
共有認証情報ファイルに保存されている AWS 認証情報はすべてプレーンテキストで保存されることに注意してください。

詳細については、「」の[AWS 「アクセスキーを管理するためのベストプラクティス](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)」を参照してください AWS 全般のリファレンス。

**IAM ユーザーの作成**

1.  AWS マネジメントコンソール ホームページで、IAM サービスを選択するか、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) の IAM コンソールに移動します。

1. ナビゲーションペインで **[ユーザー]**、**[ユーザーの作成]** の順に選択します。

1. IAM コンソールのガイダンスに従って、プログラムユーザー ( へのアクセスなし AWS マネジメントコンソール) と アクセス許可なしを設定します。

**制限された時間枠にユーザーアクセスを制限する**

作成する IAM ユーザーアクセスキーは長期的な認証情報です。これらの認証情報が誤って処理された場合に有効期限が切れるようにするには、キーの有効性が切れる日付を指定したインラインポリシーを作成して、これらの認証情報に期限を設定することができます。

1. 先ほど作成した IAM ユーザーを開きます。**[アクセス許可]** タブで **[アクセス許可の追加]** を選択したら、**[インラインポリシーの作成]** を選択します。

1. JSON エディタで、次のアクセス許可を指定します。このポリシーを使用するには、ポリシー例の `aws:CurrentTime` タイムスタンプ値の値を独自の終了日に置き換えます。
**注記**  
IAM では、アクセスキーを 12 時間に制限することが推奨されます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "DateGreaterThan": {
             "aws:CurrentTime": "2024-01-01T00:00:000"
           }
         }
       }
     ]
   }
   ```

------

**アクセスキーの作成**

1. **[ユーザー詳細]** のページで **[セキュリティ認証情報]** タブを選択します。[**Access keys (アクセスキー)**] セクションで、[**Create access key (アクセスキーを作成)**] を選択します。

1. これらのアクセスキーを **[その他]** として使用することを示して、**[アクセスキーの作成]** を選択します。

1. **[Retrieve access key]** (アクセスキーの取得) ページで、**[Show]** (表示) を選択し、ユーザーのシークレットアクセスキーの値を表示します。認証情報をコピーするか、csv ファイルをダウンロードできます。

**重要**  
この IAM ユーザーが不要になった場合は、削除して[AWS セキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)に従うことをお勧めします。 にアクセスするときは、[AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) を通じて一時的な認証情報を使用することを人間のユーザーに要求することをお勧めします AWS。

## ユーザーまたはロールに Amazon Bedrock のアクセス許可をアタッチする
<a name="gs-api-br-permissions"></a>

プログラムによるアクセス権の認証情報を設定したら、Amazon Bedrock 関連の一連のアクションにアクセスできるように、ユーザーまたは IAM ロールのアクセス許可を設定する必要があります。これらのアクセス許可を設定するには、次の手順を実行します。

1.  AWS マネジメントコンソール ホームページで、IAM サービスを選択するか、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) の IAM コンソールに移動します。

1. **[ユーザー]** または **[ロール]** を選択して、ユーザーまたはロールを指定します。

1. アクセス**許可**タブで、アクセス**許可の追加** を選択し、** AWS 管理ポリシーの追加** を選択します。[AmazonBedrockFullAccess]() AWS 管理ポリシーを選択します。

1. ユーザーまたはロールにモデルへのサブスクライブを許可するには、**[インラインポリシーの作成]** を選択して JSON エディタで次のアクセス許可を指定します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "MarketplaceBedrock",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe",
                 "aws-marketplace:Subscribe"
             ],
             "Resource": "*"
         }
     ]
   }
   ```

------

## Amazon Bedrock への API コールの実行を試す
<a name="gs-try-bedrock"></a>

すべての前提条件を満たしたら、次のいずれかのトピックを選択して、Amazon Bedrock モデルを使用したモデル呼び出しリクエストの作成をテストします。

**Topics**
+ [プログラムによるアクセス権を付与するために認証情報を取得する](#gs-grant-program-access)
+ [ユーザーまたはロールに Amazon Bedrock のアクセス許可をアタッチする](#gs-api-br-permissions)
+ [Amazon Bedrock への API コールの実行を試す](#gs-try-bedrock)
+ [Amazon Bedrock API キーの使用を開始する: 30 日間のキーを生成し、最初の API コールを行う](getting-started-api-keys.md)
+ [を使用してサンプル Amazon Bedrock API リクエストを実行する AWS Command Line Interface](getting-started-api-ex-cli.md)
+ [AWS SDK for Python (Boto3) を使用して Amazon Bedrock API リクエストの例を実行する](getting-started-api-ex-python.md)
+ [Amazon SageMaker AI ノートブックを使用してサンプル Amazon Bedrock API リクエストを実行する](getting-started-api-ex-sm.md)

# Amazon Bedrock API キーの使用を開始する: 30 日間のキーを生成し、最初の API コールを行う
<a name="getting-started-api-keys"></a>

このチュートリアルでは、30 日後に期限切れになる長期的な Amazon Bedrock API キーを作成し、それを使用して Python を使ったシンプルな [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API コールを行う方法について説明します。これは、複雑な AWS 認証情報を設定せずに Amazon Bedrock の実験を開始する最も速い方法です。

**警告**  
長期 API キーが推奨されるのは、Amazon Bedrock を試す場合と開発する場合のみです。本番環境のアプリケーションでは、IAM ロールや一時的な認証情報など、[長期的なアクセスキーに対する代替方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)を使用してください。

30 日後に期限切れになる長期的な Amazon Bedrock API キーを作成するには、次の手順に従います。

1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール ([https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)) を開きます。

1. 左側のナビゲーションペインで、**[API キー]** を選択します。

1. **[長期 API キー]** タブで、**[長期 API キーを生成]** を選択します。

1. **[API キーの有効期限]** セクションで、**[30 日]** を選択します。

1. **[Generate]** (生成) を選択します。生成するキーは、アタッチされた [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) ポリシーで定義されているように、コア Amazon Bedrock アクションを実行するためのアクセス許可を提供します。

1. 生成された API キーをコピーし、安全に保存します。このキーは次のステップで必要になります。
**重要**  
API キーは 1 回しか表示されません。ダイアログを閉じる前に、必ずコピーして保存してください。API キーは 30 日後に期限切れになります。同じ手順に従って新しく生成するか、より安全な認証方法に移行して継続的に使用できるようにすることを検討してください。

1. *\$1\$1api-key\$1* を生成された API キー値に置き換えて API キーを環境変数として設定し、それを使用して任意の方法でレスポンスを生成します。

------
#### [ Python ]

   ```
   import boto3
   import os
   
   # Set the API key as an environment variable
   os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
   
   # Create the Bedrock client
   client = boto3.client(
       service_name="bedrock-runtime",
       region_name="us-east-1"
   )
   
   # Define the model and message
   model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
   messages = [{"role": "user", "content": [{"text": "Hello! Can you tell me about Amazon Bedrock?"}]}]
   
   # Make the API call
   response = client.converse(
       modelId=model_id,
       messages=messages,
   )
   
   # Print the response
   print(response['output']['message']['content'][0]['text'])
   ```

------
#### [ HTTP client using Python ]

   ```
   import requests
   
   url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"
   
   payload = {
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
   }
   
   headers = {
       "Content-Type": "application/json",
       "Authorization": "Bearer ${api-key}"
   }
   
   response = requests.request("POST", url, json=payload, headers=headers)
   
   print(response.text)
   ```

------
#### [ HTTP request using cURL ]

   ```
   curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer ${api-key}" \
     -d '{
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
     }'
   ```

------

お疲れ様でした。Amazon Bedrock API キーが正常に生成され、Amazon Bedrock サービスへの最初の API コールが行われました。さらに Amazon Bedrock アクションを検討したら、短期的な Amazon Bedrock API キーや AWS全体の一時的な認証情報など、より安全な認証方法に移行する必要があります。詳細については、以下のリソースを参照してください。
+ **さまざまなモデルを試す** – 「[Amazon Bedrock 基盤モデルの情報](foundation-models-reference.md)」で、Amazon Bedrock で使用できる他の基盤モデルを確認し、コードの `model_id` を変更してモデルを試してください。
+ **モデル推論を確認する** – 「[プロンプトを送信し、モデル推論を使用してレスポンスを生成する](inference.md)」で、Amazon Bedrock に用意されている概念とオプションについて読み、モデル推論を使用したレスポンスの生成について確認してください。
+ **より安全な認証方法で本番環境を計画する** – Amazon Bedrock API キーの詳細については、「ビルド」の章と、より安全で短期的な Amazon Bedrock API キーを作成する方法を参照してください。本番稼働用アプリケーションを構築する準備ができたら、[長期アクセスキーの代替](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys)案を確認して、他の AWS サービスへのアクセスも許可するより安全なオプションを確認する必要があります。

# を使用してサンプル Amazon Bedrock API リクエストを実行する AWS Command Line Interface
<a name="getting-started-api-ex-cli"></a>

このセクションでは、 を使用して Amazon Bedrock の一般的なオペレーションを試 AWS Command Line Interface し、アクセス許可と認証が適切に設定されていることをテストする方法について説明します。次の例を実行する前に、次の前提条件が満たされていることを確認してください。

**前提条件**
+  AWS アカウント 認証が設定され、Amazon Bedrock に必要なアクセス許可を持つ とユーザーまたはロールがあります。そうでない場合は、「[API の使用を開始する](getting-started-api.md)」の手順を実行します。
+  AWS CLIのインストールと認証の設定が完了していること。をインストールするには AWS CLI、[「 のインストールまたは最新バージョンへの更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」の手順に従います。「[プログラムによるアクセス権を付与するために認証情報を取得する](getting-started-api.md#gs-grant-program-access)」の手順に従って、CLI を使用するための認証情報を設定していることを検証します。

適切なアクセス許可を指定して設定したユーザーまたはロールを使用して、Amazon Bedrock のアクセス許可が正しく設定されていることをテストします。

**Topics**
+ [Amazon Bedrock が提供する基盤モデルを一覧表示する](#getting-started-api-ex-cli-listfm)
+ [InvokeModel を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する](#getting-started-api-ex-cli-invoke-text)
+ [Converse を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する](#getting-started-api-ex-cli-converse)

## Amazon Bedrock が提供する基盤モデルを一覧表示する
<a name="getting-started-api-ex-cli-listfm"></a>

次の例では、 を使用して [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html) オペレーションを実行します AWS CLI。 は、リージョンの Amazon Bedrock で使用できる基盤モデル (FMs) を`ListFoundationModels`一覧表示します。ターミナルで、以下のコマンドを実行します。

```
aws bedrock list-foundation-models
```

コマンドが成功すると、レスポンスは Amazon Bedrock で使用できる基盤モデルのリストを返します。

## InvokeModel を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する
<a name="getting-started-api-ex-cli-invoke-text"></a>

次の例では、 を使用して [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) オペレーションを実行します AWS CLI。 `InvokeModel`では、モデルレスポンスを生成するプロンプトを送信できます。ターミナルで、以下のコマンドを実行します。

```
aws bedrock-runtime invoke-model \
--model-id amazon.titan-text-express-v1 \
--body '{"inputText": "Describe the purpose of a \"hello world\" program in one line.", "textGenerationConfig" : {"maxTokenCount": 512, "temperature": 0.5, "topP": 0.9}}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output-text.txt
```

コマンドが成功すると、モデルによって生成された応答が `invoke-model-output-text.txt` ファイルに書き込まれます。テキストレスポンスは、付随する情報とともに、`outputText` フィールドに返されます。

## Converse を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する
<a name="getting-started-api-ex-cli-converse"></a>

次の例では、 を使用して [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) オペレーションを実行します AWS CLI。 `Converse`では、モデルレスポンスを生成するプロンプトを送信できます。サポートされている場合、`InvokeModel` で `Converse` オペレーションを使用することをお勧めします。これにより、Amazon Bedrock モデル間で推論リクエストを統合し、マルチターン対話の管理を簡素化できます。ターミナルで、以下のコマンドを実行します。

```
aws bedrock-runtime converse \
--model-id amazon.titan-text-express-v1 \
--messages '[{"role": "user", "content": [{"text": "Describe the purpose of a \"hello world\" program in one line."}]}]' \
--inference-config '{"maxTokens": 512, "temperature": 0.5, "topP": 0.9}'
```

コマンドが成功すると、モデルによって生成されたレスポンスは、付随する情報とともに、`text` フィールドに返されます。

# AWS SDK for Python (Boto3) を使用して Amazon Bedrock API リクエストの例を実行する
<a name="getting-started-api-ex-python"></a>

このセクションでは、 を使用して AWS Amazon Bedrock の一般的なオペレーションを試Pythonして、アクセス許可と認証が適切に設定されていることをテストする方法について説明します。次の例を実行する前に、次の前提条件が満たされていることを確認してください。

**前提条件**
+  AWS アカウント 認証が設定され、Amazon Bedrock に必要なアクセス許可を持つ とユーザーまたはロールがあります。そうでない場合は、「[API の使用を開始する](getting-started-api.md)」の手順を実行します。
+  AWS SDK for Python (Boto3) の認証をインストールしてセットアップしました。Boto3 をインストールするには、Boto3 ドキュメントの「[クイックスタート](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)」の手順に従います。「[プログラムによるアクセス権を付与するために認証情報を取得する](getting-started-api.md#gs-grant-program-access)」の手順に従って、Boto3 を使用するための認証情報を設定していることを確認します。

適切なアクセス許可を指定して設定したユーザーまたはロールを使用して、Amazon Bedrock のアクセス許可が正しく設定されていることをテストします。

Amazon Bedrock ドキュメントには、その他のプログラミング言語のコードサンプルも記載されています。詳細については、「[AWS SDKsコード例](service_code_examples.md)」を参照してください。

**Topics**
+ [Amazon Bedrock が提供する基盤モデルを一覧表示する](#getting-started-api-ex-python-listfm)
+ [InvokeModel を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する](#getting-started-api-ex-python-invoke-text)
+ [Converse を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する](#getting-started-api-ex-python-converse)

## Amazon Bedrock が提供する基盤モデルを一覧表示する
<a name="getting-started-api-ex-python-listfm"></a>

次の例では、Amazon Bedrock クライアントを使用して、[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html) オペレーションを実行します。`ListFoundationModels` は、該当リージョンの Amazon Bedrock で利用可能な基盤モデル (FM) を一覧表示します。次の SDK for Python スクリプトを実行して Amazon Bedrock クライアントを作成し、[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html) オペレーションをテストします。

```
"""
Lists the available Amazon Bedrock models in an &AWS-Region;.
"""
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. Change aws_region to the &AWS-Region;
    that you want to use."""
   
    aws_region = "us-east-1"

    bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region)
    
    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()
```

スクリプトが成功すると、レスポンスは Amazon Bedrock で使用できる基盤モデルのリストを返します。

## InvokeModel を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する
<a name="getting-started-api-ex-python-invoke-text"></a>

次の例では、Amazon Bedrock クライアントを使用して [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) オペレーションを実行します。`InvokeModel` では、プロンプトを送信してモデルレスポンスを生成できます。次の SDK for Python スクリプトを実行して Amazon Bedrock のランタイムクライアントを作成し、`` オペレーションでテキストレスポンスを生成します。

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

コマンドが成功すると、レスポンスは、プロンプトに応答してモデルによって生成されたテキストを返します。

## Converse を使用してテキストプロンプトをモデルに送信し、テキストレスポンスを生成する
<a name="getting-started-api-ex-python-converse"></a>

次の例では、Amazon Bedrock クライアントを使用して [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) オペレーションを実行します。サポートされている場合、`InvokeModel` で `Converse` オペレーションを使用することをお勧めします。これにより、Amazon Bedrock モデル間で推論リクエストを統合し、マルチターン対話の管理を簡素化できます。次の SDK for Python スクリプトを実行して Amazon Bedrock のランタイムクライアントを作成し、`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)
```

コマンドが成功すると、レスポンスは、プロンプトに応答してモデルによって生成されたテキストを返します。

# Amazon SageMaker AI ノートブックを使用してサンプル Amazon Bedrock API リクエストを実行する
<a name="getting-started-api-ex-sm"></a>

このセクションでは、Amazon SageMaker AI ノートブックを使用して、Amazon Bedrock の一般的なオペレーションをいくつか試し、Amazon Bedrock ロールのアクセス許可が適切に設定されていることをテストする方法について説明します。次の例を実行する前に、次の前提条件が満たされていることを確認してください。

**前提条件**
+  AWS アカウント と には、Amazon Bedrock に必要なアクセス許可を持つロールにアクセスするためのアクセス許可があります。そうでない場合は、「[クイックスタート](getting-started.md)」の手順を実行します。
+ 次の手順を実行して、SageMaker の IAM アクセス許可を設定し、ノートブックを作成します。

  1. [コンソール](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)、[CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-managingrole_edit-trust-policy-cli)、または [API](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-api.html#roles-managingrole_edit-trust-policy-api) を使用して「[クイックスタート](getting-started.md)」で設定した Amazon Bedrock ロールの[信頼ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#term_trust-policy)を変更します。次の信頼ポリシーをロールにアタッチして、Amazon Bedrock と SageMaker AI の両方のサービスで Amazon Bedrock ロールを引き受けることを許可します。

------
#### [ JSON ]

****  

     ```
     {
         "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"
             }
         ]
     }
     ```

------

  1. 信頼ポリシーを変更した Amazon Bedrock ロールにサインインします。

  1. 「[チュートリアル用 Amazon SageMaker AI ノートブックインスタンスを作成する](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html)」の手順に従って、SageMaker AI ノートブックインスタンスを作成するために作成した Amazon Bedrock ロールの ARN を指定します。

  1. ノートブックインスタンスの **[ステータス]** が **[InService]** の場合、インスタンスを選択し、**[JupyterLab を開く]** を選択します。

SageMaker AI ノートブックを開くと、以下の例を試すことができます。

**Topics**
+ [Amazon Bedrock が提供する基盤モデルを一覧表示する](#getting-started-api-ex-sm-listfm)
+ [テキストプロンプトをモデルに送信し、レスポンスを生成する](#getting-started-api-ex-sm-converse)

## Amazon Bedrock が提供する基盤モデルを一覧表示する
<a name="getting-started-api-ex-sm-listfm"></a>

次の例では、Amazon Bedrock クライアントを使用して、[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html) オペレーションを実行します。`ListFoundationModels` は、該当リージョンの Amazon Bedrock で利用可能な基盤モデル (FM) を一覧表示します。次の SDK for Python スクリプトを実行して Amazon Bedrock クライアントを作成し、[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html) オペレーションをテストします。

```
"""
Lists the available Amazon Bedrock models in an &AWS-Region;.
"""
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. Change aws_region to the &AWS-Region;
    that you want to use."""
   
    aws_region = "us-east-1"

    bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region)
    
    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()
```

スクリプトが成功すると、レスポンスは Amazon Bedrock で使用できる基盤モデルのリストを返します。

## テキストプロンプトをモデルに送信し、レスポンスを生成する
<a name="getting-started-api-ex-sm-converse"></a>

次の例では、Amazon Bedrock クライアントを使用して [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) オペレーションを実行します。`Converse` では、プロンプトを送信してモデルレスポンスを生成できます。次の SDK for Python スクリプトを実行して Amazon Bedrock のランタイムクライアントを作成し、[Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) オペレーションをテストします。

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

コマンドが成功すると、レスポンスは、プロンプトに応答してモデルによって生成されたテキストを返します。