ChatGPT3.5でのスクリプティングを試してみた

　話題の生成系AI、OpenAIの<a href="https://openai.com/blog/chatgpt" rel="noopener" target="_blank"><strong>ChatGPT</strong></a>でのスクリプトコード作成を遅ればせながら簡単に試してみました。2023年4月現在、無料で使えるのはChatGPT3.5ですのでそちらでのテストになります。なお、Bing Chatはまだ順番待ち状態なので素のChatGPTです。試した言語はAppleScriptとPerlになります。


<div style="padding-left:1em" class="clear">
<h3 style="border-bottom: medium solid gray">AppleScript</h3>
　まずAppleScriptです。DTP作業で多用する処理を試しました。

<strong>・Photoshopの画像のカラーモードをグレースケールに</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_01.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_01.png" alt="" width="600" height="481" class="alignleft size-full wp-image-4145 thinborder" style="float:left" /></a>
<strong>　結果：×</strong>
概要：「convert mode」ではなく「change mode to」にしないとエラーになる。

<strong>・Photoshopの画像の解像度を350dpiに</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_02.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_02.png" alt="" width="600" height="490" class="alignleft size-full wp-image-4146 thinborder" style="float:left" /></a>
<strong>　結果：×</strong>
概要：「set resolution to」ではなく「resize image resolution」にしないとエラーになる。

<strong>・InDesignドキュメント内のJIS X 0213外の文字だけを赤くする</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_03.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_03.png" alt="" width="600" height="658" class="alignleft size-full wp-image-4147 thinborder" style="float:left" /></a>
<strong>　結果：×</strong>
概要：文法がおかしいらしくスクリプトエディタでの保存自体ができない。JIS X 0213外の文字の判別式もこんなに短いわけがない。


</div>

<div style="padding-left:1em" class="clear">
<h3 style="border-bottom: medium solid gray">Perl</h3>
　次にPerlのテストです。なお何も指定せずにコードを生成させたら内部文字列UTF-16のコードを出してきたので内部文字列UTF-8を指定して再生成しました。条件をちゃんと指定するのは大事ですね。また、動作チェック時に「use utf8;」の指定を書き足しています。
<p><br /></p>

<strong>・与えられた文字列内にJIS X 0213外の文字が含まれているかどうかのチェック</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_04.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_04.png" alt="" width="600" height="802" class="alignleft size-full wp-image-4148 thinborder" style="float:left" /></a>
<strong>　結果：×</strong>
概要：JIS X 0213はラテンアルファベットを含んでいるので（<a href="https://ja.wikipedia.org/wiki/JIS_X_0213%E9%9D%9E%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7" rel="noopener" target="_blank">参考</a>）、説明自体がおかしい。まあJIS規格は著作物扱いのはずなのでここですんなり出てきてしまったらむしろ問題かもしれない。

<strong>・与えられた文字列内にcp932の機種依存文字が含まれているかどうかのチェック</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_05.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_05.png" alt="" width="600" height="917" class="alignleft size-full wp-image-4149 thinborder" style="float:left" /></a>
<strong>　結果：×</strong>
概要：判定ルーチン自体は正しいように見えるのだが、判定のリストがおかしいらしくよく問題になる丸数字やローマ数字が引っかからない。そこを書き換えられれば実用範囲か。

<strong>・与えられた文字列内にUnicodeのBMP（基本多言語面）外の文字が含まれているかどうかのチェック</strong>
<a href="http://densyodamasii.com/wp-content/uploads/2023/04/column91_06.png" rel=lightbox[column91]><img src="http://densyodamasii.com/wp-content/uploads/2023/04/column91_06.png" alt="" width="600" height="869" class="alignleft size-full wp-image-4150 thinborder" style="float:left" /></a>
<strong>　結果：○</strong>
概要：これは問題なかった。
</div>

<p><br /></p>
<hr />
<p><br /></p>
　どうもChatGPT3.5の時点では、AppleScriptのような比較的マイナーな言語やJIS X 0213など日本のローカル規格の学習は足りていないのかもしれません。文法自体はパーツとしては使えそうに見えるのでその辺を割り切って使うなら許容範囲でしょうか。つまり元々コードが書ける人が時短目的で使うのなら有用かもしれないですね。いずれバージョンが進めば今回問題になったような「学習が足りない」ことが原因の間違いは減っていきそうですが、「AIにどういった問いを与えるのか」はおそらく相当先まで人間が考えるしかないので、そこをやれる人が効率化のために使うツールという位置づけになるのかなと思った次第です。