この記事でやること

2023/9/28にGAになったAmazon Bedrock
とりあえずCloudShellからAWS CLIでBedrockを叩いてみました。何者なのか問いかけます。

準備

実行環境

今回はバージニアリージョンでCloudShellを立ち上げます

Cloud ShellでAWS CLI V1を使う

2023/10/03 時点では AWS CLI V2はBedrockのコマンドに対応しておらずV1でのみ利用できたのでV1を利用しています。この記事を参考にさせていただきました

python3 -m venv ~/aws-cli-v1
source ~/aws-cli-v1/bin/activate
pip install awscli --upgrade
aws --version

ドキュメントを確認する

今回はaws bedrock-runtime invoke-modelのコマンドを使います
モデルはAI21を使ってみます。

実行

aws bedrock-runtime invoke-model  --model-id "ai21.j2-mid-v1" --body "$(cat <<EOF
{
 "prompt": "who are you?",
 "maxTokens": 200,
 "temperature": 0.7,
 "topP": 1
}
EOF
)" out.json && cat out.json | jq '.completions[].data.text'

やっていること

bodyはヒアドキュメントで与え、プロンプトには「who are you?」と入れてみました。

 "prompt": "who are you?",

他のパラメータはとりあえずで適当に設定しています。

出力はoutfileで指定したファイルに出力されるので、一度out.jsonに出力し、欲しい回答部分だけをjqで取り出し。

cat out.json | jq '.completions[].data.text'

出力結果

"\nI am a computer system designed to gather information from the internet and provide answers to natural language questions."

いい感じの回答がきました。

打つたびに違う答えが確認できます。

"\nI am a person who likes to help others and learn new things."
"\nI am an AI language model developed by AI21 Labs. I am here to provide assistance and information to the best of my ability. How can I help you today?"

日本語でも試してみる

aws bedrock-runtime invoke-model  --model-id "ai21.j2-mid-v1" --body "$(cat <<EOF
{
 "prompt": "あなたは誰?",
 "maxTokens": 200,
 "temperature": 0.7,
 "topP": 1
}
EOF
)" out.json && cat out.json | jq '.completions[].data.text'

出力結果

ジョンでした。ひさしぶり。

aws cliはよく使うので、cliの出力結果をこいつに食わせて何か仕事を手伝ってもらうのもいいかなぁ〜と思います。
ではまた!