yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
AWS_Bedrock

一番シンプルにAmazon BedrockでHello worldしてみた(API編)

2024-10-27

一番シンプルにAmazon Bedrock でHello worldしてみた

生成AIを気軽に楽しめるAmazon Bedrock を触ってみたく、一番シンプルにHello worldしてみた

モデルへのアクセスリクエスト

一番シンプルにAmazon BedrockでHello worldしてみた(マネジメントコンソール編) をご確認ください

IAMユーザーに権限付与

IAMユーザーにはBedrockを操作する権限を付与しておく

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": "arn:aws:bedrock:ap-northeast-1::foundation-model/amazon.titan-text-express-v1"
        }
    ]
}

Resourceには、利用するモデルのARNを指定するが、Arnはマネジメントコンソールの「Providers」から確認できる

20241027_aws_bedrock_hello_world_console

「IAM」>「Users」>「Security credentials」タブ>「Access keys 」からアクセスキーとシークレットアクセスキーも取得しておく

Hello worldしてみる

実行するコードは以下

import boto3
import json

aws_access_key_id = "【権限を与えたIAMユーザーのアクセスキー】"
aws_secret_access_key = "【権限を与えたIAMユーザーのシークレットアクセスキー】"

client = boto3.client(
    'bedrock-runtime',
    region_name='ap-northeast-1',
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key
)

response = client.invoke_model(
    modelId="amazon.titan-text-express-v1",
    body=json.dumps(
        {
            "inputText": "Hello World"
        }
    )
)
model_response = json.loads(response["body"].read())

print(model_response)

実行結果

% python bedrock_test.py
{'inputTextTokenCount': 4, 'results': [{'tokenCount': 14, 'outputText': '\nBot: Hi there! How can I assist you today?', 'completionReason': 'FINISH'}]}

参考

Boto3 1.35.6 documentation – Quickstart
BedrockRuntime
を使用して Amazon Bedrock APIリクエストの例を実行する AWS SDK for Python (Boto3)
Amazon Bedrock 基盤モデルを使う為のIAMポリシー
Amazon BedrockをBoto3から使ってみた

以上。