Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アプリケーションにKnowledge Bases for Amazon Bedrock を組み込む
Search
Kota Sasaki
January 27, 2024
Technology
0
4
アプリケーションにKnowledge Bases for Amazon Bedrock を組み込む
アプリケーションにKnowledge Bases for Amazon Bedrock を組み込む
Kota Sasaki
January 27, 2024
Tweet
Share
More Decks by Kota Sasaki
See All by Kota Sasaki
JAWS-UG札幌_opening_30
sasakidenki
0
9
JAWS-UG札幌_opening_31
sasakidenki
0
6
JAWS-UG札幌_opening_32
sasakidenki
0
8
JAWS-UG札幌_opening_33
sasakidenki
0
6
JAWS-UG札幌_opening_34
sasakidenki
0
5
どさんこがお届けする 〜オールラウンドなクラウド活用事例〜
sasakidenki
0
270
自称Serverless最年長者から見る2023Serverless Recap
sasakidenki
0
40
Developers CAREER Boost 2023
sasakidenki
0
63
SORACOMを使った保守改善
sasakidenki
0
11
Other Decks in Technology
See All in Technology
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
35k
Cracking the KubeCon CfP
inductor
2
270
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
440
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
3.2k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
1.9k
require(ESM)とECMAScript仕様
uhyo
4
1k
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
4
790
Handling focus in 2024
tahia910
0
340
Cloud Service Mesh に触れ合う
phaya72
1
270
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
130
Featured
See All Featured
Become a Pro
speakerdeck
PRO
13
4.6k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
RailsConf 2023
tenderlove
9
560
Writing Fast Ruby
sferik
622
60k
Teambox: Starting and Learning
jrom
128
8.4k
The Cost Of JavaScript in 2023
addyosmani
21
3.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Designing with Data
zakiwarfel
96
4.8k
How to name files
jennybc
65
93k
Transcript
© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only アプリケーションに Knowledge Bases for Amazon Bedrock を組み込む NECソリューションイノベータ株式会社 佐々木 航太 地方エンジニアのためのAWSハンズオン 〜生成系AIを使った開発力強化のポイント〜
None
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 3 n 佐々木 航太(Kota Sasaki) NECソリューションイノベータ株式会社 北海道支社 クラウド・地域ソリューショングループ シニアプロフェッショナル・ビジネスプロデューサー #39歳 #稚内出⾝ #野球 #AWS歴9年 #ネットワーク #セキュリティ #新製品好き #Soracom 自己紹介
0. 前提学習 1. 初期作業 2. Knowledge Bases前確認 3. Knowledge Bases作成
4. アプリに組み込んでみる 5. 後片付け 本日の流れ
0.前提学習
© 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をアプリに組み込めるようになる
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 7 最終的に出来上がるアーキテクチャ
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 8 Knowledge Bases for Amazon Bedrockとは 検索拡張(RAG)の仕組みを簡単に構築/導入できる サービスです。 わかりやすくいうと、 Amazon Bedrockにオリジナデー タル(企業独自データ) を生成(検索)対象にできる仕 組み
1.初期作業
© 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 を開く
© NEC Solution Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 11 1.初期作業 1-4. (本ハンズオンでは実施済みのためスキップしてください)Amazon Bedrock のModel Accessを開く。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 12 1.初期作業 1-5-1. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。 下記内容で表示されてる場 合はすでに利用可能な状態 なので本操作は不要です。 2. Knowledge Bases 前確認ま でスキップしてください
© NEC Solution Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 13 1.初期作業 1-5-2. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 14 1.初期作業 1-5-3. (本ハンズオンでは実施済みのためスキップ)AnthropicのClaudeとClaude Instantを有効にする。 会社名 会社のURL 会社の業種 利用するのは誰か? 社内ユーザ 外部ユーザ どのような目的で使うか 使い方の説明
2. Knowledge Bases前確認
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 16 2. Knowledge Bases前確認 2-1. (前準備)他の参加者と被らない<識別子>を決めましょう ※後ほど作成するリソース名が被らないように使います。 例:sasaki-know-test-20240127 注意! 識別子はS3のバケット名にも使うので、命名規則に気をつけてください。 (半角ハイフンと英数字小文字で日付なんか入れると被らないかと)
© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 17 2. Knowledge Bases前確認 2-2. Amazon Bedrockに聞いても正しい回答とならないことを確認しよう。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 18 2. Knowledge Bases前確認 2-3-1. モデルを先ほど有効にしたClaudeを選択
© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 19 2. Knowledge Bases前確認 2-3-2. モデルを先ほど有効にしたClaudeを選択
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 20 2. Knowledge Bases前確認 2-4-1. デフォルトのClaudeでは検索できないことを確認してみよう 今回は「 VoiceGraphyについて教えてください」を検索してみてください。 補足: VoiceGraphyはNECが2019 年に販売を停止した製 品で、音声認識をして 議事録の作成を支援し てくれるソフトです。 本来は社内規約などが 良いですが、お題を共 通化するために VoiceGraphyとさせてく ださい
© NEC Solution Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 21 2. Knowledge Bases前確認 2-4-2. 最もらしい答えが返ってきてますが、求めてる答えではなく、検索した限りは存在しない スタートアップ企業の内容が返却されます。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 22 2. Knowledge Bases前確認 2-4-3. 補足 ChatGPTはわからないと回答 Google検索の生成AIは求めてる回答 (リアルにWebを検索してる)
3. Knowledge Bases作成
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 24 3. Knowledge Bases作成 3-1-1. 最初に検索対象ドキュメントを格納するS3を作成
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 25 3. Knowledge Bases作成 3-1-2. 最初に検索対象ドキュメントを格納するS3を作成
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 26 3. Knowledge Bases作成 3-1-3. 最初に検索対象ドキュメントを格納するS3を作成 識別子
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 27 3. Knowledge Bases作成 3-2-1.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 28 3. Knowledge Bases作成 3-2-2.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。 VoiceGraphyユーザーズマニュアル.docx
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 29 3. Knowledge Bases作成 3-2-3.検索対象データを事前格納 ※事前に渡された「VoiceGraphyユーザーズマニュアル.docx」を準備してください。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 30 3. Knowledge Bases作成 3-3-1. Knowledge Bases for Amazon Bedrockを作成する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 31 3. Knowledge Bases作成 3-3-2. Knowledge Bases for Amazon Bedrockを作成する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 32 3. Knowledge Bases作成 3-3-3. Knowledge Bases for Amazon Bedrockを作成する 識別子
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 33 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 識別子
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 34 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 作成した識別子のS3 を選択する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 35 3. Knowledge Bases作成 3-3-4. Knowledge Bases for Amazon Bedrockを作成する 識別子
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 36 3. Knowledge Bases作成 3-3-5. Knowledge Bases for Amazon Bedrockを作成する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 37 3. Knowledge Bases作成 3-3-6. Knowledge Bases for Amazon Bedrockを作成する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 38 3. Knowledge Bases作成 3-3-6. 補足 検索対象となるVector データの格納先は、 先が選択可能です。 今回は手順を簡略化さ せるために左記での Vectorデータの格納先は 作成しません。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 39 3. Knowledge Bases作成 3-3-7. Knowledge Bases for Amazon Bedrockを作成する ボタンを押したあと OpenSearchServerlessが作成され るため数分時間がかかります。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 40 3. Knowledge Bases作成 3-4. S3に格納したデータをKnowledge Bases(OpenSearchSeverless)に同期する ボタンを押したあとデータ の構築に数分かかります。 後ほど上記を使うので、メ モしておいてくださ い。・・・メモ1
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 41 3. Knowledge Bases作成 3-5-1. 検索結果が改善されたか確認する Select Modelと表示されてる 場合は、Claude v2.1を選択 してください。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 42 3. Knowledge Bases作成 3-6. Knowledge Bases for Amazon Bedrockで同じキーワードを検索してみる 「 VoiceGraphyについて教えてください」
© NEC Solu9on Innovators, Ltd. 2023 NEC Solution Innovators Internal
Use Only 43 3. Knowledge Bases作成 3-7. 意図したデータが返却されたことが確認できました ここを押すことでどこの 文章から参照してきたの かを確認できます。
4. アプリに組み込んでみる
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 45 4.アプリに組み込んでみる 4-1-1. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 46 4.アプリに組み込んでみる 4-1-2. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 47 4.アプリに組み込んでみる 4-1-3. (本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 48 4.アプリに組み込んでみる 4-1-4.(本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 49 4.アプリに組み込んでみる 4-1-5.(本ハンズオンでは実施済みのためスキップ)事前準備としてIAMロールを作成します。 識別子
© 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
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 51 4.アプリに組み込んでみる 4-3-1. Lambda関数を作成します
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 52 4.アプリに組み込んでみる 4-3-2. Lambda関数を作成します
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 53 4.アプリに組み込んでみる 4-3-3. Lambda関数を作成します 識別子 識別子 今回のハンズオンではロールは 前のセッションで作成した Lambdaのロールを指定してくだ さい 今回はレイヤーがPython 3.9な ので3.9を指定してください
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 54 4.アプリに組み込んでみる 4-3-4. Lambda関数のタイムアウト値を3秒から30秒に変更します。 ※今回は応答に20秒ぐらいかかるため
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 55 4.アプリに組み込んでみる 4-3-5. 作成したLambda Leyerを追加します
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 56 4.アプリに組み込んでみる 4-3-5. 作成したLambda Leyerを追加します 識別子 今回のハンズオンではレイヤー は前のセッションで作成したレ イヤーを指定してください
© 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) } ここに赤字部分を 修正しコピーペー ストする
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 58 4.アプリに組み込んでみる 4-7-1. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 59 4.アプリに組み込んでみる 4-7-2. APIGatewayに作成したLambdaを紐づける Cloud9で作成してSAMのアウト プットから自分のIDのものを探 してください
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 60 4.アプリに組み込んでみる 4-7-3. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 61 4.アプリに組み込んでみる 4-7-4. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 62 4.アプリに組み込んでみる 4-7-5. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 63 4.アプリに組み込んでみる 4-7-6. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 64 4.アプリに組み込んでみる 4-7-7. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 65 4.アプリに組み込んでみる 4-7-8. APIGatewayに作成したLambdaを紐づける
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 66 4.アプリに組み込んでみる 4-8. 画面から動作確認する。 画面で動作確認するため、API GatewayのURL パスを変更します。 ・「ui.html」をダブルクリック ・sendDataのurlのパスを「bedrock」から「knowledges」に変更 ※上記以外は変更しないでください。
5. 後片付け
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only 68 5.後片付け 5. (今回はAWSの問題により運営側で対応)下記リソースを削除する ※注意 OpenSearchServerlesは個別で削除が必要です。料金が高めなので注意してください ・Knowledge baseを削除する ・OpenSearchServerlessを削除する ・Lambdaを削除する ・LambdaLeyerを削除する ・IAMロールを削除する ・S3を削除する
© NEC Solu9on Innovators, Ltd. 2023 NEC Solu9on Innovators Internal
Use Only
None