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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
とすり
May 30, 2025
Programming
130
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
31
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
1.1k
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
280
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
700
GraphRAGの仕組みまるわかり
tosuri13
10
1.6k
RAGの精度が全然上がらない!! AOSSを使った社内RAG開発の反省
tosuri13
3
250
AWS Chaliceで始める爆速サーバレスチャットボット開発!!
tosuri13
1
320
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
3
700
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
1
910
Other Decks in Programming
See All in Programming
3Dシーンの圧縮
fadis
1
720
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
ふつうのFeature Flag実践入門
irof
7
3.7k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
160
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.4k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
170
Agentic UI
manfredsteyer
PRO
0
140
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
560
Contextとはなにか
chiroruxx
0
290
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
5
4k
RTSPクライアントを自作してみた話
simotin13
0
560
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Paper Plane
katiecoart
PRO
1
51k
Fireside Chat
paigeccino
42
3.9k
Design in an AI World
tapps
1
240
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Mobile First: as difficult as doing things right
swwweet
225
10k
Are puppies a ranking factor?
jonoalderson
1
3.5k
A Modern Web Designer's Workflow
chriscoyier
698
190k
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