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
ChatGPTとPythonを用いた 高速なデータ可視化プロトタイピング
Search
ingtk
July 11, 2023
Technology
1
160
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
760
Other Decks in Technology
See All in Technology
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
280
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
300
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
4
2.6k
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
350
Witchcraft for Memory
pocke
1
350
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
1.8k
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
550
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
5.6k
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
230
生成AIでwebアプリケーションを作ってみた
tajimon
2
150
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
160
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
RailsConf 2023
tenderlove
30
1.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Site-Speed That Sticks
csswizardry
10
660
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Become a Pro
speakerdeck
PRO
28
5.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
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
ご清聴ありがとうございました