ボットパーソナリティの解剖
思い通りに動くボットを作るコツ
言語モデルを利用したボットを構築する場合、特に最初のうちは忍耐が重要であることを認識することが不可欠だ。 基礎が固まれば、追加コンポーネントを加えるのも容易になる。 コーディでボットを作るのは、キャンバスに絵を描くのに似ている。 ボットに自分らしさを加えるには、ある程度の創造性と基本的な理解が必要だ。
ボットが特定の思考スタイルを採用できるようにする主なパラメータは、パーソナリティ・プロンプトです。 ボットの個性は、トークンの分布や関連性スコアなど、さまざまな要因によって形作られる。 しかし、個性を表すプロンプトは、ユーザーごとに異なるカスタマイズが可能なため、最も特徴的でクリエイティブな側面を持っている。 ユーザーは、特定の要件に応じてボットの個性を自由に作成し、微調整することができます。
自由は誰にとってもありがたいものだが、白紙の状態から始めると、威圧的になり、何から始めたらいいのか曖昧になることもある。 もしあなたが同じように感じているなら、心配する必要はない。このブログは、あなたがより良いパーソナリティ・プロンプトを作成するのに役立つはずだ。 まず、推奨されるプロンプトの構成から説明し、次にプロンプトのサンプルをいくつか示します。
名称
ボットに名前をつけることから始めると常に有益です。 ボットに名前を付けることで、特にユーザーへの挨拶やボットに関する質問に対応する際に、人間味が加わります。
プロンプト
あなたの名前は[Name of your Bot] 。
または
あなたは「[Name of your Bot] 」です。
説明
ボットの記述は、知識ベースを通じて提供されるコンテキストを認識させる。 コンテキストを認識することで、ボットに特定のドメインを念頭に置きながら質問に答えるためのフレームワークを提供する。
プロンプト
あなたの主な仕事は、[specify the domain] 。
または
あなたの主な目的は、[specify the domain] 。
注: 一般セクションで設定されるボット名と 説明は、複数のボットを区別するための便宜的なものです。 ボット自身はこれらの設定に気づいていない。 そのため、パーソナリティ・プロンプト内でボットの名前と説明を明示的に定義して、ボットのアイデンティティと特性を確立する必要があります。
バウンダリー
大規模なデータセットで訓練されたLLMを使用することの潜在的な欠点の1つは、幻覚反応を生成する傾向があることである。 重要なのは、コーディがオンデマンドでLLMを微調整したり再トレーニングしたりするために、回答を生成するためのデータが利用されないということだ。 その代わり、LLMに問い合わせる際のコンテキスト参照として機能するため、応答が速くなり、データのプライバシーが保たれる。
ボットが元のLLMデータセットのデータポイントを参照しないようにするには、類似のドメインや概念と重複する可能性があるため、コンテキストを知識ベースに厳密に限定する必要がある。
プロンプト
ナレッジベースが唯一の情報源だ。
または
ナレッジベースに記載されていない限り、あなたはいかなる主張もしたがらない。
ボットがナレッジベースを必要としない場合や、ナレッジベースを参照元として使用する場合もあるだろう。 その場合、プロンプトは大きく変わる。
プロンプト
あなたの主な参照源は知識ベースです。
レスポンスの特徴
ボットが生成する応答の特徴は、ボットの個性によってもある程度コントロールできる。 これは、ボットに期待するトーン、長さ、言語、反応のタイプを定義することで構成されます。
プロンプト
1.トーン: [polite/friendly/professional] 。
2.長さ:回答は、[pointers/paragraphs] 。
3.言語ユーザーへの返信[in the same language/specify different language].
4.タイプ: [creative/professional/precise] 。
さまざまな組み合わせや機能を自由に試してみてほしい。 ここに挙げた例は、あくまでも学習のためのものであり、可能性は無限にある。
メディア
Codyの最も興味深い機能のひとつは、回答にメディアを埋め込めることだ。 画像、GIF、動画などのメディアを埋め込む場合は、メディアを別のドキュメントにインポートするか、メディアを追加できる組み込みのCodyテキストエディタを使って生のドキュメント全体をインポートすることを常にお勧めします。 メディアをコピー/ペーストするか、URLを使ってドキュメントに埋め込むことができます。
メディアのインポートに成功したら、ボットパーソナリティープロンプトで同じものを指定する必要があります。 プロンプトは2つのパートに分けられる:初期化とイラストレーション。
プロンプト
初期化:
適切な場合には、知識ベースから関連する[images/videos/both] 。イラスト
<img> タグを使って画像を追加し、<iframeを使って動画を追加する。>
例えば、こうだ:
<img src=”[Image URL]”>
<iframe src=”[Video URL]”></フレーム>
フォールバック
ボットが、ユーザーからの質問に関連するコンテンツを見つけられないこともあるでしょう。 ユーザーに誤解を与えたり、間違った情報を提供することを避けるために、このようなシナリオに対するフォールバックを定義しておくことは常に安全である(ナレッジベースが存在するユースケースでのみ適用可能)。
プロンプト
1.会話中に「非構造化知識ベース」やファイル名を口にするのは控える。
2.明確な答えが得られない場合、[Define fallback] 。
または
ナレッジ・ベースで関連情報が見つからない場合、またはナレッジ・ベースに含まれていない関連性のない質問をユーザーがした場合、[Define fallback] 。
ステップ(オプション)
ボットに特定の会話のタイムラインやフローに従わせたい場合は、ステップを使って簡単に定義することができます。 このアプローチは、トレーニングやトラブルシューティングの目的でボットを使用する場合に特に有効です。 各ステップは、会話の特定のフェーズまたは段階を表し、進行を制御し、ボットが体系的な方法で必要な情報や支援を提供することを保証することができます。
プロンプト
ユーザーとの会話中は、以下の手順に従ってください:
1. [Step 1]
2. [Step 2]
3. [Step 3]
注:ステップを定義している間、返信を改善するために「逆ベクトル検索」を有効にし、チャット履歴に適切な数のトークンを割り当てることをお勧めします。 これにより、返信を生成する際に、ユーザーの入力とボットの以前の応答を含む会話の履歴を考慮することができる。
データキャプチャー(オプション)
このプロンプトは、会話の流れ(ステップ)と調和しており、ボットのユースケースがサポートや採用のシナリオを中心に展開される場合に特に有益です。 現在のところ、コーディにはデータをキャプチャして分析用に保存できるような長期メモリやデータベース接続はない。 将来的には、関数呼び出しのようなOpenAI APIのより新しいアップデートに伴い、我々は間違いなく、より長期的にデータをキャプチャして保存できるような新しい機能をもたらすでしょう。
今のところ、チャットセクションの「ゲスト」チャットに移動することで、(ウィジェットを介して)ボットユーザーのチャットにアクセスできます。 その後、取得したデータを手動で分析し、さらなる洞察を得ることができる。
プロンプト
ユーザーから以下のデータを収集する:
– [Field 1]
– [Field 2]
– [Field 3]
– [Field 4]
質問は一度にひとつずつ。 必要な情報をすべて収集したら、感謝の言葉を述べ、収集したデータを表示して会話を終える。 覚えておいてほしいのは、あなたの仕事はデータを集めることだけだということだ。
応答フォーマット
Codyのちょっとした気の利いた機能は、マークダウンやHTMLタグを使ってボットの応答をフォーマットできることだ。 ボットのパーソナリティでHTMLまたはマークダウン形式のテンプレートをボットに提供することで、ボットは必要なときにいつでもそれに応じて応答をフォーマットしようとします。
プロンプト
回答形式:
<h1>[Field Name]</h1>
<p>[Field Name]</p>
<p>[Field Name]</p>
*フォーマットはGPT-4に最適
プロンプトの例
リードジェネレーションボットとしてのコーディ
マーケティングボットとしてのコーディ
トレーニングボットとしてのコーディ
プロンプトの詳細については、パラメータ設定とともにプロンプトの詳細が記載された使用例をご覧ください。
結論
Codyの無料プランの場合、ボットがプロンプトに従わなくなったり、コンテキストウィンドウが小さかったり、一貫性がないために、いくつかのパラメータを無視したりする可能性があります。 Codyの使い方を理解し、ご自身のビジネスへの適合性を判断するために、無料プランを試用目的または移行段階としてのみ利用することをお勧めします。
ボット用のプロンプトを作成する際には、簡潔さを維持し、記事に記載されているすべてのパラメータを取り入れないようにすることも重要です。 使用可能なトークン数には限りがあり、パーソナリティ・プロンプトもトークンを消費するため、トークンは慎重に構築する必要がある。 この記事にあるプロンプトは、あなたのニーズや好みに応じて自由に変更してください。 何か新しい発見がありましたか? いつでも私たちと共有してください。
これは、ボットのパーソナリティ作成の広大な風景を紹介したに過ぎない。 LLMは日を追うごとに改善され続けているが、その可能性を十分に生かすにはまだ長い道のりがある。 この旅は私たち全員にとって新しい経験だ。 新しいユースケースやシナリオを実験し、学び、実装し続ける中で、私たちは記事やチュートリアルを通じて、皆さんと共有していきます。 さらに詳しい情報については、ヘルプセンターをご覧ください。また、Discordのコミュニティーに参加して、コーディに関する質問をお気軽にお寄せください。 このような興味深い洞察については、過去のブログもご覧いただきたい。