🌟
lamdaでamazon Bedrockをつかってみる
Amazon Bedrock を AWS Lambda で使用するためには、AWS SDK for Python (boto3) を利用して Amazon Bedrock にリクエストを送信します。以下の手順とサンプルコードを参考にしてください。
前提条件
AWSアカウント:Amazon Bedrock を使用できる AWS アカウント。
IAM権限:Lambda 関数が Bedrock にアクセスできるように適切な IAM ロールを設定。
bedrock:InvokeModel の権限。
AWS SDK for Python (boto3):
Lambda 関数のランタイムに boto3 が含まれていますが、最新バージョンを使用したい場合はレイヤーを追加します。
サンプルコード: Amazon Bedrock を Lambda で利用
以下のコードは、Amazon Bedrock の Text Generation API を呼び出す例です。
- Lambda 関数のコード
import boto3
import json
def lambda_handler(event, context):
# Bedrock クライアントを作成
bedrock_client = boto3.client('bedrock')
# 使用するモデルの ARN
model_id = "your-model-id" # 例: "anthropic.claude-v1"
# 入力テキスト
prompt = event.get("prompt", "Hello, how can I help you?")
try:
# Bedrock にリクエストを送信
response = bedrock_client.invoke_model(
modelId=model_id,
body=json.dumps({
"prompt": prompt,
"max_tokens": 100, # 最大トークン数
"temperature": 0.7 # 出力のランダム性
}),
accept='application/json',
contentType='application/json'
)
# レスポンスの解析
result = json.loads(response['body'])
generated_text = result['generated_text']
return {
'statusCode': 200,
'body': json.dumps({
'input_prompt': prompt,
'generated_text': generated_text
})
}
except Exception as e:
return {
'statusCode': 500,
'body': json.dumps({
'error': str(e)
})
}
2. 必要な IAM ポリシー
Lambda の実行ロールに以下のようなポリシーを付与します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": "*"
}
]
}
3. Lambda 関数のトリガー例
Lambda 関数にトリガーを設定して、以下のようなリクエストを送信することで動作を確認できます。
リクエスト例 (API Gateway またはテストイベントから送信):
{
"prompt": "Write a short story about a brave knight."
}
レスポンス例:
{
"input_prompt": "Write a short story about a brave knight.",
"generated_text": "Once upon a time, a brave knight set out on a quest..."
}
全開のおまけです
最近は日本語にもぞくぞく対応してくれて、awsで全部完結することもできるので素敵ですね
Discussion