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
300
notion-to-slides: convert notion page to presentation slides
khiroyuki1993
0
2.2k
ラーメン界の Basic Object を食べに行った話
khiroyuki1993
0
59
R で Github Repository をきれいにする
khiroyuki1993
0
640
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
人と組織に偏重したEMへのアンチテーゼ──なぜ、EMに設計力が必要なのか/An antithesis to the overemphasis of people and organizations in EM
dskst
6
660
【 LLMエンジニアがヒューマノイド開発に挑んでみた 】 - 第104回 Machine Learning 15minutes! Hybrid
soneo1127
0
150
株式会社ARAV 採用案内
maqui
0
380
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
130
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
4
840
絶対に失敗できないキャンペーンページの高速かつ安全な開発、WINTICKET × microCMS の開発事例
microcms
0
180
夢の印税生活 / Life on Royalties
tmtms
0
290
ゆるふわエンジニアでもAIフローにチャレンジしたい!!~Zapierのすゝめ~
masakiokuda
2
100
KiroでGameDay開催してみよう(準備編)
yuuuuuuu168
1
150
Preferred Networks (PFN) とLLM Post-Training チームの紹介 / 第4回 関東Kaggler会 スポンサーセッション
pfn
PRO
1
260
小さなチーム 大きな仕事 - 個人開発でAIをフル活用する
himaratsu
0
130
進捗
ydah
1
160
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
70
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Designing for humans not robots
tammielis
253
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
RailsConf 2023
tenderlove
30
1.2k
Six Lessons from altMBA
skipperchong
28
4k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
GitHub's CSS Performance
jonrohan
1031
460k
Building an army of robots
kneath
306
46k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Side Projects
sachag
455
43k
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 ご質問・ご意見お待ちしております 🖐