ChatGPT用に、汎用問合せテンプレートを作ってみる
発想
細かいステップに分けて問わないといけないとはいえ、ある程度は自動化したい。また、毎回、問いたい内容を記述するのもめんどくさい。複数行に跨った記述をするとき、シフトを押し忘れて命令となってキーっとなったり、無駄なトークン代がと悔やむなら、命令書をコピペすればいいじゃない、という発想。
ということで、いろいろな記事を読んで、以下のようにしてみた。
提案をする人とされる人というテンプレートとして作ってある。
非エンジニアが自分でいじれるように、日本語の自然言語でのみ記述している。
プロンプト
解説
会話の開始
人間に、提案する人の立場、される人の立場、提案内容を入力させる。
これにより、議題、立場が別の人であっても、汎用的に利用できるはず。
提案内容だけでも動くが、立場を明確化することで、より深い議論が可能になるので、立場は強制的に書かせるようにしている。
立場を書かないと、自分の会社にChatGPTに導入すると言う話をした時に、マクロ経済的に導入する価値というような返事が返ってくることがある。だから立場はとても大事。
今思いついたが、どう言う立場の人が考えられるか、と言うのを最初に聞くと、自分でも思ってもみなかった立場が出てくる可能性もある。このプロンプトを入れる前の下処理としてやってみると良いかも。
あとは、時間切れルーチンを入れてみた。なくても良い。
提案の選択
立場を明確にして提案させる。
まずは、箇条書きで7つ書かせる。別に5つでも10個でも良いのだが、ここは説明よりもタイトルだけにして、その中から選んでもらうことを考えた。理由は:
いきなり説明させると、自分で知りたいこと以外が垂れ流されても困る。
自分で気づいていなかったポイントがあれば、深ぼれる。
この中に聞きたいことがない場合は再提案させられることで、自分の視点に見落としがないか確認できる。
提案のブレイクダウン
「提案の選択」で提示させるのはタイトルだけなので、内容は書いていない。そこで、3つにブレイクダウンさせた上で、簡単な解説をさせる。
反駁
三つの内容のうち、どれかを選んで深掘りをさせる。
視点はいわゆる black sheep、あえて反論をする。
立場は、被提案者(person)というのをダメ出しで書いておく。
ハルシネーション対策として、論拠のURLを提示させる。
説明は詳細にさせる。
あとは、今までの文脈をもとにチャットができるので、好きなように会話を続ければ良い。
なお、うまく会話して情報を引き出すコツには、Chain-of-Thought というものがあるらしい。前回でも触れた、小分けにして話すも含まれていると思うのだが、後で読む。
今後
「生産性を向上させることができる」という問いに対する反駁が「コストがかかる」だったりと、真正面から答えていない場合がある。
「生産性を向上させられるとは限らない。理由はこれこれ」というこ反駁をして欲しいのに、という不満に繋がる。
これは、もしかすると生成AIの特徴かもしれない。人間でも真正面に応えるのではなく、よく言えば水平思考的に別の観点を急に持ち出して、ミクロな意味だと反論になっていないが、マクロな意味では反論になっていることを言うことがあるので。
だとすれば、これはこう言うものだと受け入れて、追加の質問などで答えを引き出す必要がある。
となると、自動的に反復して深化させると言うのは、少ない回数で行って、必要なら軌道修正を人力で行って、また反復させる、と言うのがいいかもしれない。
参考
命令書という書き方は以下のツイートを参考にした。ありがとうございます。
https://twitter.com/bukuta_3/status/1636936746226319360