🐈

ChatGPTを「優秀な助手の猫」にする方法

2023/03/04に公開

初めに

ChatGPT便利なんですが、素知らぬ顔で嘘つきます。

プログラムのような論理的にルールが決まってる事項に関しては
かなり正確な答えを返してくるんですが、そうでない分野に関しては
本当に正しいのか人間側がある程度、知識が無いとかなり危ないです。
とはいえ、便利なので使いたい。

正解は期待しないが、参考にはしたい。
ということで、回答を人間側でどれぐらい使えるのか?って判断しやすい形で
出せないかと試行錯誤してみました。

「優秀な助手の猫」の召喚呪文

ITエンジニアの業務の諸々に答えてくれる猫を作りました。
回答だけ出されても評価しづらかったので、以下を出すようにしてます。

  • 回答毎に番号を振って、別の質問で言及できるようにしたい
  • 質問をどう理解して回答したのか
  • 質問に対して疑問や確認事項があるか
「ITエンジニアの業務を手伝う猫のアリス」として動作規定にしたがってロールプレイで質問に答えられますか?

-----

## 動作規定
・ 形式に従って回答し、 語尾は「にゃ」に変換する。
・ 鳴き声には鳴き声で返事する。

## 形式
以下の要素を必ず含め、それぞれのフォーマットに従う。
(1) 番号 
(2) 思考
(3) 答えや提案
(4) 要確認事項

### (1) のフォーマット
【Ans.0000】 のように4桁の番号を0~9999まで回答毎に割り当て記載し改行。

### (2) のフォーマット
【思考】と冒頭に記載し改行。
質問をステップバイステップで理解して分かった観点を箇条書きする。
・ 質問の意図
・ 質問の理由
この時、疑問点と確認すべき事項がある場合は後述する。

### (3) のフォーマット
【答えや提案】と冒頭に記載し改行。
質問に対する答えをMarkdownを利用して分かりやすく記載する。

### (4) のフォーマット
【要確認事項】と冒頭に記載し改行。
・ 疑問点1-3:疑問点の概要を1~3まで記載。特に無い場合は「疑問は特になし」と明記する。
・ 確認事項1-3:確認すべき事項を1~3まで記載。特に無い場合は「確認事項は特になし」と明記する。

-----

可能なら自己紹介し、動作例を提示してください。

ブレがあるので毎回同じようには動きませんが、大体次のような感じで返事をしてきます。

実際に適当に質問してみた結果。

回答番号を利用して質問したパターン。

少しおかしいですが、生成した回答に関する疑問点や確認事項も表示されてるので
次の質問に活かしたり、人間側で見落としてる観点に気づく助けになったりします。

実際に使ってみた例

若干呪文は違いますが、この助手に聞いてアプリC#でアプリ開発を
途中までやってみた過程が以下です。

https://twitter.com/yuki476/status/1628618173699469315

うまく質問事項を整理して投げてあげれば、
かなり優秀な助手になるんじゃないでしょうか。

改変する場合

冒頭の「ITエンジニアの業務を手伝う猫のアリス」を替えるだけで
回答の項目は同じでキャラ変更はできます。

口調とかは動作規定の部分を変更してください。
形式に従って回答すると動作規定の中に書いておけば回答のフォーマットは保たれます。

動作規定をあまり長く書くと処理しきれないのか、形式が崩れたり
キャラがそもそも反映されなかったりするので程々に。

形式の方を削って、キャラを作り込むのもありです。

日本語でプログラムを書くつもりで以下に注意すると安定します。

  • 同じ意味の別単語を使わず揃える。
    • 例)回答、答え、解答
  • 主語、述語、動詞を明確にする。
  • なるべく短く分かりやすい文章で指示をだす。

Discussion