Amazon Bedrock で What’s New with AWS? を要約して通知する Whats New Summary Notifier をやってみた

2024.05.31

前回、What's New With AWS? から特定のキーワードがタイトルに含まれる記事を通知する AWS Cost News Slack Bot を実際にやってみました。

なかなか興味深いと、ひとり満足していたのですが、これまた興味深いソリューションと出会ったので、実際にやってみたいと思います。

Whats New Summary Notifier は、AWS 最新情報 (What's New) などのウェブ記事に更新があった際に記事内容を Amazon Bedrock で要約し、Slack や Microsoft Teams への配信を行う生成 AI アプリケーションのサンプル実装です。

引用: https://github.com/aws-samples/whats-new-summary-notifier/blob/main/README_ja.md

こんな通知が来るようです!(楽しみー)
引用: https://github.com/aws-samples/whats-new-summary-notifier/blob/main/README_ja.md

アーキテクチャは下記のようです。RSS があれば What's New 以外でも対象に出来そうですね。


引用: https://github.com/aws-samples/whats-new-summary-notifier/blob/main/README_ja.md

早速、やってみます。展開する大きな流れとしては下記になります。

  1. Amazon Bedrock で Anthropic Claude 3 Sonnet モデル へアクセス申請
  2. Slack ワークフロー Webhook URL 取得
  3. Cloud9 環境の準備
  4. 設定ファイル等の変更
  5. デプロイ

Anthropic Claude 3 Sonnet モデル へアクセス申請

バージニアリージョンへ変更Amazon BedrockモデルアクセスEnable specific modelsClaude 3 Sonnet を選択 → NEXTSubmit

「アクセスが付与されました」 と表示されていれば OK です。

プロバイダーAnthropicClaude 3 SonnetAPI リクエストmodelId を確認しておきます

Slack ワークフロー Webhook URL 取得

Slack ワークフローを作成し、変数の登録と Webhook URL を取得します。

・ rss_time: 記事の投稿時間
・ rss_link: 記事の URL
・ rss_title: 記事のタイトル
・ summary: 記事の要約
・ detail: 記事の箇条書き説明

通知する Slack チャンネルとメッセージを編集します。

Cloud9 環境の準備

手順に沿って コマンドを実行して、環境を作成します。

[cloudshell-user@ip-10-136-53-181 ~]$ git clone https://github.com/aws-samples/cloud9-setup-for-prototyping
Cloning into 'cloud9-setup-for-prototyping'...
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (33/33), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 33 (delta 12), reused 14 (delta 3), pack-reused 0
Receiving objects: 100% (33/33), 9.34 KiB | 9.34 MiB/s, done.
Resolving deltas: 100% (12/12), done.
[cloudshell-user@ip-10-136-53-181 ~]$ ls
aws  awscliv2.zip  cloud9-setup-for-prototyping
[cloudshell-user@ip-10-136-53-181 ~]$ cd cloud9-setup-for-prototyping/
[cloudshell-user@ip-10-136-53-181 cloud9-setup-for-prototyping]$ cat <<< $(jq  '.volume_size = 20'  params.json )  > params.json
[cloudshell-user@ip-10-136-53-181 cloud9-setup-for-prototyping]$ ./bin/bootstrap
Cloud9 Setup for Prototyping
Parameters
・
・
中略
・
・
    }
}
Done!

しばらくすると EC2 で Cloud9 環境が作成されるため、起動します。

設定ファイル等の変更

AWS Systems Manager Parameter Store へ Webhook URL 登録

先ほど、取得した Webhook URL を Parameter Store へ登録します。

$ aws ssm put-parameter --name "/WhatsNew/URL" --type "SecureString" --value "<Webhook URL を入力>"

設定ファイルの確認(必要な場合は変更も)

リポジトリをクローンします。

XXXXX:~/environment $ git clone https://github.com/aws-samples/whats-new-summary-notifier
Cloning into 'whats-new-summary-notifier'...
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 38 (delta 1), reused 35 (delta 0), pack-reused 0
Receiving objects: 100% (38/38), 831.94 KiB | 18.08 MiB/s, done.
Resolving deltas: 100% (1/1), done.
XXXXX:~/environment $ ls
README.md  whats-new-summary-notifier

cdk.json 内に設定があるため、必要に応じてガイドを参考に変更します。

今回はデフォルトのままで進めます。Claude 3 Sonnet の modelld だけ確認しておきます。

XXXXX:~/environment/whats-new-summary-notifier (main) $ ls
CODE_OF_CONDUCT.md  DEPLOY.md     LICENSE    README_ja.md  cdk.context.json  doc                lambda  package-lock.json  tsconfig.json
CONTRIBUTING.md     DEPLOY_ja.md  README.md  bin           cdk.json          eslint.config.mjs  lib     package.json
XXXXX:~/environment/whats-new-summary-notifier (main) $ more cdk.json | grep modelId
        "modelId": "anthropic.claude-3-sonnet-20240229-v1:0",

デプロイ

手順に沿ってデプロイしていきます。

XXXXX:~/environment/whats-new-summary-notifier (main) $ cdk bootstrap
XXXXX:~/environment/whats-new-summary-notifier (main) $ cdk synth
XXXXX:~/environment/whats-new-summary-notifier (main) $ cdk deploy

デプロイされたリソースを確認

Amazon EventBridge

デフォルトだと毎時で実行になっています。必要に応じて、変更しましょう。

AWS Lambda

3つ作成されていました。冒頭のアーキテクチャに記載がある関数がありますね。

DynamoDB

通知を待つ

今回は、AWS Lambda のテストから試す場合は Amazon EventBridge からの入力をテストデータに登録して実行が必要です。下記は実際に今朝通知された内容の一つです。

内容を確認してみます。

Amazon QuickSight is now available in Milan, Zurich, Cape Town and Jakarta Regions ( 2024-05-30T17:00:00 )

Amazon QuickSightは、ミラノ、チューリッヒ、ケープタウン、ジャカルタの4つの新しい地域で利用可能になりました。これにより、QuickSightはアフリカ大陸に初めて展開され、全大陸の合計21の地域でサービスを提供するようになりました。
https://aws.amazon.com/about-aws/whats-new/2024/05/amazon-quicksight-milan-zurich-cape-town-jakarta-regions/

[3行くらいのまとめ]
- 新機能は、Amazon QuickSightがミラノ、チューリッヒ、ケープタウン、ジャカルタの地域で利用可能になったことです。
- この更新は、これらの地域に拠点を置く組織や、これらの地域のデータソースを利用する組織にとって有益です。
- QuickSightは、これらの新しい地域でSPICE機能を利用でき、AWSやオンプレミスのデータソースに近接することができます。
- この発表により、QuickSightはアフリカ大陸に初めて展開され、合計21の地域でサービスが提供されることになりました。

こちらが原文を機械翻訳した内容です。

Amazon QuickSight がミラノ、チューリッヒ、ケープタウン、ジャカルタの各リージョンで利用可能になりました
投稿日: 2024年5月30日

Amazon QuickSight は、組織全体でインタラクティブなダッシュボードを簡単に作成して公開し、データ視覚化をアプリに埋め込むことができるサービスで、現在、ミラノ、チューリッヒ、ケープタウン、ジャカルタの各リージョンで利用可能です。新規アカウントは、ミラノ、チューリッヒ、ケープタウン、ジャカルタをプライマリリージョンとして QuickSight にサインアップできます。これにより、SPICE 容量をそのリージョンで利用できるようになり、AWS とオンプレミスのデータソースへの近接性が確保されます。既存の QuickSight アカウントのユーザーは、リージョンスイッチャーを使用してリージョンを切り替え、新しいリージョンで SPICE データセットを作成できるようになりました。

今回のリリースにより、QuickSight は初めてアフリカに拡大し、現在、米国東部 (オハイオ州およびバージニア州北部)、米国西部 (オレゴン州)、欧州 (ストックホルム、パリ、フランクフルト、アイルランド、ロンドン、ミラノ、チューリッヒ)、アジアパシフィック (ムンバイ、ソウル、シンガポール、シドニー、東京、ジャカルタ)、カナダ (中部)、南米 (サンパウロ)、アフリカ (ケープタウン)、GovCloud (米国西部) を含む 21 のリージョンですべての大陸で利用可能です。利用可能な地域の詳細については、こちらをご覧ください。

  • まず、日本語に翻訳されて送られてくるのが嬉しい
  • 説明が箇条書きになっているので見やすいですね
  • 原文と比べて、内容に違和感もないですね

通知する内容は設定が可能なので、冗長であれば箇条書き部分を除いたりシンプルにすることも出来ます。

さいごに

前回に引き続き、What's New With AWS? の内容を通知するソリューションを試してみました。こちらのソリューションも良いですね。両方の良いとこ取りして、特定のカテゴリやキーワードの記事を生成 AI で要約した内容を通知することや DevelopersIO の記事も要約してみたりもできるのか?!など色々と試してみたくなりますが、今回はここまでにしたいと思います。