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
130
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
notion-to-slides: convert notion page to presentation slides
khiroyuki1993
0
1.6k
ラーメン界の Basic Object を食べに行った話
khiroyuki1993
0
48
R で Github Repository をきれいにする
khiroyuki1993
0
600
Paper Introduction: The Recon Approach: A New Direction for Machine Learning in Criminal Law.
khiroyuki1993
0
83
Other Decks in Technology
See All in Technology
20241220_S3 tablesの使い方を検証してみた
handy
4
400
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.3k
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
220
Jetpack Composeで始めるServer Cache State
ogaclejapan
2
170
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
200
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
3k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Fireside Chat
paigeccino
34
3.1k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Writing Fast Ruby
sferik
628
61k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
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 ご質問・ご意見お待ちしております 🖐