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
10
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
8
どさんこがお届けする 〜オールラウンドなクラウド活用事例〜
sasakidenki
0
280
自称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
本番環境で Cloudflareを 使ってみた話
miu_crescent
2
130
データ基盤を支える技術
chanyou0311
5
3k
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
320
From here to resilience - a travel guide
ufried
1
160
SLOいつ決めましょう?
abnoumaru
3
440
TypescriptでのContextualな構造化ロギングと社内全体への導入
leveragestech
3
580
[PyconUS 2024] Having fun with Pydantic and pattern matching
enforcerpl
0
170
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.7k
Taking Flight with Tailwind CSS
opdavies
0
4.3k
テストコードを書きながらCompose Multiplatformを乗りこなす
subroh0508
0
140
使われないものを作るな!出口から作るデータ分析基盤 / Data Platform Development Starting from the User Needs
amaotone
16
4.6k
多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた / TSKaigi TypeScript Multilingualization
nabeliwo
2
390
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
133
6.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Building an army of robots
kneath
300
41k
Why Our Code Smells
bkeepers
PRO
331
56k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Gamification - CAS2011
davidbonilla
77
4.6k
How STYLIGHT went responsive
nonsquared
92
4.8k
Typedesign – Prime Four
hannesfritz
36
2.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
A better future with KSS
kneath
231
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
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