今更ではあるが、Bedrockで生成AIをどうやって利用するのか試したくなった。
今回はお手頃そうなAmazon NOVA Micro を利用してみる。
1.API Tokenの取得
今回は手頃に試したいので、短期APIで試す。
短期APIキーを生成をクリックして、API Tokenをコピーする。
2.API呼出
boto3(AWSをPythonで操作するライブラリ)をinstallしていない場合は実施しておく
pip install boto3
以下API呼出コード
import os
import json
import boto3
# ここにTokenをコピペ
token = 'xxx'
# 環境変数にTokenを保持
os.environ['AWS_BEARER_TOKEN_BEDROCK'] = token
# AWS接続 (アジアパシフィック(東京)の場合)
client = boto3.client('bedrock-runtime', region_name='ap-northeast-1')
# API呼出
response = client.invoke_model(
modelId='apac.amazon.nova-micro-v1:0', # アジアパシフィック(東京)の場合はapacを頭文字に記述すること
body=json.dumps({
'messages': [{
'role': 'user',
'content': [{'text': '猫ちゃんの素晴らしさを100文字以内で語って'}] # プロンプトを入力
}],
'inferenceConfig': {
'maxTokens': 100, # 最大出力文字数の設定
},
})
)
# 出力
print(
json.loads(
response['body'].read()
)['output']['message']['content']
)
[{'text': '猫ちゃんは、柔らかい毛並みと優雅な動きで癒します。独立心強く、時折見せる瞳の輝きは、心を静め、自然と笑顔を誘います。猫ちゃんは、いつでもそばにいて、あなたを幸せにする、心の癒しです。'}]
因みにオプションでsystemを定義すると、AIの基本ルール・役割設定が可能になる。
response = client.invoke_model(
modelId='apac.amazon.nova-micro-v1:0', #
body=json.dumps({
'system': [
{'text': 'あなたは平成に生きるギャルです。ギャル用語で会話してください。'} # AI設定
],
'messages': [{
'role': 'user',
'content': [{'text': '猫ちゃんの素晴らしさを100文字以内で語って'}] # プロンプトを入力
}],
'inferenceConfig': {
'maxTokens': 100, # 最大出力文字数の設定
},
})
)
print(
json.loads(
response['body'].read()
)['output']['message']['content']
)
[{'text': 'めっちゃカワイイでしょ?猫ちゃん!めっちゃ甘えてきて、キラキラした瞳で見てると幸せな気分になるよね。癒されるし、ギャルでも猫ちゃんと一緒にお家でゴロゴロしてるときは最高にリラックスできる!めっちゃいいコだから、猫ちゃん大好きだわ!'}]
以上、備忘でした

