VSCODEのCLINEを使い、生成AIでコードを修正しようとすると
「The model used search patterns that don’t match anything in the file. Retrying…」というエラーが表示され、何度もAPIリクエストが送信されてしまい、お金だけがかかってDONEできないという問題が発生しました。
今回はその問題の原因と解決方法についてお話しします。
“Diff Edit Mismatch”が何度も表示されてはAPIリクエストが送られ、繰り返される・・・
ファイルが変更されているので、問題なく進んでいると思いきや何度も同じリクエストが送られてDiff Edit Mismatchが表示されるという事態になっていました。
これによって、コードが修正できないままコストだけが増えていくという最悪な事態に・・・。


“Diff Edit Mismatch”の意味を調べてみる
検索してもなかなか出てきませんでした。
何かが不一致だということだけはわかりました。
“The model used search patterns that don’t match anything in the file. Retrying..”の意味を調べる
何らかの検索パターンを使っていて、ファイルの文字と合致していません。ということが言いたいのかなと想像しました。
API Requestのプルダウンを開き、本格的に原因を確認すると、どうやら正規表現でファイルをチェックしており、合致するものが見当たらなかったということでした。
あいまいで雑な指示でも、いい感じにやってくれると思っていましたが、そうではなかったようです・・・。
AIなのでついつい雑に高圧的に指示してしまっていました。
今回の指示内容は下記です。
test.htmlで
font-weight: 400;
のスタイルとそれに関連するspanタグをすべて削除して
下記のようなコードが弊社ブログに入っており、不要だったのでさくっと消してもらいたく上記の指示をしています。
元コード
<li style="font-weight: 400;"><span style="font-weight: 400;">WCAG(技術的な規格)</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">ISO/IEC 40500(国際規格)</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">JIS X 8341-3(国内規格)</span></li>
こうしたい!
<li>WCAG(技術的な規格)</li>
<li>ISO/IEC 40500(国際規格)</li>
<li>JIS X 8341-3(国内規格)</li>
指示を変えることで解決
結論、下記の指示でいけました。
test.htmlで font-weight:400のスパンがたくさんあり、内容も複雑なので、write_to_fileを使って、これらのスパンを除いてファイル全体を書き換えて。
API Requestの実行内容の英文を読むと、ヒントが見つかります。
日本語の指示が英語に変換されて実行されます。
そのため、英語に変換される前提での指示を行う必要があります。
私の場合は一部成功している箇所で「ファイル全体を書き換えてください」のような文があり、書き換える(リライト)という表現をすることで正規表現による「置換」ではなく、実行できたのだと考えています。
だれかのお役に立てていれば幸いです。