Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 SQLクエリの組み⽴てを ⾃動化するSlack Bot GMOペパボ株式会社 黒宮 寛之 #さくらのAI Meetup vol.5「データベース」
Slide 2
Slide 2 text
SQLクエリの組み⽴てを⾃動化するSlack Bot SUZURI事業部マーケットプレイスチーム - モバイルアプリのバックエンド開発 - 各種イベント周りの計測 - CI/CD周りの改善, etc .. 京都⼤学院博⼠課程修了 → GMOペパボ新卒エンジニア(2023.4~) 2 黒宮 寛之(くろみー)
Slide 3
Slide 3 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 今⽇の話 3
Slide 4
Slide 4 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 4 何を作ったか
Slide 5
Slide 5 text
SQLクエリの組み⽴てを⾃動化するSlack Bot きっかけ 5
Slide 6
Slide 6 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ● Go製のDBドキュメントツール ● DBMSのスキーマ情報から human-readable なDBドキュ メントを⽣成してくれる 6 tbls
Slide 7
Slide 7 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ⽣成されるドキュメントの例 7 https://github.com/k1LoW/tbls/blob/main/sample/mariadb/comment_stars.md
Slide 8
Slide 8 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ● Go製のtblsのサブコマンド(tblsとは別レポジトリ で管理されている) ● tblsによって⽣成されたDBドキュメントを参照して LLMへの問い合わせを⾏う 8 tbls-ask
Slide 9
Slide 9 text
SQLクエリの組み⽴てを⾃動化するSlack Bot tbls-askの課題 9 ● CLIツールのため使える⼈がエンジニアに限られている ● 認証情報の設定がちょっと⾯倒 (社内で共有できない)
Slide 10
Slide 10 text
SQLクエリの組み⽴てを⾃動化するSlack Bot Slack Botの構想 10 ※幾星霜(いくせいそう)とは、非常に長い時間が経過した ことを表す表現
Slide 11
Slide 11 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 1. エンジニア以外のメンバーも気 軽に使える 2. 初期設定をまとめて共有の環境 にデプロイできる Slack Bot 化するメリット 11
Slide 12
Slide 12 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 作ったもの 12
Slide 13
Slide 13 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 作ったもの 13 この中で tbls-ask を実行する バックエンドのサーバーが動 いています
Slide 14
Slide 14 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 問い合わせ対象のスキーマを選択できるようにした ⼯夫したポイント① 14 ✅ 事業部ごとに異なるスキーマを対象にしたいニーズに 対応
Slide 15
Slide 15 text
SQLクエリの組み⽴てを⾃動化するSlack Bot GitHub (Enterprise) の認可を実装し、常に最新のスキーマ を反映できるようにした ⼯夫したポイント② 15 ✅ スキーマの変更にリアルタイムに追従できる ※社内ではCIでtblsを実行しスキーマの変更があったタイミングで GitHubのドキュメントが更 新される仕組みがある
Slide 16
Slide 16 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 苦労したポイント 16 DBのスキーマ情報がLLMのcontext windowを超過 ● 実務で使われている(歴史のある)サービスのDBド キュメントは想像よりも⼤きかった OpenAI API の context window (128k) を超過するサービス があったのでやむをえず⼀部情報を削ったりした
Slide 17
Slide 17 text
SQLクエリの組み⽴てを⾃動化するSlack Bot tbls-ask と同じくMITライセンスで公開しています (GitHub Copilot との共作です) 成果物 17 https://github.com/kromiii/tbls-ask-agent-slack
Slide 18
Slide 18 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 社内の反応 18
Slide 19
Slide 19 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤統計(所属部⾨別) 19 ※リリースから10月20日までの約半年間の統計(以下同様)
Slide 20
Slide 20 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤統計(職種別) 20
Slide 21
Slide 21 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 利⽤⽬的(任意回答) 21
Slide 22
Slide 22 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 業務削減効果(任意回答) 22
Slide 23
Slide 23 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ユーザーの声(エンジニア) 23 ディレクターさんが SQLを書いてきてくれる のでエンジニア がレビューをしたり、微修正をするだけで良くなったこと。自分 がクエリを書いて、ディレクターにこのクエリ使ってくださいと いうことがなくなった! 現部署に異動して 必要な情報を抽出するテーブルがどこに あるかわからない時に大変役立った
Slide 24
Slide 24 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ユーザーの声(ディレクター) 24 「タクラミ」などの固有名詞について説明不要で使える 点が とても便利です。 具体的な質問でなくても、ある程度ざっくりとした質問にも答 えられる点を評価しています。抽象的な質問を汲んだ解説も してくれた記憶で、sqlの基礎も分からない状態からテーブ ルの階層構造についてよく学ぶ機会 にもなりました。
Slide 25
Slide 25 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 改善ポイント 25 たまに抽出できないテーブルを回答してくる時があるので正 確さがより向上すると嬉しいです エラー吐いたあとすぐエンジニアに依頼してしまっているの で、エラー含めて再度tbls-askを使って解決したいなと思う
Slide 26
Slide 26 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 回答の精度を上げるためのアイデア 26 RAGを使うともう少し精度が上がるかもしれない&コス ト節約
Slide 27
Slide 27 text
SQLクエリの組み⽴てを⾃動化するSlack Bot 27 他サービスとの⽐較(余談) Gemini for Google Cloud Bigquery に標準搭載されている GeminiによるSQL生成機能 SQLAI.ai SQLクエリ生成に特化した商用 SaaS Langchain オープンソースのLLMフレーム ワーク。SQL用のプラグインもあ る。
Slide 28
Slide 28 text
SQLクエリの組み⽴てを⾃動化するSlack Bot ● Slack経由で呼び出せるのでビジネス(開発)の流れが 分断されない ● パブリックチャンネルで使うことで他の⼈が質問の意 図と経緯を理解しやすい tbls-ask bot の利点 28
Slide 29
Slide 29 text
ご質問‧ご意⾒お待ちしております 29 ご質問・ご意見お待ちしております 🖐