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
SQLクエリの組み立てを 自動化するSlack Bot
Search
Hiroyuki Kuromiya
October 29, 2024
Technology
2
160
SQLクエリの組み立てを 自動化するSlack Bot
#さくらのAI Meetup vol.5「データベース」の発表資料です
https://sakura-tokyo.connpass.com/event/332319/
Hiroyuki Kuromiya
October 29, 2024
Tweet
Share
More Decks by Hiroyuki Kuromiya
See All by Hiroyuki Kuromiya
博士卒エンジニア キャリアの選択と 就活について
khiroyuki1993
0
270
notion-to-slides: convert notion page to presentation slides
khiroyuki1993
0
2.2k
ラーメン界の Basic Object を食べに行った話
khiroyuki1993
0
59
R で Github Repository をきれいにする
khiroyuki1993
0
630
Paper Introduction: The Recon Approach: A New Direction for Machine Learning in Criminal Law.
khiroyuki1993
0
130
Other Decks in Technology
See All in Technology
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
170
MCP とマネージド PaaS で実現する大規模 AI アプリケーションの高速開発
nahokoxxx
1
1.4k
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
5.8k
MCPと認可まわりの話 / mcp_and_authorization
convto
1
110
スプリントレビューを効果的にするために
miholovesq
9
1.6k
スプリントゴール未達症候群に送る処方箋
kakehashi
PRO
1
190
今日からあなたもGeminiを好きになる
subaruhello
1
560
なぜAI時代に 「イベント」を中心に考えるのか? / Why focus on "events" in the age of AI?
ytake
2
460
Wasmで社内ツールを作って配布しよう
askua
0
110
(HackFes)米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
5
660
OpenTelemetry の Log を使いこなそう
biwashi
4
980
怖くない!GritQLでBiomeプラグインを作ろうよ
pal4de
1
120
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Facilitating Awesome Meetings
lara
54
6.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
How STYLIGHT went responsive
nonsquared
100
5.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Optimizing for Happiness
mojombo
379
70k
Designing for humans not robots
tammielis
253
25k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
990
Thoughts on Productivity
jonyablonski
69
4.7k
Transcript
1 SQLクエリの組み⽴てを ⾃動化するSlack Bot GMOペパボ株式会社 黒宮 寛之 #さくらのAI Meetup vol.5「データベース」
SQLクエリの組み⽴てを⾃動化するSlack Bot SUZURI事業部マーケットプレイスチーム - モバイルアプリのバックエンド開発 - 各種イベント周りの計測 - CI/CD周りの改善, etc
.. 京都⼤学院博⼠課程修了 → GMOペパボ新卒エンジニア(2023.4~) 2 黒宮 寛之(くろみー)
SQLクエリの組み⽴てを⾃動化するSlack Bot 今⽇の話 3
SQLクエリの組み⽴てを⾃動化するSlack Bot 4 何を作ったか
SQLクエリの組み⽴てを⾃動化するSlack Bot きっかけ 5
SQLクエリの組み⽴てを⾃動化するSlack Bot • Go製のDBドキュメントツール • DBMSのスキーマ情報から human-readable なDBドキュ メントを⽣成してくれる 6
tbls
SQLクエリの組み⽴てを⾃動化するSlack Bot ⽣成されるドキュメントの例 7 https://github.com/k1LoW/tbls/blob/main/sample/mariadb/comment_stars.md
SQLクエリの組み⽴てを⾃動化するSlack Bot • Go製のtblsのサブコマンド(tblsとは別レポジトリ で管理されている) • tblsによって⽣成されたDBドキュメントを参照して LLMへの問い合わせを⾏う 8 tbls-ask
SQLクエリの組み⽴てを⾃動化するSlack Bot tbls-askの課題 9 • CLIツールのため使える⼈がエンジニアに限られている • 認証情報の設定がちょっと⾯倒 (社内で共有できない)
SQLクエリの組み⽴てを⾃動化するSlack Bot Slack Botの構想 10 ※幾星霜(いくせいそう)とは、非常に長い時間が経過した ことを表す表現
SQLクエリの組み⽴てを⾃動化するSlack Bot 1. エンジニア以外のメンバーも気 軽に使える 2. 初期設定をまとめて共有の環境 にデプロイできる Slack Bot
化するメリット 11
SQLクエリの組み⽴てを⾃動化するSlack Bot 作ったもの 12
SQLクエリの組み⽴てを⾃動化するSlack Bot 作ったもの 13 この中で tbls-ask を実行する バックエンドのサーバーが動 いています
SQLクエリの組み⽴てを⾃動化するSlack Bot 問い合わせ対象のスキーマを選択できるようにした ⼯夫したポイント① 14 ✅ 事業部ごとに異なるスキーマを対象にしたいニーズに 対応
SQLクエリの組み⽴てを⾃動化するSlack Bot GitHub (Enterprise) の認可を実装し、常に最新のスキーマ を反映できるようにした ⼯夫したポイント② 15 ✅ スキーマの変更にリアルタイムに追従できる
※社内ではCIでtblsを実行しスキーマの変更があったタイミングで GitHubのドキュメントが更 新される仕組みがある
SQLクエリの組み⽴てを⾃動化するSlack Bot 苦労したポイント 16 DBのスキーマ情報がLLMのcontext windowを超過 • 実務で使われている(歴史のある)サービスのDBド キュメントは想像よりも⼤きかった OpenAI
API の context window (128k) を超過するサービス があったのでやむをえず⼀部情報を削ったりした
SQLクエリの組み⽴てを⾃動化するSlack Bot tbls-ask と同じくMITライセンスで公開しています (GitHub Copilot との共作です) 成果物 17 https://github.com/kromiii/tbls-ask-agent-slack
SQLクエリの組み⽴てを⾃動化するSlack Bot 社内の反応 18
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤統計(所属部⾨別) 19 ※リリースから10月20日までの約半年間の統計(以下同様)
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤統計(職種別) 20
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤⽬的(任意回答) 21
SQLクエリの組み⽴てを⾃動化するSlack Bot 業務削減効果(任意回答) 22
SQLクエリの組み⽴てを⾃動化するSlack Bot ユーザーの声(エンジニア) 23 ディレクターさんが SQLを書いてきてくれる のでエンジニア がレビューをしたり、微修正をするだけで良くなったこと。自分 がクエリを書いて、ディレクターにこのクエリ使ってくださいと いうことがなくなった!
現部署に異動して 必要な情報を抽出するテーブルがどこに あるかわからない時に大変役立った
SQLクエリの組み⽴てを⾃動化するSlack Bot ユーザーの声(ディレクター) 24 「タクラミ」などの固有名詞について説明不要で使える 点が とても便利です。 具体的な質問でなくても、ある程度ざっくりとした質問にも答 えられる点を評価しています。抽象的な質問を汲んだ解説も してくれた記憶で、sqlの基礎も分からない状態からテーブ
ルの階層構造についてよく学ぶ機会 にもなりました。
SQLクエリの組み⽴てを⾃動化するSlack Bot 改善ポイント 25 たまに抽出できないテーブルを回答してくる時があるので正 確さがより向上すると嬉しいです エラー吐いたあとすぐエンジニアに依頼してしまっているの で、エラー含めて再度tbls-askを使って解決したいなと思う
SQLクエリの組み⽴てを⾃動化するSlack Bot 回答の精度を上げるためのアイデア 26 RAGを使うともう少し精度が上がるかもしれない&コス ト節約
SQLクエリの組み⽴てを⾃動化するSlack Bot 27 他サービスとの⽐較(余談) Gemini for Google Cloud Bigquery に標準搭載されている
GeminiによるSQL生成機能 SQLAI.ai SQLクエリ生成に特化した商用 SaaS Langchain オープンソースのLLMフレーム ワーク。SQL用のプラグインもあ る。
SQLクエリの組み⽴てを⾃動化するSlack Bot • Slack経由で呼び出せるのでビジネス(開発)の流れが 分断されない • パブリックチャンネルで使うことで他の⼈が質問の意 図と経緯を理解しやすい tbls-ask bot
の利点 28
ご質問‧ご意⾒お待ちしております 29 ご質問・ご意見お待ちしております 🖐