ChatGPTで「大規模開発」をするなら知っておきたい、コード消失を防ぐ魔法のプロンプト

プロンプト

はじめに

「ChatGPT、すごい!」 最初はそう感動していても、少し複雑なアプリやツールを作ろうとした瞬間、急に沼にハマることってありませんか?

PythonなりC言語なり、好きな言語でサクッとコードを書いてくれるのは最高です。 でも、小規模なスクリプトなら簡単なのに、大規模なコードやツールの作成をChatGPTに依頼する場合、やりとりが長くなると途端に怪しくなってくる……。

「あれ、さっき直したバグが復活してる?」 「コードが長すぎて途中で止まっちゃった……」

そうなると、ChatGPTの欠点も見えてくるのです。

今回は、そんな「ChatGPTでの開発あるある」を解消し、最後まで確実に作り切るためのテクニックと、私が愛用している**「魔法のプロンプト」**を紹介します。

これを知っているだけで、開発効率が劇的に変わります。

ChatGPTが「記憶喪失」になる問題を解決する

ChatGPTはたまに、どれだけ会話が進んでも最初に作成されたコードのみを基準にし続けることがあります。

どういうことかと言うと、

  1. コードAを作ってもらう
  2. バグがあったので修正して「コードB」にしてもらう
  3. さらに機能を追加しようとすると……
  4. なぜか「コードA」をベースに機能追加されて、バグが復活している!

なんてことが起こるんです。

毎回そうなるわけではありませんが、これをやられると修正の無限ループに入ってしまいます。本当に面倒ですよね。

だからこそ、「基準を更新するよう」明確に指示する必要があるんです。

「時間が足りない」で逃げられるのを防ぐ

次に多いのが、「時間切れ」問題。

ChatGPTは処理時間が足りないと、「完成していないのでコードを出せません。次のターンで仕上げます」的なことを言います。

「じゃあ続きをお願い」と頼みますよね?

しかし、ここにとんでもない罠があります。

AIはチャット履歴にコードがなければ、次のターンに引き継がないことがあるんです。

会話上は引き継いでいるように見えても、裏側では文脈を見失っていて、実際は0から作り直していたりします。これでは意味がありませんし、時間がかかって面倒です。

だから是が非でも履歴(物理的なファイル)に残したいのですが、何かと理由を付けて出そうとしないのがChatGPTです。

そこで、確実に情報を引き継がせるのに最適なのが「ダウンロードリンク」でした。

全てのコードを載せるようにさせても良いのですが、修正させる度にチャット欄に何百行ものコードを載せるのは時間が掛かりますし、スクロールして遡るのも大変です。ファイルを直接渡してもらうのが一番確実なんです。

決定版!開発効率を爆上げする「指示プロンプト」

ただ、ダウンロードリンクにも問題はあります。一長一短なので好きな方を選んでください。

ダウンロードリンクは生成された直後にクリックしても、「このファイルは利用できなくなりました」「コード インタープリターのセッションの有効期限が切れました」といったメッセージでダウンロードに失敗することがあるのです。

また、出力されたのが「フォルダへのリンク」でも失敗します。

なので、「確実にダウンロード可能なZIPファイル」になるよう指示しましょう。

圧縮ファイル(ZIP)にする理由はもう一つあります。

大規模なプログラムを作成する場合、大抵は複数ファイルに分けたり、外部ファイルが必要になります。ChatGPTもその想定で作成することが多く、ディレクトリ構造をそのままダウンロード出来るので、配置ミスなどの間違いが少なくなります。

前置きが長くなりましたが、これらを全て解決する**「魔法のプロンプト」**がこちらです。

開発の要件定義が終わったタイミングや、コード生成をお願いする段階で、以下の条件をペタッと貼ってください。

【開発用・確実なコード出力を求めるプロンプト】

なお、ここからは以下の項目を前提にしてくれ。
・こちらからの指定がない限り、コードを修正するときは毎回「前のターンで出力したコード」を新しい基準として、次の差分を出してくれ。
・コードを出すときは、全コードを含めたダウンロードリンクで出してくれ。
・ダウンロードリンクは「フォルダ参照由来の一時リンク」ではなく、確実にダウンロード可能なzipファイルリンクにしてくれ。
・時間が足らずに未完成の場合でも、ダウンロードリンクを出すか否か勝手に判断することを禁じる。100%の確率で途中成果物をダウンロードリンクで出力すること。

このプロンプトのポイントは、**「未完成でも100%出すこと」**を強制している点です。

未完成でもファイルとして手元にあれば、それを読み込ませることで確実に「続き」からスタートできますからね。

それでもAIが指示を守らない時の「最終奥義」

ここまで語っておいてなんですが、最も重要な点は別にあります。

それは、AIが指示を守らない場合があることです。

これだけ鉄壁のプロンプトで指示を出しているのに、守らないこともあります。

「ZIPで出して」と言ったのにテキストで書いてきたり、「途中ですが出します」と言いつつリンクがなかったり……。

ChatGPTに限らずですが、AIの言葉使いは「人間のように振る舞う」ためのもので「自分の発言に責任を持っている」訳ではありません。

「次の処理で必ず完成させます」とか言って「未完です」、なんてのはしょっちゅうありました。

どんなに完璧なプロンプトを作っても、これ(AIのサボりや幻覚)が起こるリスクがあります。

こういう場合の対処法は一つです。

望みどおりになるまで根気よく「もう一度試す(Regenerate)」ボタンからガチャりましょう。

これに尽きます。というか他にどうしようもありません。

AI相手にイライラして説教をしても時間の無駄です。「ハズレ引いたな」くらいの気持ちで、当たりが出るまでリトライボタンを押す。

意外とこれが、精神衛生上も開発スピード的にも一番の近道だったりします。

まとめ

ChatGPTを使った大規模開発で失敗しないためのポイントは3つです。

  1. 「前回のコードを基準にする」と明言し、先祖返りを防ぐ。
  2. 履歴を確実に残すために「未完成でもZIPで出力」させる。
  3. 指示を守らない時は、迷わず「再生成」ガチャを回す。

この3つを意識するだけで、今まで「もういい、自分で書く!」と投げ出していたツール作成も、驚くほどスムーズに進むようになります。

コメント

タイトルとURLをコピーしました