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
380
2
Share
SQLクエリの組み立てを 自動化するSlack Bot
#さくらのAI Meetup vol.5「データベース」の発表資料です
https://sakura-tokyo.connpass.com/event/332319/
Hiroyuki Kuromiya
October 29, 2024
More Decks by Hiroyuki Kuromiya
See All by Hiroyuki Kuromiya
誤算からはじまった小さなOSS貢献
khiroyuki1993
0
360
博士卒エンジニア キャリアの選択と 就活について
khiroyuki1993
0
520
notion-to-slides: convert notion page to presentation slides
khiroyuki1993
0
2.4k
ラーメン界の Basic Object を食べに行った話
khiroyuki1993
0
74
R で Github Repository をきれいにする
khiroyuki1993
0
660
Paper Introduction: The Recon Approach: A New Direction for Machine Learning in Criminal Law.
khiroyuki1993
0
180
Other Decks in Technology
See All in Technology
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
180
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
190
Dynamic Workersについて
yusukebe
2
580
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
6k
Mastering Ruby Box
tagomoris
3
140
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
340
チームで実践する AI-DLC 思考の軌跡を残すチェックポイント設計
belongadmin
0
2.1k
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.1k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
160
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
620
React、まだ楽しくて草
uhyo
7
3.9k
Strands Agents超入門
kintotechdev
1
160
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
400
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
How STYLIGHT went responsive
nonsquared
100
6.2k
Technical Leadership for Architectural Decision Making
baasie
3
390
A Modern Web Designer's Workflow
chriscoyier
698
190k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
How to make the Groovebox
asonas
2
2.2k
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 ご質問・ご意見お待ちしております 🖐