287 Views
December 23, 24
スライド概要
Bedrock ナレッジベースの構造化データ 取得(Text to SQL)をやってみた 株式会社 Waalsforce 篠田 敬廣 1
注意点 • 資料の内容は2024/12/19時点の情報となります • 本登壇で説明する内容は個人の見解も含まれます • 資料の内容にAWS公式と相違があった場合、AWS 公式を正とさせていただきます 2
• ナレッジベースの構造化データ取得 • 実際にやってみた • Amazon Q generative SQL(時間 あれば) 3
• ナレッジベースの構造化データ取得 • 実際にやってみた • Amazon Q generative SQL 4
ナレッジベースの構造化データ取得とは? • • Bedrockのデータ参照先をRedshift(構造化データ)にでき る 自然言語からSQL文を作ってRedshiftを参照してくれる →Text to SQL to Text 山田太郎の趣味 は? SQL文生成 SELECT hobby FROM users WHERE name = '山田'; Bedrock Redshift 5
ナレッジベースの構造化データ取得とは? • • Bedrockのデータ参照先をRedshift(構造化データ)にでき る 自然言語からSQL文を作ってRedshiftを参照してくれる →Text to SQL to Text 山田太郎の趣味は読書と ゲームです Bedrock SQL文生成 SELECT hobby FROM users WHERE name = '山田'; Redshift 6
うれしいこと • 既存のRedshiftをBedrockのナレッジベースに使える • 構造化データ(RDB)をデータソースにできる →ナレッジデータをイチから準備する手間が省ける 7
• ナレッジベースの構造化データ取得 • 実際にやってみた • Amazon Q generative SQL 8
Redshift側の事前準備 • データベース • テーブル(テスト用データ) ※Redshift サーバレスを使用しました 投入したテストデータ 9
Bedrockの事前準備① • • ナレッジベースから「Knowledge Base with structured data store」で作成する 参照先のRedshiftとDBを選択(割愛) 10
Bedrockの事前準備② • Bedrock Knowledge Basesが使用するIAMロールに「Redshift」の Select権限を付与する必要がある • Redshift側でIAMロールにSelect権限を付与するクエリ実行 CREATE USER "IAMR:AmazonBedrockExecutionRoleForKnowledgeBase_vcz9z" WITH PASSWORD DISABLE; 11
試してみる 山田太郎の趣味は?と聞くと 「ゲームと読書」と正しい情報を 回答してくれた 12
Next.jsのスキルを持っている人がいるか?と聞くと Next.jsのスキルを持った人は「いない」と回答をしてくれた 13
Retrieval and response generationの種類 データソースの参照のみ 自然言語で回答 SQL文の生成 14
Redshiftとのデータ同期 • Redshiftでデータを更新してもBedrockからはリアルタイムで同 期はされない • 最新データに保つには都度Bedrock側でデータを同期させる必 要がある 15
• ナレッジベースの構造化データとは? • 実際にやってみた • Amazon Q generative SQL 16
Amazon Q generative SQL • Amazon Qから 自然言語でSQL文を生成できる • 作ったSQL文をワンクリックでクエリに渡せる(実行できる) • (確か)当初は英語のみ対応だったが今は日本語も対応して いる • 2023年のre:inventで発表されて機能 • 2024年10月にGA 17
18
まとめ ⚫ 「Bedrock ナレッジベースの構造化データ取得」はBedrockナ レッジベースのデータ参照先をRedshiftにできる ⚫ Text to SQL to Text で自然言語からSQL文を生成し、自 然言語で回答を得られる ⚫ Redshiftとのデータ同期は都度必要(リアルタイム更新され ない) ⚫ Amazon Q generative SQL は自然言語からSQL文を生 成できる 19