目的
Postman を利用して Amazon Bedrock の Cohere Command R/Command R+ を使う方法を紹介します。
前提条件
- AWSコンソールの AWS Bedrock モデルアクセス から該当リージョンの該当モデルのアクセス権が有効になっていること。
- Amazon Bedrock ランタイム API のエンドポイントは Amazon Bedrock エンドポイントとクォータ の Amazon Bedrock APIs からリージョンを選択し、エンドポイントを参照すること。
- パラメータとして指定するモデル ID は Amazon Bedrock model IDs を参照すること。
- aws_access_key_id と aws_secret_access_key を設定しており適切な権限が付与されていること。
手順
cURL を使う方法もあるようですが{"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details."
というエラーで Bedrock の一部のモデルは利用できませんでした。ということで Postman での利用方法を紹介します。awscurl を使えばこの問題は発生しないようです。
Cohere Command-r/Command-r-plus を使う方法
URL を設定します。次の例は、北米西部オレゴン (us-west-2) の Cohere Command R+ をしている例となります。モデル ID は前提条件に記載のページをご確認ください。
次の URL は Command R+ の例です。Command R を使う場合は、URL のモデル ID 部分を cohere.command-r-v1:0 に変更すれば利用できます。
https://bedrock-runtime.us-west-2.amazonaws.com/model/cohere.command-r-plus-v1:0/invoke
次に、Authorization タブの Type より 'AWS Signature' を選択します。その上で次の4点を設定します。
aws_access_key_id: <Your AWS access key>
aws_secret_access_key: <Your AWS secret access key>
# Advanced configuration
region: us-west-2
service: bedrock
Chat API の使い方
Body タブに次のような形でメッセージを入力します。
次の利用方法は、Chat API での利用方法となります。詳しくはドキュメントをご確認ください。
{
"message":"以下の文章の改善点を指摘してください。¥n「明日は、朝早くから仕事だ。夜のうちに資料を仕上げ、しっかりと準備をしなければいけない。きっと睡眠不足になりそうだ。だが、家族のためなら頑張れるだろう。」"
}
レスポンスは次のようになりました。
{
"response_id": "9963706d-c50c-42bd-9a94-1929b4741f83",
"text": "以下のように改善できます。\n\n「明日は朝早くから仕事なので、今夜は早めに資料を仕上げて、準備を整えておこう。睡眠不足は避けたいが、家族のために頑張りたい。」\n\n改善点は以下の通りです。\n\n- 「夜のうちに」という表現を、「今夜は早めに」に変更することで、文章の流れをスムーズにしました。\n- 「しっかりと準備をしなければいけない」という表現を、「準備を整えておこう」に変更することで、やや堅苦しい印象を和らげました。\n- 「きっと睡眠不足になりそうだ」という表現を、「睡眠不足は避けたいが」に変更することで、前向きな印象を与えました。\n- 「だが」という表現を、「ため」に変更することで、「だが」よりも柔らかい表現になり、文章の流れも自然になりました。\n- 「だろう」という表現を削除することで、より断定的な表現になり、文章に力強さが増しました。\n\nこれらの改善により、文章がよりポジティブで前向きな印象を与えるようになりました。",
"generation_id": "1001eaf2-56db-4243-8827-6cfbd655c81a",
"chat_history": [
{
"role": "USER",
"message": "以下の文章の改善点を指摘してください。¥n「明日は、朝早くから仕事だ。夜のうちに資料を仕上げ、しっかりと準備をしなければいけない。きっと睡眠不足になりそうだ。だが、家族のためなら頑張れるだろう。」"
},
{
"role": "CHATBOT",
"message": "以下のように改善できます。\n\n「明日は朝早くから仕事なので、今夜は早めに資料を仕上げて、準備を整えておこう。睡眠不足は避けたいが、家族のために頑張りたい。」\n\n改善点は以下の通りです。\n\n- 「夜のうちに」という表現を、「今夜は早めに」に変更することで、文章の流れをスムーズにしました。\n- 「しっかりと準備をしなければいけない」という表現を、「準備を整えておこう」に変更することで、やや堅苦しい印象を和らげました。\n- 「きっと睡眠不足になりそうだ」という表現を、「睡眠不足は避けたいが」に変更することで、前向きな印象を与えました。\n- 「だが」という表現を、「ため」に変更することで、「だが」よりも柔らかい表現になり、文章の流れも自然になりました。\n- 「だろう」という表現を削除することで、より断定的な表現になり、文章に力強さが増しました。\n\nこれらの改善により、文章がよりポジティブで前向きな印象を与えるようになりました。"
}
],
"finish_reason": "COMPLETE"
}
RAG での使い方
RAG を利用する場合はメッセージフォーマットが違います。RAG の Requestをご確認の上、試してください。 次の例は、最も背の高いペンギンはどこに住んでいますか?という質問と、3つのチャンクデータを渡している例です。
{
"message":"Where do the tallest penguins live?",
"documents": [
{"title": "Tall penguins", "snippet": "Emperor penguins are the tallest."},
{"title": "Penguin habitats", "snippet": "Emperor penguins only live in Antarctica."},
{"title": "What are animals?", "snippet": "Animals are different from plants."}]
}
レスポンスは次のようになりました。
{
"response_id": "5414a694-7a5f-4f19-a7ff-37e8ed2ec42a",
"text": "The tallest penguins are emperor penguins, which only live in Antarctica.",
"generation_id": "6ab235af-20e2-44c5-9600-677f3508f3b4",
"chat_history": [
{
"role": "USER",
"message": "Where do the tallest penguins live?"
},
{
"role": "CHATBOT",
"message": "The tallest penguins are emperor penguins, which only live in Antarctica."
}
],
"finish_reason": "COMPLETE",
"citations": [
{
"start": 25,
"end": 41,
"text": "emperor penguins",
"document_ids": [
"doc_0"
]
},
{
"start": 49,
"end": 73,
"text": "only live in Antarctica.",
"document_ids": [
"doc_1"
]
}
],
"documents": [
{
"id": "doc_0",
"snippet": "Emperor penguins are the tallest.",
"title": "Tall penguins"
},
{
"id": "doc_1",
"snippet": "Emperor penguins only live in Antarctica.",
"title": "Penguin habitats"
}
]
}
費用について
Amazon Bedrock の料金のページには次のように記載されています。Command R が OpenAI GPT-3.5-Turbo と同額、Command R+ が OpenAI GPT-4o より少しだけ安価という価格設定となっています。
モデルのパラメータサイズについて
Command R が 35B (350 億)パラメータ、Command R+ が 104B (1040 億) パラメータと Hugging Face のモデルサマリーページに記載がありました。