安心してください、今回はエンジニアの方向けにマジで使えるプロンプト20選をご紹介します。
エンジニア向けプロンプト集
ここでは、ChatGPTにプロンプトを入れて、コードレビューさせたり、コード解説してもらったりと、エンジニアの皆さんの作業効率を格段にあげるものを20個厳選したので以下のカテゴリに分けて紹介していきます。
- コーディング
- バグの特定/修正作業
- その他(便利なプロンプト)
① コーディング
コーディング時に精度が格段に上がるプロンプトをいくつか紹介します。
深津式プロンプト
これはNote株式会社CXOの深津貴之さんが考案したプロンプトで、ChatGPTに役割を与え、ChatGPT自身が「何を書くべきか」を事前に知らせることで、回答精度を上げることができます。
[ ]の中には作りたいものの条件等を入れてお使いください。
# 命令書
あなたは、[〇〇]です。
以下の制約条件と入力文をもとに、[〇〇]を作ってください。
# 制約条件
・[〇〇]
・[〇〇]
# 入力文:
[〇〇]
# 出力文:
- 深津式プロンプトの使用例
-
# 命令書 あなたは、[機械学習やディープラーニングに精通したプロのITエンジニア]です。 以下の制約条件と入力文をもとに、[最高のカリキュラム]を作ってください。 # 制約条件 ・Pythonを学ぶ手順を[ステップ形式]で教えてください ・各ステップで学ぶべき[構文]も記載 ・[よくあるエラー]も合わせて記載 # 入力文: Pythonを学び始めた初学者に対し、ステップ形式でPythonの勉強方法を教えてください。 # 出力文:
RQプロンプト
ChatGPTは与えられた条件が少なくても思考し回答を出力してくれますが、条件が不足していると高確率で望んでいる回答を得ることはできません。そんなときに役立つのがこのプロンプトです。
回答を出力する前に、前提条件が不足していないかチェックしてください。
不足している情報があれば、どんな情報が必要なのか箇条書きで書き出してください。
- RQプロンプトの使用例
-
あなたは、[機械学習やディープラーニングに精通したプロのITエンジニア]です。 以下の制約条件をもとに、[最高のプログラム]を作ってください。 # 制約条件 ・matplotlibを使ってグラフの描画を行う 回答を出力する前に、前提条件が不足していないかチェックしてください。 不足している情報があれば、どんな情報が必要なのか箇条書きで書き出してください。
ReActプロンプト
「Reason+Act」を組み合わせたプロンプトです。推論→行動→観察のプロセスを繰り返すことで、タスクの解決に向けてより詳細で精度の高い回答を出力させることができます。
[ここに文章を入力]
Thought :
Action :
Observation :
- ReActプロンプトの使用例
-
この言語で求人システムを構築する場合、有効な有効なせ有効なセキュリティ対策を教えてください。 フロント:Next.js バックエンド:django Thought : Action : Observation :
効果比較
このプロンプトは、コード修正前と修正後を比較することで、どこをどのように改善し、その結果どう良くなったのかを出力してくるプロンプトです。
あなたは、[python]に精通したプロのITエンジニアです。
以下の入力内容、条件と入力コードをもとに、コードの修正・比較を行なってください。
# 入力内容
・現在のコードで改善できる箇所があれば修正してください。
・修正後のコードと修正前のコードを条件の内容に沿って比較してください
# 条件
・改善したポイントを箇条書きで教えてください
・そこを改善することで、具体的にどうなるのか教えてください。
# コード
・[コードを入力してください]
- 効果比較プロンプトの使用例
-
あなたは、[Next.js]に精通したプロのITエンジニアです。 以下の入力内容、条件と入力コードをもとに、コードの修正・比較を行なってください。 # 入力内容 ・現在のコードで改善できる箇所があれば修正してください。 ・修正後のコードと修正前のコードを条件の内容に沿って比較してください # 条件 ・改善したポイントを箇条書きで教えてください ・そこを改善することで、具体的にどうなるのか教えてください。 # コード type Props = { data?: Data; status?: string; }; export const getStaticProps: GetStaticProps<Props> = async () => { try { const data = await fetch("http://api.com/path/to/api").then((res) => { if (!res.ok) throw new Error(`${res.status}`); return res.json(); }); return { props: { data } }; } catch (err) { // Error! オブジェクト型は 'unknown' です return { props: { status: err.message } }; } };
構造化
精度のいい回答を得るには、プロンプトを明確で理解しやすい形で書く必要があります。
情報はリストやステップバイステップの指示、または具体的な質問の形にまとめるのが理想です。
ダメな例をあげると、「クイックソートを実装するPython関数を書いて」というプロンプトでは情報が構造化されていないので、精度が低くなります。
[ ]の中には作りたいものの条件等を入れてお使いください。
あなたは、[Python]に精通したプロのITエンジニアです。
以下の要件に従ったPython関数を作ってください。
###条件
①[〇〇]
②[〇〇]
- 構造化されたプロンプトの使用例
-
あなたは、[Python]に精通したプロのITエンジニアです。 以下の要件に従ったPython関数を作ってください。 ###条件 ①関数はクイックソートを実装します。 ②関数はリストを引数とし、ソート済みのリストを返します。
背景情報を与える
ChatGPTが適切な出力を生成するために、必要な背景情報を与える必要があります。
背景情報とは、特定のAPIや特定のライブラリの使用、あるいはプロジェクトの全体的な文脈(例:Webアプリケーション、データ分析など)などの情報です。
いろいろご紹介したプロンプトに追記する形で使用してください。
###背景情報
①[〇〇]
②[〇〇]
- 背景情報を与えた例
-
あなたは、[Python]に精通したプロのITエンジニアです。 以下の要件に従ったPython関数を作ってください。 ###背景情報 ①求人システム(webアプリ)を作成しています。 ②フロント:Next.js バックエンド:DRFを利用。 djangoのtemplateフォルダは使用せず、APIとしてNext.jsのバックエンドを仲介して利用しています。
Chain-of-Thought(CoT)
CoTとは複数の中間的な推論ステップを介して複雑な推論を実現するプロンプティング です。
簡単にいうと段階を踏んで回答を出力させることで精度を上げる方法です。
思考過程がわかるように段階的に記述してください。
- CoTプロンプトを使用した例
-
あなたは、[機械学習やディープラーニングに精通したプロのITエンジニア]です。 以下の条件に従って画像認識問題をとくプログラムを作ってください。 その際に、思考過程がわかるように段階的に記述してください。 ###条件 ①手書き文字のデータセット(Mnist)を利用 Kerasライブラリーのディープラーニングを利用 ②ディープラーニングのネットワーク構築の前にデータ整形
回答パターン提示
回答パターンを固定することで望んでいる回答が出力されやすくなります。
[inputを英訳してからスラッグに変換してください]
###例
input:こんにちは、世界
output:hello-world
###
input:[〇〇]
output:
- 回答パターン提示プロンプトの使用例
-
inputを英訳してからスラッグに変換してください ###例 input:こんにちは、世界 output:hello-world ### input:AI記事一覧 output:
制約条件
こんな感じで、あらかじめコーディング規約や使用言語を伝えておくことで、効率よく作業を行うことができます。
今後の回答は以下の###制約条件に従ってください。
###制約条件
- 言語はPythonを使用してください
- 関数名はすべてsnake caseを使ってください
- 変数名はすべてsnake caseを使ってください
リディングワード
このようにimportを入れることで、pythonで書き始めることをより強調することができます。
※importの部分は言語によって異なります。
[ ]の内容を変更して利用してください。
あなたは、[python]に精通したプロのITエンジニアです。
以下の出力条件と入力文をもとに、[〇〇]を作ってください。
# 出力条件
import
セキュリティの担保
ChatGPTはしばしばセキュリティを考慮しない回答、テスト仕様のコードを生成することがあります。
[ ]の内容を変更して利用してください。
あなたは、[python]に精通したプロのITエンジニアです。
以下の出力条件と入力文をもとに、[プログラム]を作ってください。
# 制約条件
・本番仕様での利用ができるようにセキュリティを考慮したコードにしてください。
このように、本番仕様で書くよう指示を出してあげると、ある程度セキュリティが担保されたコードを生成してくれます。
- セキュリティ担保のプロンプト使用例
-
あなたは、[python]に精通したプロのITエンジニアです。 以下の出力条件と入力文をもとに、[プログラム]を作ってください。 # 制約条件 ・本番仕様での利用ができるようにセキュリティを考慮したコードにしてください。 ・Pythonを学ぶ手順を[ステップ形式]で教えてください
回答精度を上げるワード
ちょっとした表現を入れるだけで回答精度も変わってきます。
「〜を教えて」よりも「〜をわかりやすく教えて」の方が良い回答が返ってきます。
~をわかりやすく教えて
要素 | 回答精度を上げる表現 |
わかりやすさ | わかりやすく/具体例を交えて/比喩や例えを交えて/分かりづらそうなところは注釈を交えて/ポイントが分かるように/平易な表現で |
詳細さ | 簡単に/簡潔に/詳細に/専門的に/深堀りした形で |
知識量 | 初心者向けに/専門家向けに/小学生向けに/その分野に詳しくない人向けに/ITやPCに詳しくない人向けに |
口調 | 優しい言葉遣いで/だ・である調で/真面目に/楽しく/面白おかしく/冗談を交えて/新聞記者が話すように/アナウンサー風に/女性が話すように/太宰治が話すように/時代劇のように/ドラゴンボールの悟空風に |
比較 | メリット・デメリットを含めて/他のものと比較しながら |
応用 | 実際にどのように活用出来るかを含めて/コツを含めて/具体的な活用例を含めて |
② バグの特定/修正作業
エラーやバグおよびコード修正で役立つプロンプトを紹介します。
回答のコードが動かない時 1
よくある要因として古い情報のままで最新のライブラリやパッケージのバージョンだと機能しないことがあります。
そんな時は、公式の書き方を参照させるのが良いでしょう。
[ ]の内容を変更して利用してください。
あなたは、[python]に精通したプロのITエンジニアです。
以下の条件をもとに、[プログラム]を修正してください。
# 条件
・公式ドキュメントの書き方を参照してください
# 公式ドキュメント
[公式の書き方を貼り付けてください]
回答のコードが動かない時 2
過去の履歴によって前提条件が複雑になり、混乱している場合があります。
以下のプロンプトを入力し、前提条件がおかしければ、New Chatから、再度、条件を入力し直してください。
[ ]の内容を変更して利用してください。
あなたは、[python]に精通したプロのITエンジニアです。
一度、認識を再確認したいです。
あなたが認識している今の前提条件を箇条書きですべて書き出してください
###前提条件
・
・
このように履歴をリセットして再度、条件を送ってあげると改善することも多いです。
コード修正プロンプト
初学者の方に特におすすめなのですが、コードを書いていると急にエラーを吐いて機能しなくなることが多々あるかと思いますが、原因がすぐに特定できないときは、このプロンプトに該当コードを入力すると、かなりの精度でエラーを修正してくれます。
[ ]には入力したい内容を入れてください。
#命令書
あなたは[Python]に精通したプロのITエンジニアです。
以下のコードを1行ずつ確認し、エラーが発生しないよう改善してください。
#入力分
[〇〇]
- コード修正プロンプトの使用例
-
#命令書 あなたは[Next.js]に精通したプロのITエンジニアです。 以下のコードを1行ずつ確認し、エラーが発生しないよう改善してください。 #入力分 type Props = { data?: Data; status?: string; }; export const getStaticProps: GetStaticProps<Props> = async () => { try { const data = await fetch("http://api.com/path/to/api").then((res) => { if (!res.ok) throw new Error(`${res.status}`); return res.json(); }); return { props: { data } }; } catch (err) { // Error! オブジェクト型は 'unknown' です return { props: { status: err.message } }; } };
③ その他(便利なプロンプト)
他にもコーディングする際に、役にたつプロンプトをご紹介します。
サンプルデータ作成
サンプルデータが欲しいときはこのプロンプトを活用してください。
〇〇の部分を置き換えて使用してください。
〜を開発するため、サンプルデータを用意してもらいたいです。
ファイル形式はJSON形式、項目として〇〇、〇〇、〇〇を含むデータを20件作成してください。
- サンプルデータ作成プロンプトの使用例
-
身長と体重の相関関係を調べるプログラムを開発するため、サンプルデータを用意してもらいたいです。 ファイル形式はJSON形式、項目として名前、身長、体重を含むデータを20件作成してください。
コード解説
プログラム初学者の方や、パッとみてプログラムの処理内容がわかりにくいときに活用してみてください。
#instruction:
次のプログラムがどのような処理をしているか解説してください。
#input:
[プログラムコード]
#output:
- コード解説プロンプトの使用例
-
#instruction: 次のプログラムがどのような処理をしているか解説してください。 #input: import os ~~~~~~~~ ~~~~~~~~ #output:
コマンドサーチ
Linuxのコマンドを忘れた時に使えるプロンプトです。
[ ]には入力したい内容を入れてください。
あなたはLinux開発に精通したプロのITエンジニアです。
以下の動作を行うLinuxコマンドを教えてください。
#動作
[〇〇]
- コマンドサーチプロンプトの使用例
-
あなたはLinux開発に精通したプロのITエンジニアです。 以下の動作を行うLinuxコマンドを教えてください。 #動作 特定のファイルを除いたディレクトリの中のすべてのファイルの権限をオーナーのみ読み書き実行できるように変更する
出力形式の固定
出力形式を固定することで望んでいる回答が出力されやすくなります。
[inputを英訳してからスラッグに変換してください]
###例
input:こんにちは、世界
output:hello-world
###
input:[〇〇]
output:
- 出力形式の固定プロンプトの使用例
-
inputを英訳してからスラッグに変換してください ###例 input:こんにちは、世界 output:hello-world ### input:AI記事一覧 output:
リファクタリング
コードが長くなり過ぎてしまった時や、関数の命名規則がおかしいときに綺麗にみやすくしてくれるので、私もよく利用します。
下記のコードをリファクタリングしてください。
その際、関数名・変数名の命名規則をsnake caseに統一し、空白やコメントの整理も行なってください。
リファクタリングし、命名規則を調整することで、誰が引き継いでもわかりやすいコードに調整しることができます。
- リファクタリングの使用例
-
下記のコードをリファクタリングしてください。 その際、関数名・変数名の命名規則をsnake caseに統一し、空白やコメントの整理も行なってください。 ### import os ~~~~~~
snake case | 英語の複合語やフレーズ(句)、文を一語に繋げて表記する際に、単語間のスペースをアンダースコア(_)に置き換える方式 |