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
NL2SQLを活用したExcelの生成AI利用アプローチ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
とすり
May 30, 2025
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NL2SQLを活用したExcelの生成AI利用アプローチ
とすり
May 30, 2025
More Decks by とすり
See All by とすり
AWS IoT GreengrassとRaspberry Piを使って、怠惰な生活検知システムを作る
tosuri13
0
38
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
1.2k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
310
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
760
GraphRAGの仕組みまるわかり
tosuri13
10
1.8k
RAGの精度が全然上がらない!! AOSSを使った社内RAG開発の反省
tosuri13
3
270
AWS Chaliceで始める爆速サーバレスチャットボット開発!!
tosuri13
1
330
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
3
710
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
1
960
Other Decks in Programming
See All in Programming
Flow は今どうなっているか
mizdra
PRO
0
290
プロポーザルを書いてもらう
pvcresin
0
500
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
260
メールのエイリアス機能を履き違えない
isshinfunada
0
240
Cloudflare is Agents
chimame
0
160
「人を評価する AI」の設計と実装
ryoyanara
0
200
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.8k
テーブルをDELETEした
yuzneri
0
140
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
220
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
500
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
540
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
The SEO Collaboration Effect
kristinabergwall1
1
520
Deep Space Network (abreviated)
tonyrice
0
250
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
WCS-LA-2024
lcolladotor
0
790
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Accessibility Awareness
sabderemane
1
170
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Transcript
NL2SQLを活用した Excelの生成AI利用アプローチ クラメソおおさか IT 勉強会 Midosuji Tech #6
とすり@tosuri13 自称雑用系エンジニア AWS基盤の運用とかをやってます
Excelが生成AIにとって不遇な理由
Excelを生成AIで利用したい 例えば、以下のような社員名簿が記載されたExcelの構造化データを、生成AIで 取り扱うケースを考えます。
テキストに変換してみる 生のExcelデータには不要な文字列(XML)が多く含まれているため、以下のよう なMarkdownのテーブル形式に変換したテキストで扱うのが一般的です。
トークン数の問題 これをそのままプロンプトに含めて出力を生成することも可能ですが、レコー ド数やカラム数が増加するにつれて、入力トークン数(コスト)も大きく増加する ため、あまり好ましくありません。 100,000tokens 1行あたり100トークンと仮定すると 例えば社員名簿が1000行あった場合、OpenAI o3なら1リクエストで1$かかってしまう!!
RAGを利用するのはどうか? では、RAG(ベクトル検索)で扱うのはどうでしょうか?しかし、RAGのチャンキ ング処理の中で、以下のようにテキストが分割される可能性があります。 ・チャンクA ・チャンクB
コンテキスト欠落の問題 このように分割されてしまうと、検索で片方のチャンクしか取得できなかった 場合、ヘッダーや列の一部の重要なコンテキスト情報が抜け落ちるため、生成 AIが正しく出力を生成できなくなる問題があります。 ・チャンクB 例えば「2018-07-01」という日付が何を指しているのか、このチャンクから判断することができない ↓ 生成AIが欠けている情報を補おうとるため、ハルシーネーションが発生するリスクが高まる
色んな問題が重なり合って... このままではExcelを生成AIで扱いづらい!!
NL2SQLを活用した解決方法
どのようにして解決するか? ベクトル検索ではなく、構造化データを生かしたSQL検索を利用してコンテキ ストの取得を行います。ここで利用するユーザの質問(自然言語)をSQLに変換す る技術をNL2SQL(Text-to-SQL)と呼びます。 自然言語(NL) 山田さんはいつ入社した? 自然言語(NL) 山田さんはいつ入社した? Model SQL
Query SELECT 入社日 FROM employees WHERE 氏名 = '山田 太郎'; SQL Query SELECT 入社日 FROM employees WHERE 氏名 = '山田 太郎';
SQL検索のメリット SQL検索を利用することで、必要なコンテキストを欠落させることなく取得す ることができます。また、RAGでは不可能だった集計・フィルタリングなどの 分析タスクも処理できるようになります。 SQL Query SELECT 入社日 FROM employees
WHERE 氏名 = '山田 太郎'; SQL Query SELECT 入社日 FROM employees WHERE 氏名 = '山田 太郎'; employees 必要最低限な量の コンテキストを取得できる
NL2SQLの具体的な実装アプローチ
データベースにロードする ExcelのデータをSQLiteやDuckDBなどのインメモリで動作可能なSQLデータ ベースにロードします。例ではDuckDBを使用しています。
スキーマを定義する 有効なSQLを生成させるには、生成AIにテーブルのスキーマを提供する必要が あります。スキーマには、テーブル名やカラム名、カラムの型、カラムの説明 (取りうる値の制約)などを含めて、プロンプトに組み込みます。
Tool Useでクエリ生成 + 実行を行う Tool Use(Function Calling)で生成AIが要求したクエリを実行します。クエリの 実行結果は再度生成AIに提供され、そこから最終的な回答を生成します。
実際の生成内容を確認する
Excelを生成AIで扱えるようになった この一連の流れを実行することで、Excelデータを生成AIで有効に活用すること ができるようになりました。 ただし、構造化データやスキーマが整備されていない状態では、NL2SQLの効 果を最大限発揮することができないため、基本的なドキュメント整備から始め ることが重要です。 スキーマ取得 クエリ生成 + 実行
テキスト生成 Excelだけでなく、構造化データであれば全て対応することができる!!
まとめ
まとめ ・前提としてExcelデータをそのまま生成AIで扱うのは難しい → 直接読み込むとコストが大きくなってしまう可能性がある → RAG(ベクトル検索)では有効なコンテキストを提供できない可能性がある ・有効的に活用するにはNL2SQLなどのアプローチを取るとよい → NL2SQLでは、データの分析などを生成AIに処理させることができる →
事前に構造化データやスキーマを整備することが重要
Thank you for listening!! 定期的にAI・クラウド系の技術発信をしてるので、よかったらTwitterフォローしてください。 @tosuri13