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
とすり
May 30, 2025
Programming
120
0
Share
NL2SQLを活用したExcelの生成AI利用アプローチ
とすり
May 30, 2025
More Decks by とすり
See All by とすり
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
1k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
230
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
560
GraphRAGの仕組みまるわかり
tosuri13
10
1.3k
RAGの精度が全然上がらない!! AOSSを使った社内RAG開発の反省
tosuri13
3
240
AWS Chaliceで始める爆速サーバレスチャットボット開発!!
tosuri13
1
300
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
3
680
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
1
820
Radix UI & shadcn/uiのススメ
tosuri13
0
210
Other Decks in Programming
See All in Programming
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
180
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
180
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
160
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
210
へんな働き方
yusukebe
6
2.9k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
160
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
440
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
240
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
150
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
300
Featured
See All Featured
Docker and Python
trallard
47
3.8k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How STYLIGHT went responsive
nonsquared
100
6k
Facilitating Awesome Meetings
lara
57
6.8k
Odyssey Design
rkendrick25
PRO
2
560
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Un-Boring Meetings
codingconduct
0
250
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
370
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
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