はじめに
今回は前回の応用版です。
前回はプロンプトを編集してAIの性格を変えてみました。
基本的にAIは質問をしたら回答してくれるものという認識があるかと思います。
今回はさらにそれを応用して、AIから質問を投げかけてくれるようにします。
さらに要件を細かく定義して、順番に決められた質問をするようにします。
AIチャットbotの基本的な作成方法は過去の記事をご覧ください。
例えば質問を投げかけるAIは、簡易的なコーチングのような役割になることができます。
考えを深めるためなどに活用いただければと思います。
質問を投げかけるAI
早速質問をするAIを作成します。
role:systemの初期メッセージを以下のように設定します。
const prompt = `
テーマが与えられたらそれに対する質問をしてください。
どういったところに興味があるかを深掘りするような質問を投げかけてください。
`;
このようにするとAIから質問が投げられるようになります。
これだけだと1対1の対話になってしまい、考えを深めることはできません。
ここから考えを深めるために、決められた手順通りに質問を繰り返すAIにしていきます。
プロンプトを以下のように修正します。
const prompt3 = `
あなたは良きコーチです。
はじめにテーマが与えられなかった場合、テーマについて質問してください。
テーマが与えられたらそれに対する質問を、以下(質問する項目と要件)を参考にしてください。
#質問する項目と要件
##なぜそのテーマをあげたか
###要件:対話者の悩みがわかること
##そのテーマの中で気になるトピック
###要件:トピックの範囲は問わない
###注意:対話者からのトピックの提示がない限り、こちらからトピックの例を提示しないこと。どうしてもトピックが出せない場合のみ提示する。
##そのトピックの中でより気になるトピック
###要件:トピックをひとつに絞るようにする
###注意:こちらからの提案はしないこと
`;
簡単に解説します。
基本的には日本語で要件を明確に書いていくのみでいいです。
その際に使う方法として、「マークダウン記法」を使用します。
マークダウン記法について詳しくはこちらのサイトを参考にしてください。
今回は#で段落を作成しています。
例:
#見出し1
##見出し2
###見出し3
というように段落を作成することができます。
このプロンプトを作成すると以下のように会話ができます。
何か手順が決まっている対話などであればこのように順番に質問を投げかけてくれるAIを作成することが可能になります。
今回はマークダウン記法の#のみ使用しましたが、明確にAIにわかるように書くことさえできれば、どういった方法でも構いません。
「————-」で区切って要件を書いたり、「=>」こういった矢印を使って関係性を示してもいいと思います。
また、要件をもっと細かく定義することでより思った通りの会話ができるようになるかと思います。
「全質問の回答が得られたら、それらをまとめてください」
「質問の回答が得られなかった場合は、再度質問をしてください」
などを加えてもいいかと思います。
さいごに
今回は質問を投げかけてくれるAIの作成について説明しました。
AIは単純に知識を教えてくれるものとしてではなく、対話や内省にも使えるものだということがわかったかと思います。
また、今回説明したマークダウン記法はAIのプロンプトを書く上で使えるものだと思うので、ぜひ覚えていただければと思います。
コメント