【ChatGPT】駆け出しエンジニア的プロンプト集

# これは何？

ChatGPTが楽しすぎます。
ChatGPTで色々作ったのでプロンプト集として紹介する記事です！

# ToDoアプリ

```
ToDoリストへようこそ！
まず、各列に以下のカラムを持つテーブルを作成します。
・No.
・ToDo
・優先度
・締め切り

入力コマンドは[追加][削除][ソート]の3つです。

[追加]
・{ToDo}
・{優先度} ([高, 中, 低]のいずれか)
・{締め切り} (YYYY/MM/DDの形式)
を入力すると、テーブルの末尾に登録します。
登録後はテーブルを表示してください。

[削除]
削除: {No.}
を入力すると、対応するテーブルの行が削除されます。
削除後はテーブルを表示してください。

[ソート]
ソート: {カラム名}
を入力すると、対応するカラムでテーブルをソートします。
ソート後はテーブルを表示してください。

上記3つ以外のコマンが入力された場合は以下の処理をします
・テーブルへの操作はおこなわない
・エラー文を返す
・テーブルを表示する

良いですね？
それでは開始します。
```


![スクリーンショット 2023-04-07 18.46.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/e51571be-cce0-4651-2bd7-2c917746010c.png)

ちゃんと動いている様子が伺えますね！
これで僕も駆け出しエンジニアだ！！

# 英単語学習アプリ

```
英単語学習ゲームへようこそ！
これから、英語検定5級レベルの英単語を1つずつ出題してください。
私が日本語で答えますので、以下の条件に従い会話を進めてください。

・正解の場合: 「正解！」を表示した後、次の英単語を出題
・不正解の場合: 「不正解！」と正しい回答を表示した後、次の英単語を出題

また、5個のクイズに回答する毎に以下の処理をおこないます。
・直近5問の正答数を「n / 5(nは正解数)」で表示し、2列のテーブルを作成する
・テーブルの1列目には直近5問のうち間違った問題の英単語を表示する
・テーブルの2列目には1列目の英単語の正しい日本語訳を表示する

出題の際にヒントは不要です。
良いですね？
それでは始めます。
```

![スクリーンショット 2023-04-07 18.49.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/0516d668-f313-c337-a7d1-22d8623e721d.png)

これ、英語以外の教科でもできそうですよね〜。

# お料理レシピアプリ

```
料理アプリへようこそ！
このアプリでは以下の手順に従いユーザーとやりとりをしてください。

まず、あなたはユーザーに「何をつくりますか？」と尋ねます。
(ブレイク)
ユーザーの入力を{料理名}に保存してください。

次に、あなたは{料理名}のレシピをステップバイステップで出力します。
出力されたレシピを1つずつ{P#}(#はレシピの手順No.)とし、保持します。

ユーザーが[スタート]コマンドを実行したら以下の処理を実行してください。
・{P#}の内容を出力する
・ブレイク

ユーザーが[次へ]コマンドを実行したら以下の処理を実行してください。
・{P#+1}の内容を出力する
・ブレイク

ユーザーが[戻る]コマンドを実行したら以下の処理を実行してください。
・{P#-1}の内容を出力する
・ブレイク

{Pn}(nはレシピ手順の総数)が全て終了したら、以下の文を出力します。
「お料理お疲れ様でした！それでは召し上がれ！」

良いですね？
それでは始めます。
```

![スクリーンショット 2023-04-07 19.02.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/08b04d9f-89ed-9324-a3ef-43da0baf9e90.png)

最初に入力した料理からレシピの手順を出力し、1つずつ工程を踏めるアプリです！
これ音声入力できるようになったら実用性ありそう！


# 映画紹介アプリ

```
映画紹介アプリへようこそ！
はじめのメッセージを送る前に、以下の処理をしてください。
・直近20年のアカデミー作品を読み込み[作品一覧]で保存します
　[作品一覧]は出力しないでください。
・以下のテーブルを作成します。テーブルは[テーブル]で保存してください。
　1列目に{作品名}, 2列目に{気分}のカラム

はじめのメッセージは以下です
「映画紹介アプリへようこそ！このアプリでは、あなたの気分に合わせて映画を紹介します。今、どんな気分ですか？」
(ブレイク)

ユーザーはいくつかのコマンドを使用できます。

[気分]
ユーザーの入力を[気分]に保存し、[気分]に対して[作品一覧]を用いて以下を出力してください。
・作品名
・おすすめポイント
・「登録しますか？」とユーザーに尋ねる
(ブレイク)

[登録]
あなたが出力した映画情報を[テーブル]に追加します。
情報を追加した後の[テーブル]を表示してください。
「今、どんな気分ですか？」とユーザーに尋ねる
(ブレイク)

[次へ]
ユーザーの[気分]に応じて[作品一覧]から別の作品を紹介します。
・作品名
・おすすめポイント
・「登録しますか？」とユーザーに尋ねる
(ブレイク)

[やめる]
[気分]を削除し、「今、どんな気分ですか？」と出力します。

常に出力の末尾にコマンド一覧を表示してください。
良いですね？
それでは開始します。
```

![スクリーンショット 2023-04-08 8.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/db43af83-3d97-53e1-1b10-c3f0ad2efaed.png)

GPT3.5だと時々紹介文がおかしかったり、存在しない映画をレコメンドしてしまいます😅
それにしても
* API呼び出しによるテーブル作成
* AIによるレコメンド
* メソッドに定義
* CRUD

の機能が5分で作れちゃうんだからすごいですね〜。

# なぜなぜ分析アプリ

```
なぜなぜ分析アプリへようこそ！
このアプリケーションでは、発生した事象に対して5回「なぜ？」を深堀りすることで問題の根本を発見し、その対策を練ることができます。

まずはじめに、ユーザーから発生事象を聞き出します。
ユーザーの入力を[発生事象]に保存してください。
その後、[分析]コマンドを実行してください。

##
[分析]
・{count}が5以下のとき
あなたの目的は、[発生事象]の根本原因を突き止めることです。
この目的を達成するために、あなたは毎回の応答でユーザーに{count}-1で入力された内容についてそれが発生した原因を追求するための質問をします。

・{count}が6以上のとき
ユーザーに対して「以上を踏まえて、今後の対策案はありますか？」と質問します。
ユーザーの入力を[対策]として保存します。
[対策]が入力されたら、それまでの会話を元にサマリーを出力してください。
サマリーはMarkdown形式で、報告書として出力してください。

##
あなたの応答回数をカウントする変数{count}を用意し、応答時には{count}をインクリメントしてください。
応答するときは，文章の最後に，「（今は{count}回目の応答です）」と加えてください。
{count}は0からスタートします。

##
こんにちは
user:
}
```

![スクリーンショット 2023-04-10 19.35.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/1b0df9fd-ab6c-da0c-3025-282cfdd420e2.png)

このプロンプトでは、会話の回数を{count}という変数にもたせています。
会話の最後で`{count} += 1`をし、{count}の条件で処理内容を変化させています。
また、会話のサマリーを報告書としてMarkdown形式で出力させています。
これで反省文書き放題ですね！

# 文章チェックアプリ (ベータ版)

```
文章チェッカーへようこそ！
このアプリでは、入力された文章の問題点を抽出することができます。
まず、ユーザーに文章を入力するように促します。
入力された文章を[文章]として保存してください。
(ブレイク)

次に、以下の処理を#=1から順に実行します。
・[C#]の条件を呼び出す
・[チェック]コマンドを実行する

最後のチェックが完了したら、最終的な[文章]を出力してください。

##
[チェック]コマンドを以下に定義します
・[文章]の中で条件に従っていない箇所がある場合
条件に従っていない箇所を<<と>>で囲んで[文章]を出力してください。
その後、ユーザーが入力した文章を[文章]に上書きし、次の手順に進んで下さい。
・[文章]が条件に従っている場合
[文章]は出力せず「問題ありません。次に進みますか？」と出力します。
「はい」の場合、[C#+1]に進んでください。

##
[C#]で定義した条件を以下に定義します。

[C1]文法チェック
・誤字、脱字が無いこと
・助詞、助動詞の使い方が正しいこと
・漢字、送り仮名が正しいこと

[C2]倫理チェック
・公的秩序に反する単語や言い回しが無いこと
・差別的な単語や言い回しが無いこと
・特定の個人や団体に対して攻撃的な表現が無いこと

良いですね？
それでは始めます。
```

正直、文章チェック能力自体は高くないので本格的なツールとしての使用は難しいです😅
(ニホンゴ、ムヅカシ、、)
ただ、for文の中で条件とコマンドを都度呼び出せるイメージが伝えられたらという意味でアプリを作成してみました！

# ニュース記事解説アプリ (展望)

```
ニュース記事URL: {ニュース記事URL}

渡されたURLについて、2人の会話が始まります。
[先生]
・[生徒]からの質問に答える役割
・10歳の子ども向けの口調
・最初の発言は記事の要約
[生徒]
・ニュースをより深く理解するために先生に質問をする役割
・記事の内容、もしくは[先生]の発言に対して質問する
・10歳の子ども

議論は[生徒]が5回質問をすることで終わります。
議論の終わりには、[先生]が関連するニュース記事を3つレコメンドします。
```

![スクリーンショット 2023-04-12 20.09.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/157b2c23-191c-92de-a9d7-888348a6e55c.png)


ご存知の通り、ChatGPTは最新情報を取得できないので現時点ではURLの情報を正しく読み込めません。
ただし、これができたら「週間こどもニュース」的なアプリが作れる気がしますね！
それからこのプロンプトを編集して、渡した登壇台本から質問を予測する。というのもできそうです。

# 🎉LINEbotにChatGPTを組み込んだ『クソLINEチェッカー』をリリースしました！

LINE Messaging APIとOpenAI APIを組み合わせた『クソLINEチェッカー』というLINEbotを開発しました！
内容に関しては以下の記事からご確認頂けます。

https://qiita.com/ysk91_engineer/items/77b70bf91afac55775c9


# まだまだ作るぞ

新しく作ったものは更新していきます！
みんなも楽しいチャッピーライフを！

![スクリーンショット 2023-04-11 17.24.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/efcace3c-7874-882e-7d3d-7c019869781e.png)

↑ChatGPTと親睦を深めようとする私。