Amazon Bedrockの生成AI機能を通販サイトに組み込むワークショップに参加してみた #AWSreInvent

実際の通販サイトに対して、Bedrockの生成AIを使った機能を実装するワークショップに参加してみました。Bedrockの実際の活用例など、さまざまな学びを得られましたので、紹介したいと思います。
2023.11.30

WebアプリにおけるAmazon Bedrockの活用例って?

おのやんです。

この度、Build intelligent enterprise apps powered by generative AI on AWSというワークショップに参加してきました。

このワークショップでは、AWSの生成AIサービスであるAmazon Bedrock(以下、Bedrock)を、実際の通販サイトに適用し、活用方法を学んでいきます。テキスト生成や画像生成など、それぞれの生成AIを通販サイトで利用する方法について学習できたので、今回はそれらを中心に紹介していきたいと思います。

セッション概要

PEX302-R1 | Build intelligent enterprise apps powered by generative AI on AWS [REPEAT]

Nov. 29 | 2:30 PM - 4:30 PM (PST)

Mandalay Bay | Level 1 | North | South Pacific F

Join this workshop, intended for AWS Partners, to build an intelligent retail web application by harnessing the power of generative AI on AWS. Gain hands-on experience with integrating Amazon Bedrock into your application and use text-to-text and text-to-image LLMs to perform tasks such as drafting product descriptions, summarizing customer reviews, generating creative design ideas, and answering questions from the vector knowledge base. You must bring your laptop to participate.

AWSでジェネレーティブAIを活用したインテリジェントなエンタープライズアプリを構築する【リピート開催】

AWSパートナー向けのこのワークショップに参加し、AWS上のジェネレーティブAIのパワーを活用することで、インテリジェントな小売Webアプリケーションを構築しましょう。Amazon Bedrockをアプリケーションに統合し、テキストからテキスト、テキストから画像へのLLMを使用して、商品説明の下書き、カスタマーレビューの要約、クリエイティブなデザインアイデアの生成、ベクトルナレッジベースからの質問への回答などのタスクを実行します。参加にはノートパソコンが必要です。

セッション内容

今回作成するシステムの全体像を、以下に示します。具体的には、re:Invent側で用意しているサンプルの通販サイトに、生成AI(つまりBedrock)を使った新機能を実装していくというものです。この新機能の実装にはAWS Cloud9とAWS Elastic Beanstalkを利用してデプロイする仕組みになっています。また、Bedrockを使った新機能を実際に試す際には、デプロイの前にAmazon SageMakerのJupyter Notebookを実行します。

生成AIの使った新機能は、主に「通販サイトの管理者が使用する機能」と「通販サイトの利用者が使用する機能」に分かれていました。

通販サイトの管理者が使用する機能

「通販サイトの管理者が使用する機能」は、以下の3つでした

  • 商品説明の生成
  • カスタマーレビュー返信の原稿の生成
  • 商品デザインの生成

商品説明の生成機能の実装

商品説明の生成機能を実装した画面がこちらになります。こちらのサイトは、ワークショップ用に用意してくださったダミーの通販サイトです。Generate a new product descriptionのボタンを押して、Bedrockに渡すパラメータを設定して、商品説明を生成します。

カスタマーレビュー返信の原稿の生成機能の実装

カスタマーレビュー返信の原稿の生成機能を実装した画像を以下に示します。Bedrockに渡すパラメータを設定して、既存のカスタマーレビュー文章に応じて返信を自動生成しています。

実際にそのまま生成文章を使用するのではなく、「原稿」と表現している点が興味深かったです。Bedrockが生成した文章はあくまでも補助だよというメッセージを感じました。

商品デザインの生成機能の実装

商品デザインの生成機能を実装した画面がこちらになります。元の商品画像をベースにして、プロンプトに応じた新しい商品画像を生成します。

ワークショップではドレスにこちらのプロンプトを適用していたのですが、私はレザージャケットに適用しました。バラが刺繍されたおしゃれなジャケットになっていました。

通販サイトの利用者が使用する機能

「通販サイトの利用者が使用する機能」は、以下の3つでした。

  • カスタマーレビューの要約の生成
  • 自然言語での質問
  • カタログ上での商品検索

カスタマーレビューの要約の生成機能の実装

カスタマーレビューの要約の生成では、すでに投稿されている商品のレビュー文章を全てまとめて要約し、商品説明の補助に使える文章生成ボタンを商品ページに追加していました。

これ、実際の通販サイトにあったらめちゃくちゃ便利じゃないですか?Bedrockの実用的な利用方法を感じられた機能だと思っています。

自然言語での質問の機能の実装

自然言語での質問の機能では、「こんな商品はありますか?」みたいな文章を入力すると、それにあった回答を自動生成して表示するというものでした。画面のレイアウトなどがすこし簡素ではありましたが、十分にBedrockの生成AIの機能を実感できました。

カタログ上での商品検索機能の実装

カタログ上での商品検索では、ショップ画面の上部に検索バーを増設して、そこから実際の通販サイトのように商品の検索ができる検索フォームを実装しました。商品情報はベクターストアに保存されているため、例えばライオン柄という検索ワードに対して、ベクトルが近いヒョウ柄のドレスを検索結果として表示できました。

ここは時間の関係でスクショを撮れなかったのですが、Bedrockを経由してRDS・ベクターストアに検索を掛けられているのが確認できました。

学んだこと・感じたこと

今回のワークショップでは、Bedrockの生成AI機能を具体的なプロダクトに落とし込む方法を学びました。今回は既存の通販サイトに生成AIを使った補助的な機能を追加するということで、実際の開発で十分想定されうる実用的なワークショップだったと感じました。

実際に商品レビューの要約機能などは、本当に欲しいと思える機能だったので、生成AI機能にこんな使い道があったのか!と感動しました。

一方で、サイトへの具体的な変更内容やデプロイ方法はほぼほぼブラックボックス化されていました。HTMLファイルの編集はJupyter Notebook、通販サイトへのデプロイはElastic Beanstalkというように、アプリ自体への踏み込みはそこまでなかった印象です。ワークショップショップの題名を見てもBedrockがメインなのは想像できましたが、もうちょっとアプリ自体の実装にも深掘ってみてよかったな、と思います。

さいごに

Bedrockをテーマに、実用アプリケーションへの機能の組み込みを実装してみました。追加機能の内容も、実際に使って見たい実用的なものが多かったです。Bedrockを初めとする生成AI活用の例も知ることができ、気づき・学びを多く得られた貴重な体験となりました。生成AI活用の一例として、参考にしれいただければ幸いです。では!