Slide 1

Slide 1 text

Agents for Amazon Bedrockと Amazon Kendraを活用して RAGを構築してみた! セゾン情報システムズ 石原直樹 color is【クラウドLT大会vol.6】大型アップデート祭り 2023年12月20日 1

Slide 2

Slide 2 text

自己紹介 ⚫ 石原 直樹(いしはら なおき) ⚫ 業務 • グループ企業のCCoE • 社内LLM研究会にも所属 ⚫ 好きなAWSサービス ・ Amazon Kendra ・ Amazon Bedrock 2 @lshihara_Naok1 X最近始めました!

Slide 3

Slide 3 text

今日話すこと ・使ったAWSサービスの説明 ・検証した内容 ・工夫したポイント 3

Slide 4

Slide 4 text

サービスの説明 4

Slide 5

Slide 5 text

Amazon Bedrockとは ・AWS基盤上にあるAIモデルをAPIを通じて利用できる ユーザー Amazon Bedrock ・使えるAIモデル ・Julassic-2 ・Claude ・Command ・Llama 2 ・Stable Diffusion ・Amazon Titan ・質問すると回答が返ってくるのみ、実際のタスクは人間が行う必要がある 期限切れの課題持ってる人 にリマインドを送って リマインドを送る際の注意点は~

Slide 6

Slide 6 text

Agents for Amazon Bedrockとは 6 ・質問をするとエージェントが思考し、計画し、実行する ・Lambda関数を設定すると、計画に応じて実行してくれる ユーザー Agents for Amazon Bedrock AWS Lambda 期限切れの課題持ってる人 にリマインドを送って Step1: 課題を取得する Step3: メッセージを送信する AWS Lambda Amazon Bedrock Step2: 担当者を特定する 課題を取得して、担当者を特定し、 リマインド送信しよう ・使えるAIモデル ・Claudeのみ ※2023年11月29日 一般利用開始

Slide 7

Slide 7 text

Amazon Kendraとは ・高性能な検索機能を持った企業内検索エンジン ユーザー Amazon Bedrock Amazon Kendra アプリ 使えるデータソースコネクタ ・Amazon S3 ・JIRA ・BOX ・Slack etc.. ・Bedrock+Kendraで、AIモデルが専門的な情報から回答できるRAG※を構築できる ②検索 ③結果出力 ④結果取得 ⑤回答生成 ①質問 ⑥回答取得 ※外部の知識ベースから検索して、AIが回答を生成する仕組み

Slide 8

Slide 8 text

背景 8

Slide 9

Slide 9 text

HULFTサポート部門 9 製品FAQ 製品マニュアル 過去事例 1つずつ内容を確 認すると時間がか かる 複数のドキュメントを 横断するのが面倒 合わせて数万件 お客様 問い合わせ 回答

Slide 10

Slide 10 text

今まで検証してきたもの 10 Amazon Bedrock Amazon Kendra アプリ 製品FAQ 製品マニュアル 過去事例 HULFTサポート部門 HULFT8を導入するために 必要なソフトウェアは? HULFT8を導入するために 必要なソフトウェアは主に~ 専門知識から回答しているが、業務に即した回答ではない →Agents for Amazon Bedrockでより適した回答を生成させる

Slide 11

Slide 11 text

今回検証した内容 11

Slide 12

Slide 12 text

デモ 12 ※情報は一般公開されているものです。 ※待機時間は編集しています。 回答のポイント ・質問でない場合、自己紹介を返す ・ビジネスっぽい言い回し ・専門知識から回答 ・ソースURLも添付

Slide 13

Slide 13 text

回答までの流れ(こんにちは編) 13 Agents for Amazon Bedrock Amazon Bedrock こんにちは AWS Lambda Amazon Kendra (エージェント) (AIモデル) (検索エンジン)

Slide 14

Slide 14 text

回答までの流れ(こんにちは編) 14 Agents for Amazon Bedrock Amazon Bedrock こんにちは AWS Lambda Amazon Kendra 挨拶をされたので、 挨拶と自己紹介を返そう (エージェント) (AIモデル) (検索エンジン)

Slide 15

Slide 15 text

回答までの流れ(こんにちは編) 15 Agents for Amazon Bedrock Amazon Bedrock こんにちは AWS Lambda Amazon Kendra こんにちは、HULFTテクニカルサ ポートです。 (エージェント) (AIモデル) (検索エンジン) 挨拶をされたので、 挨拶と自己紹介を返そう

Slide 16

Slide 16 text

回答までの流れ(質問編) 16 Agents for Amazon Bedrock Amazon Bedrock HULFT8を導入するために 必要なソフトウェアは? AWS Lambda Amazon Kendra (エージェント) (AIモデル) (検索エンジン)

Slide 17

Slide 17 text

回答までの流れ(質問編) 17 Agents for Amazon Bedrock Amazon Bedrock HULFT8を導入するために 必要なソフトウェアは? AWS Lambda Amazon Kendra HULFTに関する質問なの で、検索しよう (エージェント) (AIモデル) (検索エンジン)

Slide 18

Slide 18 text

回答までの流れ(質問編) 18 Agents for Amazon Bedrock Amazon Bedrock HULFT8を導入するために 必要なソフトウェアは? AWS Lambda Amazon Kendra ①「HULFT8 導入に必要なソフトウェア」とKendra検索 ②検索結果を取得してエージェントに渡す HULFTに関する質問なの で、検索しよう (エージェント) (AIモデル) (検索エンジン) ① ① ② ②

Slide 19

Slide 19 text

回答までの流れ(質問編) 19 Agents for Amazon Bedrock Amazon Bedrock HULFT8を導入するために 必要なソフトウェアは? AWS Lambda Amazon Kendra 検索結果を取得したので、 回答を生成しよう (エージェント) (AIモデル) (検索エンジン)

Slide 20

Slide 20 text

回答までの流れ(質問編) 20 Agents for Amazon Bedrock Amazon Bedrock HULFT8を導入するために 必要なソフトウェアは? AWS Lambda Amazon Kendra 検索結果を取得したので、 回答を生成しよう お問い合わせありがとうございま す。~~~~~~~~~~ 以上、よろしくお願いします (エージェント) (AIモデル) (検索エンジン)

Slide 21

Slide 21 text

工夫したポイント 21

Slide 22

Slide 22 text

プロンプトエンジニアリングのテクニックを多用 22 あなたはHULFTという製品に詳しいHULFTテクニカルサポートというエージェントです。 ~~ 1. 「製品ドキュメント検索」:製品に関する質問をされた際に、検索して取得してください。~~ 2. 「回答の生成」:1. 「製品ドキュメント検索」で取得した回答を生成してください。~~ 以下はその回答例です。 お問い合わせいただきありがとうございます。 "DocumentTitle“ "Content“ 参考:"DocumentURI“ 以上、よろしくお願いいたします。 もし、「こんにちは」など、質問形式の発話ではない場合、「こんにちは。HULFTテクニカルサポートです。ご質問いただければと思います。」と 返してください。 ・エージェント作成時に設定したInstructionの記載内容 ・ステップバイステップで行動を記載 ・などのXMLタグを使用 ※多少省略しています。 ANTHROPIC プロンプトデザインの紹介 https://docs.anthropic.com/claude/docs/introduction-to-prompt-design ※AIから欲しい回答を得るために命令文を最適化する手法 ※

Slide 23

Slide 23 text

関数を呼び出すスキーマのdescriptionにも工夫 23 openapi: 3.0.0 info: title: 'Test API' description: "APIs for testing Agents' behavior" version: '1.0.0' paths: /search: get: summary: 'GreetingAndDocumentSearchAPI' description: | もし、「こんにちは」などの挨拶をされた場合、user::askuser を実行し、「こんにち は。HULFTテクニカルサポートです。ご質問いただければと思います。」と必ず返してください。この関 数は、HULFTに関するドキュメントを検索し、~~JSON形式の配列で必ず返すAPIです。~~ 検索時に取得した"DocumentTitle"、"Content"、"DocumentURI"を使用して以下 にように回答を生成してください。お問い合わせいただきあ りがとうございます。>"DocumentTitle""Content"参考:"DocumentURI"以上、よろしく お願いいたします。 operationId: searchFaq ~~~~~~~~~~~~~~~~ descriptionにもプロンプトを細かく記載することで忠実に命令に従ってくれるようになった ・エージェント作成時に設定するOpenAPIスキーマの記載内容 ・この内容を基に、エージェントが関数を呼び出すかどうか判断

Slide 24

Slide 24 text

まとめ&所感 24

Slide 25

Slide 25 text

・Agents for Amazon Bedrock凄い! ・AIが現実世界とより容易に繋がれるようになった ・プロンプトエンジニアリング、奥が深い ・そのまま命令を実行してくれるコードと異なり、正解を見つけることが難しい 25 みなさんもぜひ検証してみてください!

Slide 26

Slide 26 text

ご清聴ありがとうございました! 26

Slide 27

Slide 27 text

Knowledge base for Amazon Bedrockとは 27 ・RAGを容易に構築できるBedrockの機能。 ・Agents for Amazon Bedrockと統合 ※2023年11月29日 一般利用開始 Vector Database Amazon S3 Agents for Amazon Bedrock Knowledge base for Amazon Bedrock 同期 ベクトル検索 呼び出す

Slide 28

Slide 28 text

Knowledge baseとAmazon KendraのRAGにおける違い 28 Knowledge base Amazon Kendra 検索機能 ベクター検索 全文検索、セマンティック検索 対応データソース S3のみ 約40種類 S3,JIRA,BOX,Slack etc.. 参照できるコンテンツの情報 テキスト、S3パス データソースにより様々 削除、変更、追加可能 コンテンツの情報を編集したかった(S3パス→URLに変更)ためKendraを採用