light66
@light66 (らいと)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ChatGPTが完成済みのコードを削除してしまう問題

解決したいこと

ChatGPTのおかげで初めての言語でもコードが書けるようになり助かっています

一方で、コードの修正や機能追加を依頼すると、もともと完成していたコードの一部を削除する現象に悩まされています

「DEBUGフラグを追加して、TRUEの時のみデバッグ用ファイルを出力するようにする。そのほかのコードの改変や削除は禁止する」と指示をすると、機能追加はしてくれますが、関連しなかったメソッドをごっそり削除するときがあります

注意をしたり、理由を聞いても「勘違いしまた」「気をつけます」というばかりで改善しません

コード総数は120行ほどです
これに対処する方法はあるでしょうか?

よろしくお願いします

0

2Answer

私はWindows Copilotにコードを生成してもらうことが多いのですが、特に既存のコードの修正では、WinMergeでコードのテキストを比較してから適用することが多いです。
私よりもCopilotの方が詳しい場合がほとんどなので、そのまま適用することも多いのですが、コードが全く変わっていない場合などもあるので、現状では人間が比較するのが一番ではないかと思います。
生成AIは人間ではないので多少は短期記憶のデータを参照して対応するかもしれませんが、それが消えてしまうとダメなので、現状ではそこまでいい感じにアテにはできないのではないかと思います。

1Like

Comments

  1. @light66

    Questioner

    ありがとうございます。
    copilotが良さそうですね。チャット画面だけでは直近の指示に影響されすぎ感があります。
    対策として、メソッドごとにコードを渡して修正指示を出すようしてみようかと思います。

  2. VisualStudioやVisualStudioCodeでコード支援してくれるgithub copilotをイメージされたかもしれませんが、主に使ってるのはチャット画面のWindowsのCopilotです。
    コード支援も課金すればいいのだろうと思うのですが、無料の中ではすぐに利用上限になってしまうので。
    Windows Copilotに、コードと質問を出して、提案してきたコードを、元のコードと比較するようにしています。Gemini2.0やローカルのdeepseekなどでも同じように差分を確認して、必要なところだけコピペする、とかもしています。
    無料の範囲でやっているため、プロンプトの制限もあり、あまり長文を投げられず、部分的なコードの修正依頼をする場合や、関係ない関数は伝えなかったり、工夫しながら使ってますね。
    コード自体は何も知らない私よりもだいたい精度が良いのですが、あまり信頼してないのかもしれません。

少なくとも無料プランの ChatGPT の能力はその程度のものです

工夫できる余地があるとするとロールプレイで望ましい返答が得られやすい傾向はあるようです。 (劇的に変わるわけではないですが。) たとえば「あなたはプログラミング言語××に詳しいプログラマであり、私の部下として〇○をするプログラムの開発に関わっています。 私の指示に従って機能を追加してください」というような立場を明確にする文言を最初に入れるとやって欲しいことを伝えるだけよりは良いです。

1Like

Your answer might help someone💌