$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPT触ってみた
Search
Infiniteloop
October 18, 2023
Technology
0
85
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
17
68k
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
1
600
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
1
860
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
1.3k
詫び石の裏側
infiniteloop_inc
0
820
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
35k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
250
ADRという考えを取り入れてみて
infiniteloop_inc
0
260
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
200
Other Decks in Technology
See All in Technology
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
310
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
2
270
半年で、AIゼロ知識から AI中心開発組織の変革担当に至るまで
rfdnxbro
0
150
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
470
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
770
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
130
Next.js 16の新機能 Cache Components について
sutetotanuki
0
190
Agent Skillsがハーネスの垣根を超える日
gotalab555
6
4.5k
Snowflake Industry Days 2025 Nowcast
takumimukaiyama
0
130
SREが取り組むデプロイ高速化 ─ Docker Buildを最適化した話
capytan
0
150
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
120
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
8
4.3k
Featured
See All Featured
First, design no harm
axbom
PRO
1
1.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
100
The SEO Collaboration Effect
kristinabergwall1
0
310
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
WCS-LA-2024
lcolladotor
0
390
WENDY [Excerpt]
tessaabrams
8
35k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
240
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Marketing to machines
jonoalderson
1
4.4k
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