Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
NL2SQLの世界
Search
Issei.Komori
March 13, 2025
Technology
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NL2SQLの世界
第41回 JAWS-UG札幌 勉強会 登壇資料
https://jawsug-sapporo.connpass.com/event/343883/
Issei.Komori
March 13, 2025
More Decks by Issei.Komori
See All by Issei.Komori
AntigravityをAgent Platform APIで利用してみた
icck
0
200
200個のGitHubリポジトリを横断調査したかった
icck
0
210
mnt_data_とは?ChatGPTコード実行環境を深堀りしてみた
icck
0
1.3k
MCPコードリーディングすると得られるもの
icck
1
180
Audio and Video Processing with Generative AI
icck
0
120
Postmanと仲良くなる。API簡易実行にしか使ってなかった初心者の第二歩目
icck
1
230
APIフレームワークを Lambdaで動かす
icck
1
180
Other Decks in Technology
See All in Technology
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
400
AWS App Runnerから Cloudflare Workersへ移行した話
ryota09
0
110
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
110
ScotSecure West 2026 - Glasgow
raybugg
0
200
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
420
企業の現実世界をグラフで写し取る
sansantech
PRO
0
190
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
250
VS Code × GitHub Copilot での Fabric 開発
ryomaru0825
1
150
KanaAI
shreyas1009
0
120
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
740
地方移住と都心キャリアの両立は「金・時間・人」のリソースをフル活用すれば実現できる!〜Snowflake女子会 vol.8
snowwmn0824
0
130
20260930_Gemma4_Hands-on
tsho
0
120
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
Exploring anti-patterns in Rails
aemeredith
4
520
Typedesign – Prime Four
hannesfritz
42
3.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
Accessibility Awareness
sabderemane
1
220
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
New Earth Scene 8
popppiees
4
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Transcript
NL2SQLの世界 生活協同組合コープさっぽろ 2025/03/14 小森一成(@icckx) 第41回 JAWS-UG札幌 勉強会
小森 一成(@icckx)
今日は生成AIのRAGの話です (みなさん、そろそろN回目?)
RAG(検索 拡張 生成) 生成AIが知るはずがない情報を、事前に検索して 指示プロンプトに得た検索結果を追加拡張してから、 テキストを生成する N回目だと思うので雑めに説明すると...
NL2SQL しってる方?✋ 本題
NL2SQL(Natural Language to SQL) 自然言語(ユーザーが普段使う言葉)で書かれた質問や命令を、 データベースから情報を取得するためのSQLクエリに変換する技術 別名:Text-to-SQL / Semantic Parsing
RAGの全体像 https://github.com/bRAGAI/bRAG-langchain/
今日のはなし https://github.com/bRAGAI/bRAG-langchain/
RAG: Vector / NL2SQL の違い Vector NL2SQL / Text-to-SQL /
Semantic Parsing わがはいは 猫 わがはいは 犬 猫 類似度 検索 1月の売上は? SQL 生成 自然言語から類似度が高いベクトルを検索 自然言語から最適なSQLを生成
RAG: Vector / NL2SQL の違い Vector わがはいは 猫 わがはいは 犬
猫 類似度 検索 自然言語から類似度が高いベクトルを検索 NL2SQL / Text-to-SQL / Semantic Parsing 1月の売上は? SQL 生成 【大きな違い】 SQLでデータ集計(SUM)できる ↓ 生成AIで数字のビックデータを 「柔軟に」扱える!!! SQLだから計算ハルシネーション なし!
knowledge base with structured data store Amazon Bedrock Amazon Redshift
+
knowledge base with structured data store 〜 AWS版のNL2SQLによるRAG構築手段 〜 Users
SQL 生成&実行 Amazon Bedrock Amazon Redshift 返答 DB/Table スキーマ定義 SQL 生成時のメタデータ SQL実行履歴 データの扱われ方を理解 Descriptions テーブルまたは列名へ説明拡張 Inclusions/exclusions SQL 生成の対象または除外にしたい テーブル名や列名を明示 Curated queries 事前に想定される質問と期待される SQL の情報をキュレーションされた クエリとして登録 GenerateQuery API : $2/1000 Query , Generative AI model selection not available Optional 参考:https://qiita.com/hayao_k/items/460bf6aa8b0424eb0d82
作成してみる。
Create User + GRANT → DB同期 CREATE USER "IAMR:KBロール名" WITH
PASSWORD DISABLE; GRANT SELECT ON sales TO "IAMR:KBロール名"; GRANT SELECT ON date TO "IAMR:KBロール名"; knowledge base Role A Amazon Redshift sales User Role A date ※ KBロール名ユーザーを作ることでで接続できます
実行してみる(マネジメントコンソールから) SELECT "date".month, SUM(public.sales.pricepaid) AS total_sales FROM public.sales JOIN public.date
ON public.sales.dateid = public.date.dateid GROUP BY "date".month; 17万件をサマリ
SQLはあっているが、Claudeが嘘をつかないかは別の話 あれ、10月より3月の売上のほうが高いよね ...
検索失敗も... SELECT SUM(pricepaid) AS total_sales FROM public.sales INNER JOIN public.date
ON public.sales.dateid = public.date.dateid WHERE public.date.month = 'Jan'; 1月の合計を教えてと伝えても、すべて大文字にな らず、検索が失敗した。 ※本当は”JAN”で検索してほしかった どうすべきか?
検索失敗の原因:値の仕様による検索失敗 SELECT SUM(pricepaid) AS total_sales FROM public.sales INNER JOIN public.date
ON public.sales.dateid = public.date.dateid WHERE public.date.month = 'Jan'; DBの値がJANとすべて大文字であり検索が失敗した。 どうすべきか?
Optionを追加....しても動かなかった monthとは 3文字で大文字と教えてみた 1月限定で実行すべき SQLを 指定してみた
解決方法1:システム的な指示プロンプトにする SELECT SUM(pricepaid) AS total_sales FROM public.sales INNER JOIN public.date
ON public.sales.dateid = public.date.dateid WHERE public.date.month = 'JAN'; エンドユーザーがつかわない 内部構造を知っているような自然言語指示 ↓ ”JAN” といった具合に、 ダブルクォーテーションでくくると SQL変換がやりやすいのか意図した動きになった 自然言語指示 指示拡張層 knowledge base できればやりたくない...
解決方法2:DB側の定義にコメントをつける COMMENT ON COLUMN public.date.month IS '3-letter uppercase month abbreviation
(e.g. JAN, FEB, MAR...)'; ↑ RedShift のTableにコメントを付けて同期した
knowledge base with structured data store 〜 AWS版のNL2SQLによるRAG構築手段 〜 Users
SQL 生成&実行 Amazon Bedrock Amazon Redshift 返答 DB/Table スキーマ定義 SQL 生成時のメタデータ SQL実行履歴 データの扱われ方を理解 Descriptions テーブルまたは列名へ説明拡張 Inclusions/exclusions SQL 生成の対象または除外にしたい テーブル名や列名を明示 Curated queries 事前に想定される質問と期待される SQL の情報をキュレーションされた クエリとして登録 GenerateQuery API : $2/1000 Query , Generative AI model selection not available Optional 参考:https://qiita.com/hayao_k/items/460bf6aa8b0424eb0d82 解決1 解決2 解決せず... 解決せず...
まとめ • 売上など集計したいビックデータなら NL2SQL ◦ 大量データを1度に扱える ◦ 数値計算ミスが絶対おきない • 文字列など、値を条件に分岐する
SQLは失敗リスク ◦ DB側をきれいな世界に持っていくと成功率向上 • お手軽にお試し可能 ◦ RedShift Serverless $0.00 / month(17万件、数十回の実行) ◦ KnowledgeBase $0.03 / month(数十回の実行)
NL2SQLの世界 生活協同組合コープさっぽろ 2025/03/14 小森一成(@icckx) 第41回 JAWS-UG札幌 勉強会