inflearn logo
知識共有
inflearn logo

社内データチャットボット実践 — RAGとText-to-SQLを本番DBに安全に接続する

デモは1日で作れても、運用は別問題です。ローカル環境のClaude CodeでText-to-SQLチャットボットを作り、正解付きの50問で精度を測定。ガード、読み取り専用アカウント、個人情報、権限によって本番DBを守るプロセスを、実測データとともにお見せします。

1名 が受講中です。

難易度 中級以上

受講期間 無制限

MySQL
MySQL
RAG
RAG
claude
claude
Python
Python
LLM
LLM
MySQL
MySQL
RAG
RAG
claude
claude
Python
Python
LLM
LLM

受講後に得られること

  • スキーマの説明や業務用語辞書でText-to-SQLの精度を高め、その効果を正解データセットで数値として確認します。

  • SQL文ではなく実行結果で採点する評価セットと回帰テストを作成します。

  • SELECT文・リスク関数・EXPLAINのコスト・LIMIT・実行時間を検査する運用安全ガードを、テストとともに作成します。

  • 個人情報カラム(SELECT *・エイリアス・条件句)とロール別のテーブル権限を制限し、監査ログを記録します。

  • 聞き返し・回答へのSQL表示・再試行・モデル比較を運用に取り入れ、コストと応答時間を測定します。

デモは1日、運用は別問題です。ローカルのClaude CodeでText-to-SQLチャットボットを作り、正解50問で精度を測定し、ガード・読み取り専用アカウント・個人情報・権限によって運用DBを守るプロセスを、実測データをもとにお見せします。

デモなら1日でできても、本番運用は別の問題です。

スキーマをプロンプトに入れ、LLMが生成したSQLを実行すれば、1日でデモができます。問題は本番DBに接続した瞬間です。

間違った数字を自信満々に答え、本番DBを丸ごと読み込み、個人情報をそのまま表示します。この講義では、そのデモを「本番環境に接続しても事故が起きないバージョン」に変えます。

すべての数値を自分で測定します(正答50問、Claude Sonnet実測)

  • カラム名だけを入力したデモ:50問中20問正解

  • スキーマの説明(値の一覧・1行の意味・結合経路)を入れると:42件

  • 業務用語辞書(売上・アクティブ会員・リピート購入率の定義)まで入れると:48件(正解値を含める基準では50件)

  • 失敗を集めて辞書を改訂した改善版:50件

精度を決めたのはモデルではなく、私たちが与えた資料でした。失敗がどのように起きるのか(存在しない値をでっち上げる、決済状況を見落とす、定義を誤解する、回答の形式を誤る)も、実際の出力をお見せします。

ガードが防げることと防げないこと

  • SELECT文のみを許可し、ロック付き読み取り・危険な関数は禁止、EXPLAINで実行前に高コストなクエリを遮断、LIMIT・実行時間制限、読み取り専用アカウントまで、三重に防ぎます。ガードはテストで証明します。

  • しかし、誤った数値はガードをそのまま通過します。逆に、制限を厳しくしすぎると、正解のSQLまで13件阻止してしまいます。

  • 拒否理由を返して書き直させると、正解は33件から48件に回復しますが、Claudeはガードの基準に合わせるためにFORCE INDEXを入れ、実行時間を計測した7件のうち6件はかえって遅くなりました。DBAが直接確認した結果です。

個人情報と権限、そして運用

  • 個人情報カラムをメタデータ(COMMENT)から特定し、SELECT *・別名・条件節による漏えい経路まで防ぎます。役割ごとの許可テーブルと監査ログ(値は記録しない)を作成します。

  • 曖昧な質問には聞き返し(実測:曖昧な質問7/7で聞き返し、明確な質問0/4)、回答には「このSQLで計算しました」を併せて表示します。

  • Webチャットに組み込み、コスト・応答時間を測定し、モデル(Sonnet・Haiku)を同じ正解セットで比較して選定します。DB側でチャットボットのアカウントをどう監視するかも扱います。

このような方におすすめです

  • 社内で「自社データに質問できるチャットボットを作ってみて」という課題を与えられたバックエンド・データ開発者

  • LLMが生成したSQLを本番DBに接続してもよいか判断しなければならないDBA・プラットフォームエンジニア

  • 文書RAGは試したことがあり、次はリレーショナルDBを対象に作ってみたい方

前提知識と準備物

SELECT・JOINを読めれば十分です。実行計画は必要に応じて講義で説明します。Docker、Python 3.11以上、ローカルのClaude Code(ログイン済み)が必要です。

Claudeの呼び出しには、ご利用のアカウントの料金が適用されます。実習資料には、講義で得たClaudeの回答がキャッシュされているため、講義と同じ質問であれば、費用をかけずに同じ結果が得られます。50問を一通り新たに実行した場合、約0.4~0.9ドルかかりました。

提供資料

実習用DB(仮想ショッピングモール「モアショップ」、会員10万人・注文40万件、Dockerの1行コマンドで生成)・安全ガード・パイプライン・採点ツール・正解50問と評価実行ツール・スキーマの説明と用語集・Webチャット・テスト(正常・境界・失敗)・講義画面の数値の元となった実測記録・全33講の課題参考解答

お知らせします

  • すべてのデータは独自に作成した架空のものであり、実在する企業・顧客とは無関係です。

  • 無料講座(5つのシーン)のチャットボットSQLは、よくある形式を講師が書いた例です。本編のClaudeの出力は実際の呼び出し結果であり、例とは異なる結果(JOINの重複ミスは実測では発生しませんでした)もそのままお見せします。

  • LLMの回答は毎回少しずつ異なる可能性があり、EXPLAINの推定行数は実習用DBを作成するたびに変わります。

  • 原稿・コード・スライドの初稿作成にAIの助けを借りており、ナレーションはAI合成音声です。

  • 動画40本・約94分。各講義は2~3分程度で要点をまとめ、実習は提供資料を使って実際に手を動かしながら進めます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 会社で「自社データに質問できるチャットボット」を作るという課題を受けたバックエンド・データ開発者

  • LLMが生成したSQLを本番DBに適用してよいか判断しなければならないDBA・プラットフォームエンジニア

前提知識、
必要でしょうか?

  • SELECT・JOINを読めるSQL

こんにちは
dorian05202988です。

キャリア認証

20年以上にわたりデータベースとIT分野でキャリアを積んできたデータ職人です。DBAおよびDB Platformチームのマネージャーとしてデータベースプラットフォームに携わり、MySQL・PostgreSQL・Oracle・MongoDB、SQLチューニング、AWS・Terraform・Pythonを専門分野としています。ゲーム・金融・ITサービス分野での経験をもとに、データベースとクラウドアーキテクチャについて解説しています。『オラ​​クル実務チューニング SQLパターン学習』と『Oracle Pro*C実務プロジェクト活用書』を出版し、AWS Summit 2018・2019と「データよ、遊ぼう」2020では、サーバーレス・データベースの選択・マルチデータベース戦略について発表しました。最近は、Bedrock LLMを利用したスロークエリの分析・チューニング提案、DBスペック算定の自動化、DBメタMCPサーバーとSlackボットを通じた照会フローを扱っています。開発者向けのデータベース自動化と、非開発者向けのAI業務活用について、各コースの対象者と目的に合わせた実習を通じて解説しています。AIの提案をそのまま適用するのではなく、結果の同一性・実行計画・観測条件を確認し、根拠が不足している場合は保留する判断基準を伝えています。会社の運用データや認証情報は講義資料に含めません。

もっと見る

カリキュラム

全体

40件 ∙ (1時間 33分)

講座資料:

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価が集まっていない講座です。
ぜひ最初のレビューをお寄せください。

dorian05202988の他の講座

知識共有者の他の講座はこちら

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥61,600

20%

¥9,661