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触ってみた
Search
Infiniteloop
October 18, 2023
Technology
0
81
ChatGPT触ってみた
【タガヤス その31】物好きなメンバーによる流行りもの?紹介【仙台発信の定期勉強会】発表資料
https://tagayas.connpass.com/event/282061/
Infiniteloop
October 18, 2023
Tweet
Share
More Decks by Infiniteloop
See All by Infiniteloop
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
16
58k
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
1
540
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
1
770
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
1.1k
詫び石の裏側
infiniteloop_inc
0
760
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
34k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
240
ADRという考えを取り入れてみて
infiniteloop_inc
0
250
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
180
Other Decks in Technology
See All in Technology
slog.Handlerのよくある実装ミス
sakiengineer
4
460
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
450
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
今日から始めるAWSセキュリティ対策 3ステップでわかる実践ガイド
yoshidatakeshi1994
0
110
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
230
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
3
890
データ分析エージェント Socrates の育て方
na0
6
2k
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
190
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
310
Claude Code でアプリ開発をオートパイロットにするためのTips集 Zennの場合 / Claude Code Tips in Zenn
wadayusuke
5
840
Android Audio: Beyond Winning On It
atsushieno
0
2.4k
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
310
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Being A Developer After 40
akosma
90
590k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Gamification - CAS2011
davidbonilla
81
5.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
A Tale of Four Properties
chriscoyier
160
23k
Documentation Writing (for coders)
carmenintech
74
5k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Transcript
ChatGPT触ってみた ~質問からテストコードまで~ 株式会社インフィニットループ 西竜太郎
自己紹介 2
自己紹介 - 西 竜太郎 - エンジニア歴は10年ぐらい - インフィニットループ歴は7年目です - 会社ではソーシャルゲームのサーバサイドの開発をしてお
ります - ゼルダおもしろい 3
今日話す内容は個人の見解です ILではChatGPTの使用は禁止です 4
突然ですが、みなさん 開発って難しいですよね 5
開発って難しいですよね - コード書くの難しい - ググっても、情報が多すぎてよくわからない - テストコード書くの工数かかる 6
ChatGPT使おうぜ 7
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について 3. テストコードの生成 8
ChatGPTってなに? 9
ChatGPTってなに? - AIの専門家ではないので、これからお話する内容が間違っ ていた場合はすいません - ChatGPTに関する論文は公表されていないので、技術的な 部分は推測に依存する部分があります 10
ChatGPTってなに? OpenAI社が開発した、質問に対して文章を作るAI Chat Generative Pre-trained Transformer 事前学習済みのチャット生成変換器 11
ChatGPTってなに? ~事前学習~ 12
ChatGPTってなに?~事前学習~ - 2021年までの大量のデータを事前に勉強させている - 2022/2023年のことは答えられない 13
ChatGPTってなに?~事前学習~ 事前学習方法は次単語予測というのを使っているらしいです 「吾輩」 -> 「は」 -> 「A」 -> 「B」
-> 「C」 14
ChatGPTってなに?~事前学習~ 「吾輩」 -> 「は」 -> 「A」 -> 「B」 -> 「C」
「吾輩」「は」のあとには「猫」が来る確率が一番高い! なのでAには「猫」を入れる それをB、Cと数珠つなぎに続けていく 15
ChatGPTってなに?~事前学習~ つまり、ChatGPTは手前の単語から、次に来る確率が一番高い 単語を生成している そのことを頭に入れておくと、自分の欲しい答えが生成されや すい 16
ChatGPTってなに? ~バージョン~ 17
ChatGPTってなに?~バージョン~ 有料版はバージョン4です(月額20ドル) 無料版はバージョン3.5です 今回資料作成にあたって使用したバージョンは3.5です 無料版でも問題なく利用できますので、ぜひみなさん触ってみ てください 18
ChatGPTってなに? ~Microsoft~ 19
ChatGPTってなに?~Microsoft~ - Microsoft社がOpenAI社に1兆3,000億円の投資 - ChatGPTはこれからどんどん進化していく - 乗るしかないこのビッグウェーブに 20
ChatGPTってなに? ~まとめ~ 21
ChatGPTってなに?~まとめ~ - OpenAI社が開発した文章生成AI - ChatGPTは手前の単語から次の単語を予測している - 無料バージョンは3.5、有料バージョンは4 - Microsoft社が大量のお金を投資しているので、将来的にも 期待できる
22
ChatGPTってなに? 以上です 23
質問について 24
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について <- 今ここ 3. テストコードの生成 25
質問について ~入力のコツ~ 26
質問について~入力のコツ~ ガベージイン、ガベージアウト ゴミを入れたらゴミが出てくる 質問方法にもコツがある 27
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える 3. 役割を与える 28
質問について ~制限を与える~ 29
質問について~制限を与える~ 目的 - 非IT技術者/学生/お年寄りなどIT分野に興味がないけど、 スティーブ・ジョブズの人生を簡単に知りたい - wikipediaは情報が多すぎて読む気が起きない 30
31
質問について~制限を与える~ アンチパターン 32
33
質問について~制限を与える~ - 読むのに時間もかかる - 一回じゃ表示されずに「つづき」と入力する作業が発生 - wikipediaよりはまとまってるけど、それでも情報量が多い - 書いてあることが難しい 34
質問について~制限を与える~ 解決策 制限を与える - 100文字以内にまとめてください - 3回にわけて教えてください - 小学生にもわかるように 35
36
質問について~制限を与える~ 流石に簡単すぎた - 「社会人にわかるよう」に変更 - もう少し読めそうなので200文字に変更する 37
38
39
40
質問について~制限を与える~ 問題解決! - もっと深く内容を知りたいときは文字数を上げていくなど工 夫する 41
質問について ~前提を与える~ 42
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える <- 今ここ 3. 役割を与える
43
質問について~前提を与える~ 目的 - 花火に興味があり、将来花火師になりたいかもしれない - 花火の作り方を知りたい 44
質問について~前提を与える~ アンチパターン 45
46
質問について~前提を与える~ - ネットでググれば出てくる情報ですが、安全上の理由でたま に表示されないときがある 47
質問について~前提を与える~ 解決策 前提を与える - 「私は〇〇です」という前提を与える - 今回は「花火師を目指している高校生」という前提を与える 48
49
50
質問について~前提を与える~ 問題解決! - 前提を与えるとより欲しい文章が生成される 51
質問について ~役割を与える~ 52
質問について~入力のコツ~ 入力のコツは主に3つ 1. 制限を与える 2. 前提を与える 3. 役割を与える <- 今ここ 53
質問について~役割を与える~ 目的 - awsでインフラを構築することになったけど、注意することっ てなにがあるかな🤔 54
質問について~役割を与える~ アンチパターン 55
56
57
質問について~役割を与える~ - 一見良さそうに見えるが、あまり技術的な答えになっていな い 58
質問について~役割を与える~ 解決策 役割を与える - 「あなたは〇〇です」という役割を与える - 「あなたはプロのインフラエンジニアです」という役割を与え る 59
60
61
62
質問について~役割を与える~ 問題解決! - 役割を与えると、より質の高い回答が生成される 63
質問について ~注意点~ 64
質問について~注意点~ 注意点は主に3つ 1. 情報の正確性 2. 倫理観 3. セキュリティ 65
質問について ~情報の正確性~ 66
質問について~情報の正確性~ - 情報が本当に正しいか、再度ググる必要がある - 宮城県大崎市の観光名所を尋ねると実在しない地域や違う 地域が返ってくる 67
68
質問について~情報の正確性~ - 一つも大崎市にないです - Google Bardだとネット接続があるので、実在する地域を教 えてくれました 69
質問について ~倫理観~ 70
質問について~倫理観~ - 最適解を導くために、合理的な手段が返ってくる - 宗教的にNGだったり、人種差別、セクハラ、パワハラ、その 他人道に反することがある 71
72
73
質問について~倫理観~ - ちょっとセクハラっぽい 74
質問について ~セキュリティ~ 75
質問について~セキュリティ~ - もし業務で使用する場合は、社外秘の情報を入力すること は絶対にやめましょう - ChatGPTに入力する前に誰かにチェックしてもらうなど対策 が必要 76
質問について ~まとめ~ 77
質問について~まとめ~ - ガベージイン、ガベージアウト - ゴミを入れたらゴミが出てくる - 入力にもコツがある - 制限、前提、役割を与える -
注意点 - 情報の正確性、倫理観、セキュリティに気をつける 78
質問について 以上です 79
テストコードの生成 80
今日は3つのことをお話します 1. ChatGPTってなに? 2. 質問について 3. テストコードの生成 <- 今ここ、これで最後です 81
テストコードの生成 ~実装の作成~ 82
テストコードの作成~実装の作成~ - まずは実装側を作成します - 今回は3の倍数と5の倍数のfizzbuzzを作成します 83
84
85
テストコードの作成~実装の作成~ - 作成完了 86
テストコードの生成 ~テストの作成~ 87
テストコードの作成~テストの作成~ - 作成された実装コードを元に1パターン分のテストクラスを作 成していきます 88
テストコードの作成~テストの作成~ 下記の制限をChatGPTに追記します - PHPUnitの使用 - テストクラスは別クラス - テスト名は日本語 89
90
91
テストコードの作成~テストの作成~ - 簡単にテストコードが作れました 92
93
テストコードの作成~テストの作成~ - 「私は初心者です」という前提を与えたので、PHPUnitの実 行方法まで添えてくれました - テストに慣れている人は「私は上級者です」などを入れてお くと余計な解説などが省かれますのでいれてください 94
テストコードの作成~テストの作成~ - 実際にテストを流していきます 95
96
テストコードの作成~テストの作成~ - 成功しました! 97
テストコードの作成~テストの作成~ - 続いて、テストパターンを増やしていきます 98
99
テストコードの作成~テストの作成~ 簡単に追加パターンが作れました - 5の倍数のテストパターン - 3と5の共通の倍数のテストパターン 100
テストコードの作成~テストの作成~ テストを流します 101
102
テストコードの作成~テストの作成~ - 成功しました! 103
テストコードの作成~テストの作成~ - これでみなさんの開発スピードが上がりました - 更に加速させます!! 104
テストコードの作成 ~GitHub Copilot~ 105
テストコードの作成~GitHub Copilot~ ChatGPT + GitHub = GitHub Copilot 主操縦士ではなく副操縦士、サブです 106
テストコードの作成~GitHub Copilot~ - 時間の都合のため、GitHub Copilotのアカウント作成方法は 割愛します - PHPStormにGitHub Copilotプラグインをインストールしてく ださい
- 先ほど作成したfizzbuzzのテストコードをPHPStormで開きま す 107
108
テストコードの作成~GitHub Copilot~ - この状態から新たに4つ目のテストパターンを作成します - 最後のテストパターンのメソッドの末尾から「Enter」を2回押 して2秒ぐらい待ちます 109
110
テストコードの作成~GitHub Copilot~ - うっすら4つ目のテストパターンがCopilotに提案されました - 「3でも5の倍数でもないときは数値を返すこと」というテスト パターンが抜けていたようです - この状態で「TAB」を押します 111
112
テストコードの作成~GitHub Copilot~ - 新しいテストパターンが追加されました - 今まではChatGPTにコードを入力して、新しいテストパター ンをコピーしていたのですが、その手順が省略されるように なりました - こちらもテストを流します
113
114
テストコードの作成~GitHub Copilot~ - テストも無事成功しました - これでみなさんの開発スピードが爆速になりました 115
テストコードの作成~GitHub Copilot~ - 同じ作業を手作業でしてみたところ12分かかりました - 今回の作業を計測したところ4分で終わりましたので、作業 時間が3分の1に減りました - ぜひみなさんも使ってみてください 116
テストコードの作成 ~まとめ~ 117
テストコードの作成~まとめ~ - ChatGPTを使うと全体の作業時間が半分以下になる - 実装、テスト、テスト用コマンド、なんでもChatGPTがやってく れる - GitHub Copilotも併用すると、テストパターンの追加が簡単 になる
118
テストコードの作成 以上です 119
全体のまとめ 120
まとめ - ChatGPTは手前の単語から次の単語を予測している - ガベージイン、ガベージアウト - ゴミを入れたらゴミが出てくる - 制限、前提、役割を与える -
ChatGPTを使うとテストコードは簡単に作れる - GitHub Copilotは神 121
ご清聴ありがとうございました 122