Amazon Bedrock APIでTypeScriptのテストコードを出力してみた

こんにちは!エンジニアの岩間です。

最近、今話題のAmazon Bedrock APIを実行してTypeScriptのテストコードを出力してみる機会があったので、今回は実行手順とそのサンプルコードをご紹介していきたいと思います。

 

Amazon Bedrock とは

Amazon Bedrock は、主要な AI スタートアップや Amazon が提供する高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにするフルマネージド型サービスです。 さまざまな基盤モデルから選択して、ユースケースに最適なモデルを見つけることができます。

簡単にいうと、AWSが提供する生成AIのサービスのことです。

公式ドキュメント

 

Bedrock APIを実行するまでの手順

ここからはAmazon Bedrock APIを実行するまでの流れをご紹介します。

 

モデルアクセスの設定

まずはコンソールでモデルアクセスの設定を行っていきます。

Amazon Bedrock ファンデーションモデルへのアクセスはデフォルトでは許可されていません。基盤モデルにアクセスするには、十分な権限を持つ IAM ユーザーがコンソールからそのモデルへのアクセスをリクエストする必要があります。モデルへのアクセス権が付与されると、そのモデルはそのアカウントのすべてのユーザーが利用できるようになります。

 

1. AWSコンソールからBedrockのページに移動し、左のサイドメニューから「モデルアクセス」をクリックします。(東京リージョン

 

2. 次に「モデルアクセスを管理」ボタンをクリックします。

 

3. 今回はClaudeを使うので、ユースケースの詳細を送信します。※Anthropic モデルにアクセスするには、ユースケースの詳細を送信する必要があります。

 

4. 下記の画像のようなポップアップが表示されるので、会社名等の情報を送信します。

 

5. ユースケースの詳細を送信後、Claudeが選択可能な状態となるので選択し、「変更を保存」ボタンをクリックします。

 

6. しばらく待つと以下の画像のように「アクセスが付与されました」のステータスになります。これでClaudeモデルへのアクセスが可能となりました!

 

コーディング

次にコードを書いていきます。

今回はローカルのTypeScriptのコードからAmazon Bedrock APIを実行していきたいと思います。

 

ローカルで以下のコマンドを実行します。

 

index.tsを以下のように編集します。

Bedrockに渡すプロンプトでは、サンプルのプログラムをもとにテストコードの作成をお願いしています。

 

クレデンシャルの取得についてですが、社内では、複数のAWS SSO(IAM Identity Center)をAWS CLIに関連付けてAWSにセキュアにログインする運用をしています。

そのためclient情報を定義している箇所(10行目)は、AWS SDK v3 credential providerのfromSSOを利用して使用するプロファイル名を指定しています。

 

また、同ディレクトリにはBedrockに渡すtest.tsを配置しています。(21行目)

test.tsの内容はWEBからファイルをDLするプログラムとなっています。※ここでは省略

「このプログラム、モデルの学習に使用されるのかな?」とふと思ってドキュメントを読んだところ以下の記述がありました。

Data protection in Amazon Bedrock

Amazon Bedrock doesn’t use your prompts and continuations to train any AWS models or distribute them to third parties.

Amazon Bedrockではプロンプトの情報をAWSのモデルの学習には利用せず、(モデルを提供する)サードパーティに配布しないということがわかりました。

 

Bedrock API実行

上記手順を実行後、index.tsをローカルで実行してみます。

 

結果はこんな感じでした。テストコード作成のポイントとテストコードがちゃんと返ってきています!

 

まとめ

今回はBedrockにテストコードを書いてもらいましたが、生成AIを利用して開発を効率化できたりするのはとても良いですね。

テクノロジーは日々進化しており、生成AIがソフトウェアテストの大部分を担う日も近づいています。
IDCの予測によれば、2028年までに生成AIベースのツールがソフトウェアテストの70%をカバーするとされており、これにより手動テストの必要性が減り、テストのカバレッジが向上し、ソフトウェアの品質とユーザビリティが向上すると期待されている、とのことで今後も目を離せません。

また、開発効率化という観点で言えば、個人的に以下の記事もとても気になっていたりします。

Amazon Bedrock でプログラム概要資料を生成しよう!!

生成AIを活用しつつ、より良いソフトウェアを開発を目指していきたいです。

ここまでお読みいただきありがとうございました。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ