Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
Search
ingtk
July 11, 2023
Technology
1
170
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
ingtk
July 11, 2023
Tweet
Share
More Decks by ingtk
See All by ingtk
APIゲートウェイと認証認可サービスを導入した / Implement API Gateway and Auth Service
ingtk
0
810
Other Decks in Technology
See All in Technology
5分で知るMicrosoft Ignite
taiponrock
PRO
0
360
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
450
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
0
1.2k
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
490
グレートファイアウォールを自宅に建てよう
ctes091x
0
150
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
500
AWS Bedrock AgentCoreで作る 1on1支援AIエージェント 〜Memory × Evaluationsによる実践開発〜
yusukeshimizu
6
400
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
180
手動から自動へ、そしてその先へ
moritamasami
0
300
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
360
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
160
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
RailsConf 2023
tenderlove
30
1.3k
4 Signs Your Business is Dying
shpigford
186
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Practical Orchestrator
shlominoach
190
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Unsuck your backbone
ammeep
671
58k
Become a Pro
speakerdeck
PRO
31
5.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
自己紹介 稲垣 隆徳 Twitter: @ingtk8 Github: ingtk データ可視化サービスチームのテックリード バックエンドエンジニア歴:12年ほど。最近ではデータ基盤、フロントエンドもやります。
今日話すこと • バックエンドエンジニアのプロトタイピングへの関わり方 ◦ なぜプロトタイピングをやるのか ◦ プロトタイピングの課題 • データ可視化アプリケーションを爆速で作る
なぜプロトタイピングをやるか: アイデアの可視化 1. システムの初期モデルをつくる(草案とも言える製品の概念を具体化する) 2. 設計の問題を明らかにする。UIの特定の要素が直感的でない、期待通りに動作し ない場合、これらの問題はプロトタイピングの段階で発見され、修正することができ る。 3. 開発チームがクライアントの要件をより深く理解する。具体的なプロダクトを通して、
クライアントや関係者とコミュニケーションをとる機会を得る。
なぜプロトタイピングをやるか: 製品開発リスクの低減 • 技術的リスクの低減: 技術的な課題や障壁を早期に発見し、開発の遅延や市場投 入の遅れを防ぐ • スケジュールおよび予算リスクの低減: 必要な時間やリソースをより正確に見積も り、スケジュールの遅れや予算超過を防ぐ
プロトタイピングの課題 • 適切な粒度の把握 ◦ 具体的すぎると、細部に捉われ進行速度が遅くなる ◦ 抽象的すぎると、重要な詳細を見落とし実装が現実的でなくなる ◦ 目的と範囲、リソース、期限等を考慮し、プロトタイピングのゴールを適切な粒度に定める •
時間とリソース ◦ プロトタイピングは時間とリソースを必要とする ◦ プロトタイピングのゴールを明確化と、最短で達成するためのツール選定が重要。 ◦ 短期的には課題となるが、長期的にはプロトタイピングにおける恩恵の方が大きい。
プロトタイピングの実践例(テーマ) • 弊社で開催された LLM アイデアソン(Chat GPT を既存のプロダクトに応用する )
プロトタイピングの実践例(デモ) • 170 行くらいのコード(プロンプトが 50 行) • 開発に使った時間は4時間ほど
ポイント • Why ◦ 実際に今携わっているプロダクトに活かせるものを作る(製品開発リスクの低減) ◦ 実現可能性を示すことで、アイデアソンで優位性を築く(アイデアの具体化) • 課題 ◦
期間が 1 週間しかなかったため、最短で実現可能性を示さないといけない(時間とリソース)
ゴールの明確化 検証したいこと • ChatGPT が、入力に応じた適切な SQL を生成することができるかどうか ◦ 適切なプロンプトを考える •
指示の入力〜可視化までを表現することで参加者に実現可能性をわかりやすく示 したい ◦ 可視化・集計の手段は本質ではないので、なるべくコストをかけずに表現したい
技術選定 • 可視化・集計の手段は本質ではないので、なるべくコストをかけずに表現したい • 集計・可視化をローコストでやるなら、Python は有力 ◦ データサイエンス関連の豊富なライブラリ ◦ pandas
/ matplotlib / seaborn / Streamlit ...
Streamlitとは • Python を用いた高速な Web アプリケーション作成を可能にするライブラリ ◦ データサイエンス関連ライブラリとの親和性の高さ • 直感的な
API で、GUI やデータ可視化が非常に簡単に実現できる • ホットリローディング
プロトタイピングのスコープ 1. ユーザからの入力を受け付けることができる(UI) 2. 適切なプロンプト作成することができる(バックエンド) 3. ChatAPIからSQLを取得することができる(バックエンド) 4. SQLの実行結果を可視化することができる(UI)
テキストエリアを配置する
テキストエリアの配置 こんな感じで表示される
プロンプト作成 • 入力「部署ごとの人数だして」→ 当然出してくれない • 要求や与えることができる情報をなるべく正確に伝える ◦ 使用しているデータベース、テーブル定義 ◦ 項目の対応表
◦ 固有項目定義 ◦ 期待するアウトプット
データベース情報とテーブル定義を伝える
項目の対応表を伝える CREATE文は列名が英語なので、日本語との対応表を渡してあげる
個別項目定義を伝える この定義を教えることによって、「部署ごとのリーダー数だして」とか、テナントごとに定義 がことなる項目を含む指示をChatGPTが理解してくれる
期待するアウトプットを伝える ユーザの指示を含める。また、SQLで記述することを伝える。 SQL以外の情報はすべて〜の部分が重要でこの一文がないと、出力したSQLの解説を しはじめる
dataframeをテーブルとして表示 これだけ
dataframeを表示
グラフを表示 seaborn(データフレームを可視化するライブラリ)を使ってグラフを描画する。 dataframeにSQL実行結果の値が入っていれば、これだけ。
グラフを表示 簡単✌
まとめ • プロトタイピングは製品開発リスクの低減、アイデア具現化の重要な手段。 • 適切なゴールの設定と、ツール選定による時間とリソースを節約し、最短で目的を 達成することができる
サンプルコード • https://github.com/ingtk/autosql
ご清聴ありがとうございました