やりたいこと
Cloud9からAmazon Bedrockを利用する。尚、サンプルとしては「こんにちは」と入力する。
環境情報
- Python 3.7.16
- Anthropic | Claude Instant
やり方
boto3をインストールした上で
$ pip install --upgrade boto3 Defaulting to user installation because normal site-packages is not writeable Collecting boto3 Downloading boto3-1.33.13-py3-none-any.whl (139 kB) |████████████████████ ...
AWSの公式ページ(Use the API to invoke a model with a single prompt)記載のサンプルプログラムを利用する。尚、今回はAnthropicのClaude Instant(1.x)を利用するため、model id は「anthropic.claude-instant-v1」としており、実行結果は以下のようになった。
$ python test.py こんにちは。日本語で挨拶ができてうれしいです。
以下、補足です。
補足
Amazon Bedrockの「Model access」にて利用したいモデルが「Access granted」であることを確認し、該当のモデルIDを指定すれば利用ができます。
他にもIAMの権限周りやAPIへのアクセスがポイントとしてありますが、既にAdmin権限を付与しているCloud9環境では問題なく利用できました。
参考までに実行したコードをメモしておきます。
import boto3 import json brt = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman: こんにちは\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-instant-v1' accept = 'application/json' contentType = 'application/json' response = brt.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) print(response_body.get('completion'))
以上、ご参考ください。