プリセット変数

プリセット変数とは、プロンプトプリセットに組み込む、ラベル付きの選択肢です。プリセットの作者が一度だけ定義し、そのプリセットを使う人は、チャットに割り当てるときに選択肢を選びます。プロンプトの文面を書き換えずに、1つのプリセットにさまざまな動きをさせたいときに使います。

変数に名前を付け、質問文を書き、選択肢を並べます。次に、プロンプトのどれかのセクションに、その名前を{{tone}}のように二重の波括弧で囲んで書きます。AIが返信を生成するとき、Marinaraは{{tone}}を、ユーザーが選んだ選択肢の値に置き換えます。

プリセット変数にはプロンプトプリセットが必要なので、Roleplayのチャットで使えます。ConversationやGameのチャットでは使えません。これらのチャットは、セクションではなく1つのプロンプトの文章を使うためです。プリセット自体については、Preset Editorとプロンプトの管理を参照してください。

プリセット変数の種類

選択肢が複数ある変数は、デフォルトでは単一選択です。ユーザーは、ラジオボタンとして表示される選択肢から1つを選びます。これを変える設定が3つあります。

種類作り方動作
Boolean Toggle(オンオフの切り替え)変数に選択肢をちょうど1つだけ持たせます。オンオフのスイッチになります。オンにすると選択肢の値を挿入し、オフのときは何も挿入しません。
Multi-Select(複数選択)Multi-Selectをオンにします。ユーザーは選択肢を複数選べます。値は区切り文字でつながれ、デフォルトの区切り文字は, です。Romance、Fantasy、Actionは「Romance, Fantasy, Action」になります。
Random Pick(ランダム選択)Random Pickをオンにします。単一選択の変数では、新しいチャットごとにMarinaraがランダムな選択肢を事前に選び、その選択は変更するまで固定されます。Multi-Selectがオンの場合は、ユーザーが候補群を選び、返信のたびにその中から1つが引かれます。

プリセット変数の追加

  1. Presets(プリセット)パネルを開き、プリセットをクリックしてPreset Editor(プリセットエディター)を開きます。
  2. Sections(セクション)タブに移動し、いちばん下のPreset Variables(プリセット変数)パネルまでスクロールします。
  3. Add Variable(変数の追加)をクリックします。新しい変数のカードが表示されます。クリックして展開します。
  4. Variable Name(変数名)を設定します。この欄には英字、数字、アンダースコアしか残りません。波括弧で囲んで書くのは、この名前です。
  5. Question (shown to user)(ユーザーに表示する質問)を入力します。ユーザーは選ぶときにこれを読みます。
  6. Options(選択肢)の一覧を編集します。各選択肢には、ユーザーに表示されるLabel(ラベル)と、プロンプトに挿入されるテキストであるValue(値)があります。値を空にすると何も挿入されません。
  7. Presentation(表示形式)で、Auto、ボタン形式(RadiosまたはCheckboxes)、省スペース形式(DropdownまたはListbox)のいずれかを選びます。Alphabetical option display(選択肢をアルファベット順に表示)をオンにすると、選択肢がラベル順に並びます。
  8. <kbd>Escape</kbd>を押すか、Done(完了)をクリックします。変更は自動的に保存され、フッターには「Changes auto-save. Press Escape to close.」と表示されます。

次に、プロンプトのセクションに、その名前を波括弧で囲んで書きます。たとえば、セクションに{{tone}}と書き、toneという名前の変数を作ってGentleとHarshの選択肢を用意します。ユーザーがHarshを選ぶと、そのセクションにHarshの値が入ります。

変数には常に選択肢が1つ以上残ります。最後の1つを削除しようとしても、Marinaraはそれを残します。

変数に答える

変数を持つプリセットをチャットに割り当てると、Configure Preset Variables(プリセット変数の設定)ウィンドウが開きます。ウィンドウには「This preset has configurable variables. Select option(s) for each to customize your experience.」と表示されます。

各変数には、質問文、{{tone}}のようなトークン、該当する場合はバッジ(Boolean toggle、Multi-select、Random pick)が表示されます。

  1. 変数ごとに値を選びます。
  2. Confirm Choices(選択を確定)をクリックします。

ほかのボタンは次のとおりです。

Confirm Choicesは、単一選択の変数すべてに値が入るまで押せません。Boolean toggleとMulti-selectの変数は、何も選んでいなくても妨げになりません。別のプリセットに切り替えると、前のプリセットで選んだ内容は消えます。

後から選び直す

選んでいるプリセットに変数があるときは、Chat Settings(チャット設定)のPrompt Preset(プロンプトプリセット)セクションに、鉛筆のボタンEdit preset variables(プリセット変数の編集)が表示されます。これをクリックすると、いまの選択内容が入った状態でウィンドウがもう一度開きます。

変数ではない名前

Marinaraは、まず{{user}}や{{char}}などの組み込みマクロを解決します。次に、それ以外の{{NAME}}(英字、数字、アンダースコア)をプリセット変数と照合します。一致するものがなければ、Chat SettingsのChat Variables(チャット変数)セクションにある、チャット自身の変数を調べます。両方に同じ名前がある場合は、プリセット変数が優先されます。どちらにもその名前がなければ、テキストは書いたままの形で残り、エラーにはなりません。プロンプトマクロを参照してください。

選択肢内の判定ブロック

選択肢の値には、ほかのプロンプトテキストと同様に、判定ブロック{{#if decision:"..."}}を含められます。判定の対象になるのはチャットで選択した選択肢だけで、Decision statements per turn(1ターンあたりの判定文数)に数えられます。Random Pickの変数では、どれが引かれる可能性もあるため、候補群のすべての選択肢が判定の対象になります。Decisionモデルへの問い合わせを参照してください。

変数の値は、その{{name}}がある位置に入ります。プリセットの先頭近くで判定によって値が変わると、サービスのプロンプトキャッシュの再利用が大きく失われることがあります。頻繁に変わる内容は後ろに置いてください。判定ブロックとプロンプトキャッシュを参照してください。

挨拶メッセージ

プリセット変数は、キャラクターの挨拶メッセージでも展開されます。挨拶メッセージの作成後に確定した選択も反映されます。元の挨拶メッセージは、マクロを保ったまま編集できます。

関連ガイド