Slide 1

Slide 1 text

© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only アプリケーションに Knowledge Bases for Amazon Bedrock を組み込む NECソリューションイノベータ株式会社 佐々木 航太 地方エンジニアのためのAWSハンズオン 〜生成系AIを使った開発力強化のポイント〜

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 3 n 佐々木 航太(Kota Sasaki) NECソリューションイノベータ株式会社 北海道支社 クラウド・地域ソリューショングループ シニアプロフェッショナル・ビジネスプロデューサー #39歳 #稚内出⾝ #野球 #AWS歴9年 #ネットワーク #セキュリティ #新製品好き #Soracom 自己紹介

Slide 4

Slide 4 text

0. 前提学習 1. 初期作業 2. Knowledge Bases前確認 3. Knowledge Bases作成 4. アプリに組み込んでみる 5. 後片付け 本日の流れ

Slide 5

Slide 5 text

0.前提学習

Slide 6

Slide 6 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 6 本ハンズオンで学習できること ・ Knowledge Bases for Amazon Bedrockとはを学習する ・ Amazon Bedrockと Knowledge Bases for Amazon Bedrockの違いを知る ・ Knowledge Bases for Amazon Bedrockを構築できるようになる ・ Knowledge Bases for Amazon Bedrockをアプリに組み込めるようになる

Slide 7

Slide 7 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 7 最終的に出来上がるアーキテクチャ

Slide 8

Slide 8 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 8 Knowledge Bases for Amazon Bedrockとは 検索拡張(RAG)の仕組みを簡単に構築/導入できる サービスです。 わかりやすくいうと、 Amazon Bedrockにオリジナデー タル(企業独自データ) を生成(検索)対象にできる仕 組み

Slide 9

Slide 9 text

1.初期作業

Slide 10

Slide 10 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 10 1.初期作業 1-1. AWSにログインする 1-2. リージョンを「バージニア」に変更する ※2024年1月24日時点では、Knowledge Bases for Amazon Bedrockは バージニアとオレゴンしか利用できないため 1-3.検索にBedrockを入力し、 Amazon Bedrock を開く

Slide 11

Slide 11 text

© NEC Solution Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 11 1.初期作業 1-4. (本ハンズオンでは実施済みのためスキップしてください)Amazon Bedrock のModel Accessを開く。

Slide 12

Slide 12 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 12 1.初期作業 1-5-1. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。 下記内容で表示されてる場 合はすでに利用可能な状態 なので本操作は不要です。 2. Knowledge Bases 前確認ま でスキップしてください

Slide 13

Slide 13 text

© NEC Solution Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 13 1.初期作業 1-5-2. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。

Slide 14

Slide 14 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 14 1.初期作業 1-5-3. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。 会社名 会社のURL 会社の業種 利用するのは誰か? 社内ユーザ 外部ユーザ どのような目的で使うか 使い方の説明

Slide 15

Slide 15 text

2. Knowledge Bases前確認

Slide 16

Slide 16 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 16 2. Knowledge Bases前確認 2-1. (前準備)他の参加者と被らない<識別子>を決めましょう ※後ほど作成するリソース名が被らないように使います。 例:sasaki-know-test-20240127 注意! 識別子はS3のバケット名にも使うので、命名規則に気をつけてください。 (半角ハイフンと英数字小文字で日付なんか入れると被らないかと)

Slide 17

Slide 17 text

© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 17 2. Knowledge Bases前確認 2-2. Amazon Bedrockに聞いても正しい回答とならないことを確認しよう。

Slide 18

Slide 18 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 18 2. Knowledge Bases前確認 2-3-1. モデルを先ほど有効にしたClaudeを選択

Slide 19

Slide 19 text

© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 19 2. Knowledge Bases前確認 2-3-2. モデルを先ほど有効にしたClaudeを選択

Slide 20

Slide 20 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 20 2. Knowledge Bases前確認 2-4-1. デフォルトのClaudeでは検索できないことを確認してみよう 今回は「 VoiceGraphyについて教えてください」を検索してみてください。 補足: VoiceGraphyはNECが2019 年に販売を停止した製 品で、音声認識をして 議事録の作成を支援し てくれるソフトです。 本来は社内規約などが 良いですが、お題を共 通化するために VoiceGraphyとさせてく ださい

Slide 21

Slide 21 text

© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 21 2. Knowledge Bases前確認 2-4-2. 最もらしい答えが返ってきてますが、求めてる答えではなく、検索した限りは存在しない スタートアップ企業の内容が返却されます。

Slide 22

Slide 22 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 22 2. Knowledge Bases前確認 2-4-3. 補足 ChatGPTはわからないと回答 Google検索の生成AIは求めてる回答 (リアルにWebを検索してる)

Slide 23

Slide 23 text

3. Knowledge Bases作成

Slide 24

Slide 24 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 24 3. Knowledge Bases作成 3-1-1. 最初に検索対象ドキュメントを格納するS3を作成

Slide 25

Slide 25 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 25 3. Knowledge Bases作成 3-1-2. 最初に検索対象ドキュメントを格納するS3を作成

Slide 26

Slide 26 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 26 3. Knowledge Bases作成 3-1-3. 最初に検索対象ドキュメントを格納するS3を作成 識別子

Slide 27

Slide 27 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 27 3. Knowledge Bases作成 3-2-1.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。

Slide 28

Slide 28 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 28 3. Knowledge Bases作成 3-2-2.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。 VoiceGraphyユーザーズマニュアル.docx

Slide 29

Slide 29 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 29 3. Knowledge Bases作成 3-2-3.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。

Slide 30

Slide 30 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 30 3. Knowledge Bases作成 3-3-1. Knowledge Bases for Amazon Bedrockを作成する

Slide 31

Slide 31 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 31 3. Knowledge Bases作成 3-3-2. Knowledge Bases for Amazon Bedrockを作成する

Slide 32

Slide 32 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 32 3. Knowledge Bases作成 3-3-3. Knowledge Bases for Amazon Bedrockを作成する 識別子

Slide 33

Slide 33 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 33 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 識別子

Slide 34

Slide 34 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 34 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 作成した識別子のS3 を選択する

Slide 35

Slide 35 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 35 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 識別子

Slide 36

Slide 36 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 36 3. Knowledge Bases作成 3-3-5. Knowledge Bases for Amazon Bedrockを作成する

Slide 37

Slide 37 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 37 3. Knowledge Bases作成 3-3-6. Knowledge Bases for Amazon Bedrockを作成する

Slide 38

Slide 38 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 38 3. Knowledge Bases作成 3-3-6. 補足 検索対象となるVector データの格納先は、 先が選択可能です。 今回は手順を簡略化さ せるために左記での Vectorデータの格納先は 作成しません。

Slide 39

Slide 39 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 39 3. Knowledge Bases作成 3-3-7. Knowledge Bases for Amazon Bedrockを作成する ボタンを押したあと OpenSearchServerlessが作成され るため数分時間がかかります。

Slide 40

Slide 40 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 40 3. Knowledge Bases作成 3-4. S3に格納したデータをKnowledge Bases(OpenSearchSeverless)に同期する ボタンを押したあとデータ の構築に数分かかります。 後ほど上記を使うので、メ モしておいてくださ い。・・・メモ1

Slide 41

Slide 41 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 41 3. Knowledge Bases作成 3-5-1. 検索結果が改善されたか確認する Select Modelと表示されてる 場合は、Claude v2.1を選択 してください。

Slide 42

Slide 42 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 42 3. Knowledge Bases作成 3-6. Knowledge Bases for Amazon Bedrockで同じキーワードを検索してみる 「 VoiceGraphyについて教えてください」

Slide 43

Slide 43 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal Use Only 43 3. Knowledge Bases作成 3-7. 意図したデータが返却されたことが確認できました ここを押すことでどこの 文章から参照してきたの かを確認できます。

Slide 44

Slide 44 text

4. アプリに組み込んでみる

Slide 45

Slide 45 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 45 4.アプリに組み込んでみる 4-1-1. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。

Slide 46

Slide 46 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 46 4.アプリに組み込んでみる 4-1-2. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。

Slide 47

Slide 47 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 47 4.アプリに組み込んでみる 4-1-3. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。

Slide 48

Slide 48 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 48 4.アプリに組み込んでみる 4-1-4.(本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。

Slide 49

Slide 49 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 49 4.アプリに組み込んでみる 4-1-5.(本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。 識別子

Slide 50

Slide 50 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 50 4.アプリに組み込んでみる 4-2. (本ハンズオンでは実施済みのためスキップ)現状のLambda標準のboto3にはKnowledge Bases for Amazon BedrockのrunYmeが含まれていないためLambda Layerを使って追加します。 mkdir python pip3 install boto3 -t ./python zip -r ./python.zip . aws lambda publish-layer-version --layer-name <識別子> --zip-file fileb://python.zip --compatible-runtimes python3.12

Slide 51

Slide 51 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 51 4.アプリに組み込んでみる 4-3-1. Lambda関数を作成します

Slide 52

Slide 52 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 52 4.アプリに組み込んでみる 4-3-2. Lambda関数を作成します

Slide 53

Slide 53 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 53 4.アプリに組み込んでみる 4-3-3. Lambda関数を作成します 識別子 識別子 今回のハンズオンではロールは 前のセッションで作成した Lambdaのロールを指定してくだ さい 今回はレイヤーがPython 3.9な ので3.9を指定してください

Slide 54

Slide 54 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 54 4.アプリに組み込んでみる 4-3-4. Lambda関数のタイムアウト値を3秒から30秒に変更します。 ※今回は応答に20秒ぐらいかかるため

Slide 55

Slide 55 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 55 4.アプリに組み込んでみる 4-3-5. 作成したLambda Leyerを追加します

Slide 56

Slide 56 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 56 4.アプリに組み込んでみる 4-3-5. 作成したLambda Leyerを追加します 識別子 今回のハンズオンではレイヤー は前のセッションで作成したレ イヤーを指定してください

Slide 57

Slide 57 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 57 4.アプリに組み込んでみる 4-6. ソースをコピーする import json import boto3 bedrock_agent = boto3.client('bedrock-agent-runtime') def lambda_handler(event, context): model_id = "anthropic.claude-v2:1" model_arn = f'arn:aws:bedrock:us-east-1::foundation-model/{model_id}' knowledgeBase_id = "XXXXXXXX" #メモ1を設定する # クエリパラメータを取得 query_params = event.get('queryStringParameters') # クエリパラメータが存在するか確認し、値を取得 param_value = "VoiceGraphyについて教えてください" if query_params: param_value = query_params.get('prompt', '') response = bedrock_agent.retrieve_and_generate( input={ 'text': param_value }, retrieveAndGenerateConfiguration={ 'type': 'KNOWLEDGE_BASE', 'knowledgeBaseConfiguration': { 'knowledgeBaseId': knowledgeBase_id, 'modelArn': model_arn } }) # 実行結果からテキストのみを変数に入れて、画面に出力する generated_text = response['output']['text'] print(generated_text) # 返却値 return { 'statusCode': 200, 'headers': { 'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json' }, 'body': json.dumps({ 'message': generated_text}, ensure_ascii=False) } ここに赤字部分を 修正しコピーペー ストする

Slide 58

Slide 58 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 58 4.アプリに組み込んでみる 4-7-1. APIGatewayに作成したLambdaを紐づける

Slide 59

Slide 59 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 59 4.アプリに組み込んでみる 4-7-2. APIGatewayに作成したLambdaを紐づける Cloud9で作成してSAMのアウト プットから自分のIDのものを探 してください

Slide 60

Slide 60 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 60 4.アプリに組み込んでみる 4-7-3. APIGatewayに作成したLambdaを紐づける

Slide 61

Slide 61 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 61 4.アプリに組み込んでみる 4-7-4. APIGatewayに作成したLambdaを紐づける

Slide 62

Slide 62 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 62 4.アプリに組み込んでみる 4-7-5. APIGatewayに作成したLambdaを紐づける

Slide 63

Slide 63 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 63 4.アプリに組み込んでみる 4-7-6. APIGatewayに作成したLambdaを紐づける

Slide 64

Slide 64 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 64 4.アプリに組み込んでみる 4-7-7. APIGatewayに作成したLambdaを紐づける

Slide 65

Slide 65 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 65 4.アプリに組み込んでみる 4-7-8. APIGatewayに作成したLambdaを紐づける

Slide 66

Slide 66 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 66 4.アプリに組み込んでみる 4-8. 画面から動作確認する。 画面で動作確認するため、API GatewayのURL パスを変更します。 ・「ui.html」をダブルクリック ・sendDataのurlのパスを「bedrock」から「knowledges」に変更 ※上記以外は変更しないでください。

Slide 67

Slide 67 text

5. 後片付け

Slide 68

Slide 68 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only 68 5.後片付け 5. (今回はAWSの問題により運営側で対応)下記リソースを削除する ※注意 OpenSearchServerlesは個別で削除が必要です。料金が高めなので注意してください ・Knowledge baseを削除する ・OpenSearchServerlessを削除する ・Lambdaを削除する ・LambdaLeyerを削除する ・IAMロールを削除する ・S3を削除する

Slide 69

Slide 69 text

© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal Use Only

Slide 70

Slide 70 text

No content