🕌

bedrockを使う時、versionで困ったぞ

2024/07/26に公開

こんにちはakariです

この記事はAWSのbedrockについてのごく一部の解説をしています。
対象は初心者です。(なぜなら私も初心者)

さて、本題に入りますと、bedrockでmodelを指定して、推論を行わせるときに、求められるversionのお話です

import json

import boto3

# クライアント作成
bedrock_runtime = boto3.client("bedrock-runtime")
# リクエストbodyを定義
body = json.dumps(
    {
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 1000,
        "messages": [
            {
                "role": "user",
                "content": "bedrockってどういう意味?あとboto3ってなんで使ってくるのか詳しく説明して",
            }
        ],
    }
)
modelId = "anthropic.claude-3-5-sonnet-20240620-v1:0"

# HTTPヘッダーを定義
accept = "application/json"
contentType = "application/json"

response = bedrock_runtime.invoke_model(
    body=body, modelId=modelId, accept=accept, contentType=contentType
)
response_body = json.loads(response.get("body").read())
answer = response_body["content"][0]["text"]
print(answer)

こんなふうにコードを書く時があります。
しかし、私は最初の困難にあたりました。

"anthropic_version": "bedrock-2023-05-31",

ってなんやと。

普段openaiのAPIなど叩きながら遊んでる私はびっくり、何これ。
chatGPTに聞いてみました。

APIバージョンの確認は通常、公式のAWSドキュメントや提供されているSDKのリファレンスを参照することで行います。最新の情報はAWSの公式ドキュメントやリリースノートに記載されています。
しかし、一般的には以下の方法で確認できます:
AWS公式ドキュメント:
AWSの公式ドキュメントサイト(AWS Documentation)で、「Bedrock API」や「Anthropic API」などのキーワードで検索します。
SDKのリファレンス:
使用しているSDKのリファレンスやリリースノートを確認します。特に、boto3のドキュメントやリリースノートに記載されている場合があります。
AWSサポートに問い合わせる:
AWSのサポートに直接問い合わせることで、正確なバージョン情報を確認することができます。
AWSコンソール:
AWS管理コンソールにログインし、使用するサービスの設定やAPIエンドポイントに関する情報を確認することができます。
具体的な例として、AWSのBedrock APIのドキュメントを確認する手順を示します:
AWS Documentation にアクセスします。
サイト内検索バーで「Bedrock API」を検索します。
検索結果から適切なドキュメントを選択し、APIバージョンに関する情報を確認します。

うん、Documentを見ろと、当たり前ですね

ちなみに、AWS内で"anthropic version"で調べても、出てこなかったです(私のサーチ不足かも)

そこで、googleさんに聞いてみました
"bedrock anthropic version"

すると2番目のサーチにこちらの結果が

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html

ここによると、バージョンを特定の値にしなければならないらしいです

解決!

無事、出力を受け取ることができました

Discussion