# コンテキストテンプレート (Context Template)

通常、AI モデルでは、キャラクター データを特定の方法で提供する必要があります。SillyTavern には、異なるモデルのプリメードされた変換ルールのリストが含まれていますが、必要に応じてカスタマイズできます。

これらの設定は「Advanced Formatting」パネルで編集します。

# ストーリー文字列 (Story String)

このフィールドは、プロンプト前置き(内部的には「story string」として知られている)のテンプレートです。これは、テキスト補完とインストラクト モデルの Character Cards で定義された情報を追加するための主な方法です。

テンプレートは Handlebars 構文、カスタム テキスト注入またはフォーマット、および任意の macros をサポートしています。言語リファレンスは https://handlebarsjs.com/guide/ を参照してください。

Handlebars エバリュエーターに次のパラメーターを提供します(ダブル中括弧で囲まれています):

  1. {{anchorBefore}}: 「Before Story String」の位置を使用するように設定されたプロンプト。
  2. {{anchorAfter}}: 「After Story String」の位置を使用するように設定されたプロンプト。
  3. {{description}}: キャラクターの Description
  4. {{scenario}}: キャラクターの Scenario
  5. {{personality}}: キャラクターの Personality
  6. {{system}}: システム プロンプト またはキャラクターの main prompt オーバーライド(存在し、「Prefer Char. Prompt」がユーザー設定で有効な場合)。
  7. {{persona}}: 選択した ペルソナの説明
  8. {{char}}: キャラクター名。
  9. {{user}}: 選択したペルソナの名前。
  10. {{wiBefore}} または {{loreBefore}}: 「Before Char Defs」に設定された位置を持つ統合アクティブ化 World Info エントリ。
  11. {{wiAfter}} または {{loreAfter}}: 「After Char Defs」に設定された位置を持つ統合アクティブ化 World Info エントリ。
  12. {{mesExamples}}: (オプション)キャラクターの Example Dialogues、instruct 形式で区切り記号を使用してフォーマットされています。
  13. {{mesExamplesRaw}}: キャラクターの Example Dialogues (フォーマットなし)。

特別な {{trim}} マクロがサポートされており、それを取り囲む改行を削除します。テキストの一部を前の行で改行で分離しないようにしたい場合はそれを使用してください(spaces トリミングされません)。

WARNING: 上記のいずれかのパラメーターがストーリー文字列テンプレートから欠落している場合、プロンプトにはまったく送信されません。

# プロンプトアンカー (Prompt Anchors)

{{anchorBefore}}{{anchorAfter}} は、さまざまな拡張機能と雑多な機能によって追加されたプロンプトの汎用プレースホルダーです(例:

# ストーリー文字列の位置 (Story String position)

デフォルトでは、レンダリングされたストーリー文字列(すべてのプレースホルダーが置き換えられます)がプロンプトの非常に最初に配置され、その後に例のメッセージと表示されるチャット履歴が続きます。

または、「In-chat @ Depth」オプションを選択することで、チャット コンテキスト内の特定の深さにストーリー文字列を配置する動的な位置に移動できます。

# ストーリー文字列のラッピング (Story String wrapping)

  • Default position: レンダリングされたストーリー文字列は Story String Sequences で定義されたシーケンスを使用してラップされます。
  • In-chat @ Depth position: レンダリングされたストーリー文字列は、選択したロール(デフォルト:System)用に Chat Messages Sequences で定義されたシーケンスを使用してラップされます。

# 例の区切り文字 (Example Separator)

ブロック ヘッダーおよび例のダイアログ ブロック間の区切り文字として使用されます。例のダイアログ内の <START> タグのインスタンスは、このフィールドの内容に置き換えられます。

# チャット開始 (Chat Start)

レンダリングされたストーリー文字列の後およびサンプル ダイアログ ブロックの後に挿入されますが、コンテキスト内の最初のメッセージの前に挿入されます。

# 停止文字列としての区切り文字 (Separators as Stop Strings)

「Example Separator」と「Chat Start」を停止文字列のリストに追加します。

モデルが例のダイアログの全ブロックをハルシネートする傾向がある場合や、区切り文字が先行する場合に役立ちます。

# 停止文字列としての名前 (Names as Stop Strings)

キャラクター名とユーザー ペルソナ名を停止文字列のリストに追加します。

モデルの詐称を防ぐために、オンに保つことをお勧めします。

# プロンプトに常にキャラクター名を追加 (Always add character's name to prompt)

キャラクターの名前をプロンプトに追加して、モデルにキャラクターとしてメッセージを完成させるように強制します:

** OTHER CONTEXT HERE **
Character: