AWS: BedrockでClaudeを使う
Bedrockのモデルアクセスを取得
例えば、Claude 3.5 Sonnetのモデルアクセスを取得する
2024年7月現在、 us-east-1 リージョンでないとClaude 3.5は使えないので注意
利用用途を聞かれるので、入れる
IAMユーザを作る
ユーザを作成する
AmazonBedrockFullAccess ポリシーを許可したユーザグループを作り、それに参加させる
作成したユーザのSecurity credentialsからAccess keyを作成する
Access keyとSecret access keyをコピーしておく
Boto3から叩く
code:py
import json
import boto3
bedrock = boto3.client(
service_name="bedrock-runtime",
region_name="us-east-1",
aws_access_key_id="<ACCESS_KEY>",
aws_secret_access_key="<SECRET_ACCESS_KEY>",
)
system_prompt = "簡潔に回答してください。"
def request_claude(messages):
response = bedrock.invoke_model(
body=json.dumps({
"system": system_prompt,
"messages": messages,
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 500,
}),
modelId="anthropic.claude-3-5-sonnet-20240620-v1:0",
)
return json.loads(response.get("body").read())
messages = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "こんにちは!",
}
]
}
]
res_body = request_claude(messages)
res_content = res_body.get("content")0 res_text = res_content.get("text").strip()
res_text