某ハッカソンにてAmazon Bedrockを利用する人が多く、予習しておこうと思い少し触ってみたログです。
Amazon Bedrock
AzureでいうAzure AI Foundry的な何かだと思ってます。
GitHub Modelsなども近そう。
LLMを共通のインターフェイスで利用できたり
管理機能もあったり
普段AWS全く触ってないので初めまして感覚。
ログインするとチュートリアルが表示されてたのでここからBedrockの画面へ
チュートリアルでクレジット獲得できるの面白いですね。
Novaモデルをプレイグラウンドで試す
Amazon Bedrockのホームはアジアパシフィックだとこちらです。
Amazonが作ってるGPT的なLLMにTitanというモデルがありましたが、Novaというモデルが後続らしいですね。
プレイグラウンドで挙動を試せます。
Node.jsから呼び出す
実際にNode.jsから呼び出してみます。
APIキーとモデルIDを知る必要があるのでそこの確認からです。
APIキーとモデルIDの確認
- APIキー
短期もしくは長期のAPIキーを発行できるので発行します。
https://ap-northeast-1.console.aws.amazon.com/bedrock/home?region=ap-northeast-1#/api-keys?tab=short-term
- モデルID
モデルカタログからモデル名を選択したページに書いています。Nova Liteだと以下の様子
準備
- APIキー
APIキーをコピーしてAWS_BEARER_TOKEN_BEDROCKの環境変数に入れます。
export AWS_BEARER_TOKEN_BEDROCK=bedrock-api-key-XXXXXX省略
管理画面のシェル例をコピーして手元で実行すればOKです。
- コード書く前
今回.mjsで実行するのでtype=moduleを指定
$ npm init -y && npm pkg set type=module
SDKのインストール
$ npm i @aws-sdk/client-bedrock-runtime
コード
import { BedrockRuntimeClient, ConverseCommand } from "@aws-sdk/client-bedrock-runtime";
const client = new BedrockRuntimeClient({region: "ap-northeast-1"}); //リージョンを指定
async function main() {
const response = await client.send(new ConverseCommand({
modelId: "amazon.nova-lite-v1:0", //モデルIDを指定
messages: [{ role: "user", content: [{ text: "ノックノック!" }] }],
inferenceConfig: { maxTokens: 200 }
}));
console.log("回答 →", response.output.message.content[0].text);
}
main().catch(e => console.error("失敗:", e.message));
モデルIDは利用するモデルにあわせます。今回はNova Lite v1を指定
実行
$ node app.mjs
回答 → こんにちは!誰かがドアをノックしているようですね。どうしましょうか?ドアを開けて話す準備はできていますか?それとも、ドア越しに話したいですか?具体的な状況を教えていただければ、もっと具体的なアドバイスができるかもしれません。
無事に実行できました。
まとめ
v3系のSDKらしいですが他のバージョンと書き方異なるみたいでちょっとハマりました。
OpenAIのAPIと互換ではなさそうな雰囲気ですがmessages: [{ role: "user", content: [{ text: "ノックノック!" }] }],などはほぼ一緒なので読めはしますね。
とりあえず使った感じなので性能がどうなのか?はあまり分かってません。
AWSのクレジットの中で利用したい人や会社的には嬉しい気がしますね。


