Merge branch 'staging' into welcome-screen

cd0a4959ad2167aee416a56e249eb22235fe89a4

Cohee <18619528+Cohee1207@users.noreply.github.com>

20 files changed, +123 -56Showing whitespace changes
public/index.html+12 -8
@@ -6448,21 +6448,19 @@
6448 <label for="completion_prompt_manager_popup_entry_form_name">6448 <label for="completion_prompt_manager_popup_entry_form_name">
6449 <span data-i18n="prompt_manager_name">Name</span>6449 <span data-i18n="prompt_manager_name">Name</span>
6450 </label>6450 </label>
6451 <div class="text_muted" data-i18n="A name for this prompt.">A name for this prompt.</div>
6452 <input id="completion_prompt_manager_popup_entry_form_name" class="text_pole" type="text" name="name" />6451 <input id="completion_prompt_manager_popup_entry_form_name" class="text_pole" type="text" name="name" />
6452 <div class="text_muted" data-i18n="A name for this prompt.">A name for this prompt.</div>
6453 </div>6453 </div>
6454 <div class="completion_prompt_manager_popup_entry_form_control flex1">6454 <div class="completion_prompt_manager_popup_entry_form_control flex1">
6455 <label for="completion_prompt_manager_popup_entry_form_role">6455 <label for="completion_prompt_manager_popup_entry_form_role">
6456 <span data-i18n="Role">Role</span>6456 <span data-i18n="Role">Role</span>
6457 </label>6457 </label>
6458 <div class="text_muted">
6459 <span data-i18n="To whom this message will be attributed.">To whom this message will be attributed.</span>
6460 </div>
6461 <select id="completion_prompt_manager_popup_entry_form_role" class="text_pole" name="role">6458 <select id="completion_prompt_manager_popup_entry_form_role" class="text_pole" name="role">
6462 <option data-i18n="System" value="system">System</option>6459 <option data-i18n="System" value="system">System</option>
6463 <option data-i18n="User" value="user">User</option>6460 <option data-i18n="User" value="user">User</option>
6464 <option data-i18n="AI Assistant" value="assistant">AI Assistant</option>6461 <option data-i18n="AI Assistant" value="assistant">AI Assistant</option>
6465 </select>6462 </select>
6463 <div class="text_muted" data-i18n="To whom this message will be attributed.">To whom this message will be attributed.</div>
6466 </div>6464 </div>
6467 </div>6465 </div>
6468 <div class="flex-container gap10px">6466 <div class="flex-container gap10px">
@@ -6470,18 +6468,25 @@
6470 <label for="completion_prompt_manager_popup_entry_form_injection_position">6468 <label for="completion_prompt_manager_popup_entry_form_injection_position">
6471 <span data-i18n="prompt_manager_position">Position</span>6469 <span data-i18n="prompt_manager_position">Position</span>
6472 </label>6470 </label>
6473 <div class="text_muted" data-i18n="Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.">Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.</div>
6474 <select id="completion_prompt_manager_popup_entry_form_injection_position" class="text_pole" name="injection_position">6471 <select id="completion_prompt_manager_popup_entry_form_injection_position" class="text_pole" name="injection_position">
6475 <option data-i18n="prompt_manager_relative" value="0">Relative</option>6472 <option data-i18n="prompt_manager_relative" value="0">Relative</option>
6476 <option data-i18n="prompt_manager_in_chat" value="1">In-chat</option>6473 <option data-i18n="prompt_manager_in_chat" value="1">In-chat</option>
6477 </select>6474 </select>
6475 <div class="text_muted" data-i18n="Relative (to other prompts in prompt manager) or In-chat @ Depth.">Relative (to other prompts in prompt manager) or In-chat @ Depth.</div>
6478 </div>6476 </div>
6479 <div id="completion_prompt_manager_depth_block" class="completion_prompt_manager_popup_entry_form_control flex1">6477 <div id="completion_prompt_manager_depth_block" class="completion_prompt_manager_popup_entry_form_control flex1">
6480 <label for="completion_prompt_manager_popup_entry_form_injection_depth">6478 <label for="completion_prompt_manager_popup_entry_form_injection_depth">
6481 <span data-i18n="prompt_manager_depth">Depth</span>6479 <span data-i18n="prompt_manager_depth">Depth</span>
6482 </label>6480 </label>
6483 <div class="text_muted" data-i18n="Injection depth. 0 = after the last message, 1 = before the last message, etc.">Injection depth. 0 = after the last message, 1 = before the last message, etc.</div>
6484 <input id="completion_prompt_manager_popup_entry_form_injection_depth" class="text_pole" type="number" name="injection_depth" min="0" max="9999" value="4" />6481 <input id="completion_prompt_manager_popup_entry_form_injection_depth" class="text_pole" type="number" name="injection_depth" min="0" max="9999" value="4" />
6482 <div class="text_muted" data-i18n="0 = after the last message, 1 = before the last message, etc.">0 = after the last message, 1 = before the last message, etc.</div>
6483 </div>
6484 <div id="completion_prompt_manager_order_block" class="completion_prompt_manager_popup_entry_form_control flex1">
6485 <label for="completion_prompt_manager_popup_entry_form_injection_order">
6486 <span data-i18n="prompt_manager_order">Order</span>
6487 </label>
6488 <input id="completion_prompt_manager_popup_entry_form_injection_order" class="text_pole" type="number" name="injection_order" min="0" max="9999" value="0" />
6489 <div class="text_muted" data-i18n="Ordered from high/top to low/bottom, and at same order: System, User, Assistant.">Ordered from high/top to low/bottom, and at same order: System, User, Assistant.</div>
6485 </div>6490 </div>
6486 </div>6491 </div>
6487 <div class="completion_prompt_manager_popup_entry_form_control">6492 <div class="completion_prompt_manager_popup_entry_form_control">
@@ -6490,7 +6495,6 @@
6490 <label for="completion_prompt_manager_popup_entry_form_prompt">6495 <label for="completion_prompt_manager_popup_entry_form_prompt">
6491 <span data-i18n="Prompt">Prompt</span>6496 <span data-i18n="Prompt">Prompt</span>
6492 </label>6497 </label>
6493 <div class="text_muted" data-i18n="The prompt to be sent.">The prompt to be sent.</div>
6494 </div>6498 </div>
6495 <div id="completion_prompt_manager_forbid_overrides_block">6499 <div id="completion_prompt_manager_forbid_overrides_block">
6496 <label class="checkbox_label" for="completion_prompt_manager_popup_entry_form_forbid_overrides" title="This prompt cannot be overridden by character cards, even if overrides are preferred." data-i18n="[title]This prompt cannot be overridden by character cards, even if overrides are preferred.">6500 <label class="checkbox_label" for="completion_prompt_manager_popup_entry_form_forbid_overrides" title="This prompt cannot be overridden by character cards, even if overrides are preferred." data-i18n="[title]This prompt cannot be overridden by character cards, even if overrides are preferred.">
@@ -6504,7 +6508,7 @@
6504 <span>&nbsp;</span>6508 <span>&nbsp;</span>
6505 <span id="completion_prompt_manager_popup_entry_source"></span>6509 <span id="completion_prompt_manager_popup_entry_source"></span>
6506 </div>6510 </div>
6507 <textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">6511 <textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt" placeholder="The prompt to be sent." data-i18n="[placeholder]The prompt to be sent."></textarea>
6508 </textarea>6512 </textarea>
6509 </div>6513 </div>
6510 <div class="completion_prompt_manager_popup_entry_form_footer">6514 <div class="completion_prompt_manager_popup_entry_form_footer">
public/locales/ar-sa.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "لمن ستنسب هذه الرسالة؟",1009 "To whom this message will be attributed.": "لمن ستنسب هذه الرسالة؟",
1010 "AI Assistant": "مساعد الذكاء الاصطناعي",1010 "AI Assistant": "مساعد الذكاء الاصطناعي",
1011 "prompt_manager_position": "موضع",1011 "prompt_manager_position": "موضع",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "موضع الحقن. بجوار المطالبات الأخرى (نسبية) أو داخل الدردشة (مطلقة).",1012 "Next to other prompts (relative) or in-chat (absolute).": "موضع الحقن. بجوار المطالبات الأخرى (نسبية) أو داخل الدردشة (مطلقة).",
1013 "prompt_manager_relative": "نسبي",1013 "prompt_manager_relative": "نسبي",
1014 "prompt_manager_depth": "عمق",1014 "prompt_manager_depth": "عمق",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "عمق الحقن. 0 = بعد الرسالة الأخيرة، 1 = قبل الرسالة الأخيرة، الخ.",1015 "0 = after the last message, 1 = before the last message, etc.": "عمق الحقن. 0 = بعد الرسالة الأخيرة، 1 = قبل الرسالة الأخيرة، الخ.",
1016 "Prompt": "موضوع",1016 "Prompt": "موضوع",
1017 "The prompt to be sent.": "المطالبة ليتم إرسالها.",1017 "The prompt to be sent.": "المطالبة ليتم إرسالها.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "لا يمكن تجاوز هذه المطالبة بواسطة بطاقات الأحرف، حتى إذا كان التجاوزات مفضلاً.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "لا يمكن تجاوز هذه المطالبة بواسطة بطاقات الأحرف، حتى إذا كان التجاوزات مفضلاً.",
public/locales/de-de.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "Wem diese Nachricht zugeschrieben wird.",1009 "To whom this message will be attributed.": "Wem diese Nachricht zugeschrieben wird.",
1010 "AI Assistant": "KI-Assistent",1010 "AI Assistant": "KI-Assistent",
1011 "prompt_manager_position": "Position",1011 "prompt_manager_position": "Position",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Injektionsposition. Neben anderen Eingabeaufforderungen (relativ) oder im Chat (absolut).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Neben anderen Eingabeaufforderungen (relativ) oder im Chat (absolut).",
1013 "prompt_manager_relative": "Relativ",1013 "prompt_manager_relative": "Relativ",
1014 "prompt_manager_depth": "Tiefe",1014 "prompt_manager_depth": "Tiefe",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Injektionstiefe. 0 = nach der letzten Nachricht, 1 = vor der letzten Nachricht usw.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = nach der letzten Nachricht, 1 = vor der letzten Nachricht usw.",
1016 "Prompt": "Aufforderung",1016 "Prompt": "Aufforderung",
1017 "The prompt to be sent.": "Die zu sendende Eingabeaufforderung.",1017 "The prompt to be sent.": "Die zu sendende Eingabeaufforderung.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Diese Eingabeaufforderung kann nicht durch Charakterkarten überschrieben werden, selbst wenn dies bevorzugt wird.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Diese Eingabeaufforderung kann nicht durch Charakterkarten überschrieben werden, selbst wenn dies bevorzugt wird.",
public/locales/es-es.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "A quién se le atribuirá este mensaje.",1009 "To whom this message will be attributed.": "A quién se le atribuirá este mensaje.",
1010 "AI Assistant": "Asistente de IA",1010 "AI Assistant": "Asistente de IA",
1011 "prompt_manager_position": "Posición",1011 "prompt_manager_position": "Posición",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posición de inyección. Junto a otras indicaciones (relativa) o en el chat (absoluta).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Junto a otras indicaciones (relativa) o en el chat (absoluta).",
1013 "prompt_manager_relative": "Relativo",1013 "prompt_manager_relative": "Relativo",
1014 "prompt_manager_depth": "Profundidad",1014 "prompt_manager_depth": "Profundidad",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profundidad de inyección. 0 = después del último mensaje, 1 = antes del último mensaje, etc.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = después del último mensaje, 1 = antes del último mensaje, etc.",
1016 "Prompt": "Indicar",1016 "Prompt": "Indicar",
1017 "The prompt to be sent.": "El mensaje que se enviará.",1017 "The prompt to be sent.": "El mensaje que se enviará.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este mensaje no puede ser anulado por tarjetas de personaje, incluso si se prefieren las anulaciones.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este mensaje no puede ser anulado por tarjetas de personaje, incluso si se prefieren las anulaciones.",
public/locales/fr-fr.json+2 -2
@@ -950,7 +950,7 @@
950 "prompt_manager_position": "Position",950 "prompt_manager_position": "Position",
951 "prompt_manager_relative": "Relatif",951 "prompt_manager_relative": "Relatif",
952 "prompt_manager_depth": "Profondeur",952 "prompt_manager_depth": "Profondeur",
953 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profondeur d'injection. 0 = après le dernier message, 1 = avant le dernier message, etc.",953 "0 = after the last message, 1 = before the last message, etc.": "0 = après le dernier message, 1 = avant le dernier message, etc.",
954 "Prompt": "Prompt",954 "Prompt": "Prompt",
955 "The prompt to be sent.": "Le prompt à envoyer.",955 "The prompt to be sent.": "Le prompt à envoyer.",
956 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ce prompt ne peut pas être remplacé par les cartes de personnage, même si les remplacements sont préférés.",956 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ce prompt ne peut pas être remplacé par les cartes de personnage, même si les remplacements sont préférés.",
@@ -1544,7 +1544,7 @@
1544 "Filter to Characters or Tags": "Filtre sur les personnages ou les tags",1544 "Filter to Characters or Tags": "Filtre sur les personnages ou les tags",
1545 "Switch the Character/Tags filter around to exclude the listed characters and tags from matching for this entry": "Changez le filtre Personnages/Tags pour exclure les personnages et tags listés de la correspondance pour cette entrée.",1545 "Switch the Character/Tags filter around to exclude the listed characters and tags from matching for this entry": "Changez le filtre Personnages/Tags pour exclure les personnages et tags listés de la correspondance pour cette entrée.",
1546 "Exclude": "Exclure",1546 "Exclude": "Exclure",
1547 "Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Position d'injection. Relative (par rapport à d'autres prompts dans le gestionnaire de prompts) ou In-chat @ Depth.",1547 "Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Relative (par rapport à d'autres prompts dans le gestionnaire de prompts) ou In-chat @ Depth.",
1548 "prompt_manager_in_chat": "In-chat",1548 "prompt_manager_in_chat": "In-chat",
1549 "The content of this prompt is pulled from elsewhere and cannot be edited here.": "Le contenu de ce message est tiré d'autres sources et ne peut être modifié ici..",1549 "The content of this prompt is pulled from elsewhere and cannot be edited here.": "Le contenu de ce message est tiré d'autres sources et ne peut être modifié ici..",
1550 "Open checkpoint chat\nShift+Click to replace the existing checkpoint with a new one": "Cliquer pour ouvrir le chat du point de contrôle\nShift+Click pour remplacer le point de contrôle existant par un nouveau.",1550 "Open checkpoint chat\nShift+Click to replace the existing checkpoint with a new one": "Cliquer pour ouvrir le chat du point de contrôle\nShift+Click pour remplacer le point de contrôle existant par un nouveau.",
public/locales/is-is.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "Hverjum þessi skilaboð verða eignuð.",1009 "To whom this message will be attributed.": "Hverjum þessi skilaboð verða eignuð.",
1010 "AI Assistant": "AI aðstoðarmaður",1010 "AI Assistant": "AI aðstoðarmaður",
1011 "prompt_manager_position": "Staða",1011 "prompt_manager_position": "Staða",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Inndælingarstaða. Við hliðina á öðrum leiðbeiningum (afstætt) eða í spjalli (algert).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Við hliðina á öðrum leiðbeiningum (afstætt) eða í spjalli (algert).",
1013 "prompt_manager_relative": "Aðstandandi",1013 "prompt_manager_relative": "Aðstandandi",
1014 "prompt_manager_depth": "Dýpt",1014 "prompt_manager_depth": "Dýpt",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Inndælingardýpt. 0 = eftir síðustu skilaboð, 1 = fyrir síðustu skilaboð o.s.frv.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = eftir síðustu skilaboð, 1 = fyrir síðustu skilaboð o.s.frv.",
1016 "Prompt": "Ábending",1016 "Prompt": "Ábending",
1017 "The prompt to be sent.": "Tilvitnunin sem á að senda.",1017 "The prompt to be sent.": "Tilvitnunin sem á að senda.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ekki er hægt að hnekkja þessari vísbendingu með persónuspjöldum, jafnvel þótt hnekkingar séu æskilegar.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Ekki er hægt að hnekkja þessari vísbendingu með persónuspjöldum, jafnvel þótt hnekkingar séu æskilegar.",
public/locales/it-it.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "A chi verrà attribuito questo messaggio.",1009 "To whom this message will be attributed.": "A chi verrà attribuito questo messaggio.",
1010 "AI Assistant": "Assistente AI",1010 "AI Assistant": "Assistente AI",
1011 "prompt_manager_position": "Posizione",1011 "prompt_manager_position": "Posizione",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posizione di iniezione. Accanto ad altri suggerimenti (relativo) o in chat (assoluto).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Accanto ad altri suggerimenti (relativo) o in chat (assoluto).",
1013 "prompt_manager_relative": "Parente",1013 "prompt_manager_relative": "Parente",
1014 "prompt_manager_depth": "Profondità",1014 "prompt_manager_depth": "Profondità",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profondità di iniezione. 0 = dopo l'ultimo messaggio, 1 = prima dell'ultimo messaggio, ecc.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = dopo l'ultimo messaggio, 1 = prima dell'ultimo messaggio, ecc.",
1016 "Prompt": "Prompt",1016 "Prompt": "Prompt",
1017 "The prompt to be sent.": "La richiesta da inviare.",1017 "The prompt to be sent.": "La richiesta da inviare.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Questo prompt non può essere sostituito dalle schede personaggio, anche se si preferisce sostituirlo.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Questo prompt non può essere sostituito dalle schede personaggio, anche se si preferisce sostituirlo.",
public/locales/ja-jp.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "このメッセージの送信者。",1009 "To whom this message will be attributed.": "このメッセージの送信者。",
1010 "AI Assistant": "AIアシスタント",1010 "AI Assistant": "AIアシスタント",
1011 "prompt_manager_position": "位置",1011 "prompt_manager_position": "位置",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "挿入位置。他のプロンプトの隣 (相対) またはチャット内 (絶対)。",1012 "Next to other prompts (relative) or in-chat (absolute).": "他のプロンプトの隣 (相対) またはチャット内 (絶対)。",
1013 "prompt_manager_relative": "相対的",1013 "prompt_manager_relative": "相対的",
1014 "prompt_manager_depth": "深さ",1014 "prompt_manager_depth": "深さ",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "注入の深さ。0 = 最後のメッセージの後、1 = 最後のメッセージの前など。",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = 最後のメッセージの後、1 = 最後のメッセージの前など。",
1016 "Prompt": "プロンプト",1016 "Prompt": "プロンプト",
1017 "The prompt to be sent.": "送信されるプロンプト。",1017 "The prompt to be sent.": "送信されるプロンプト。",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "このプロンプトは、オーバーライドが優先される場合でも、キャラクター カードによってオーバーライドすることはできません。",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "このプロンプトは、オーバーライドが優先される場合でも、キャラクター カードによってオーバーライドすることはできません。",
public/locales/ko-kr.json+3 -3
@@ -1026,11 +1026,11 @@
1026 "To whom this message will be attributed.": "해당 프롬프트에 부여할 역할은 무엇인가요?",1026 "To whom this message will be attributed.": "해당 프롬프트에 부여할 역할은 무엇인가요?",
1027 "AI Assistant": "AI 어시스턴트",1027 "AI Assistant": "AI 어시스턴트",
1028 "prompt_manager_position": "위치",1028 "prompt_manager_position": "위치",
1029 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "주입 위치. 다른 프롬프트 옆(상대적) 또는 채팅 내(절대적).",1029 "Next to other prompts (relative) or in-chat (absolute).": "다른 프롬프트 옆(상대적) 또는 채팅 내(절대적).",
1030 "prompt_manager_relative": "상대적인",1030 "prompt_manager_relative": "상대적인",
1031 "prompt_manager_in_chat": "깊이에 따라",1031 "prompt_manager_in_chat": "깊이에 따라",
1032 "prompt_manager_depth": "깊이",1032 "prompt_manager_depth": "깊이",
1033 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "주입 깊이. 0 = 마지막 메시지 뒤, 1 = 마지막 메시지 앞 등",1033 "0 = after the last message, 1 = before the last message, etc.": "0 = 마지막 메시지 뒤, 1 = 마지막 메시지 앞 등",
1034 "Prompt": "프롬프트",1034 "Prompt": "프롬프트",
1035 "The prompt to be sent.": "보내질 프롬프트 내용을 작성하는 부분입니다.",1035 "The prompt to be sent.": "보내질 프롬프트 내용을 작성하는 부분입니다.",
1036 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "이 프롬프트는 고급 정의에서 재정의가 선호되는 경우에도 재정의될 수 없습니다.",1036 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "이 프롬프트는 고급 정의에서 재정의가 선호되는 경우에도 재정의될 수 없습니다.",
@@ -1500,7 +1500,7 @@
1500 "enable_functions_desc_1": "다양한 확장 프로그램에서 추가 기능을 제공하기 위한",1500 "enable_functions_desc_1": "다양한 확장 프로그램에서 추가 기능을 제공하기 위한",
1501 "enable_functions_desc_2": "기능 도구",1501 "enable_functions_desc_2": "기능 도구",
1502 "enable_functions_desc_3": "를 사용할 수 있게 합니다.",1502 "enable_functions_desc_3": "를 사용할 수 있게 합니다.",
1503 "Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "삽입 깊이. 상대적인 (프롬프트 관리 목록에 있는 다른 프롬프트들에 비해) 또는 @Depth 깊이에 따라.",1503 "Relative (to other prompts in prompt manager) or In-chat @ Depth.": "상대적인 (프롬프트 관리 목록에 있는 다른 프롬프트들에 비해) 또는 @Depth 깊이에 따라.",
1504 "Instruct Template": "지시 템플릿",1504 "Instruct Template": "지시 템플릿",
1505 "System Message Sequences": "시스템 메시지 시퀀스",1505 "System Message Sequences": "시스템 메시지 시퀀스",
1506 "System Prompt Sequences": "시스템 프롬프트 시퀀스",1506 "System Prompt Sequences": "시스템 프롬프트 시퀀스",
public/locales/nl-nl.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "Aan wie dit bericht wordt toegeschreven.",1009 "To whom this message will be attributed.": "Aan wie dit bericht wordt toegeschreven.",
1010 "AI Assistant": "AI-assistent",1010 "AI Assistant": "AI-assistent",
1011 "prompt_manager_position": "Positie",1011 "prompt_manager_position": "Positie",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Injectiepositie. Naast andere prompts (relatief) of in-chat (absoluut).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Naast andere prompts (relatief) of in-chat (absoluut).",
1013 "prompt_manager_relative": "Familielid",1013 "prompt_manager_relative": "Familielid",
1014 "prompt_manager_depth": "Diepte",1014 "prompt_manager_depth": "Diepte",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Injectiediepte. 0 = na het laatste bericht, 1 = voor het laatste bericht, etc.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = na het laatste bericht, 1 = voor het laatste bericht, etc.",
1016 "Prompt": "Prompt",1016 "Prompt": "Prompt",
1017 "The prompt to be sent.": "De prompt die verzonden moet worden.",1017 "The prompt to be sent.": "De prompt die verzonden moet worden.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Deze prompt kan niet worden overschreven door karakterkaarten, zelfs als overschrijvingen de voorkeur hebben.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Deze prompt kan niet worden overschreven door karakterkaarten, zelfs als overschrijvingen de voorkeur hebben.",
public/locales/pt-pt.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "A quem esta mensagem será atribuída.",1009 "To whom this message will be attributed.": "A quem esta mensagem será atribuída.",
1010 "AI Assistant": "Assistente de IA",1010 "AI Assistant": "Assistente de IA",
1011 "prompt_manager_position": "Posição",1011 "prompt_manager_position": "Posição",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Posição de injeção. Ao lado de outras solicitações (relativas) ou no chat (absolutas).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Ao lado de outras solicitações (relativas) ou no chat (absolutas).",
1013 "prompt_manager_relative": "Relativo",1013 "prompt_manager_relative": "Relativo",
1014 "prompt_manager_depth": "Profundidade",1014 "prompt_manager_depth": "Profundidade",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Profundidade de injeção. 0 = após a última mensagem, 1 = antes da última mensagem, etc.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = após a última mensagem, 1 = antes da última mensagem, etc.",
1016 "Prompt": "Prompt",1016 "Prompt": "Prompt",
1017 "The prompt to be sent.": "O prompt a ser enviado.",1017 "The prompt to be sent.": "O prompt a ser enviado.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este prompt não pode ser substituído por cartas de personagem, mesmo que as substituições sejam preferidas.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Este prompt não pode ser substituído por cartas de personagem, mesmo que as substituições sejam preferidas.",
public/locales/ru-ru.json+3 -3
@@ -1012,10 +1012,10 @@
1012 "To whom this message will be attributed.": "От чьего лица будет отправляться сообщение.",1012 "To whom this message will be attributed.": "От чьего лица будет отправляться сообщение.",
1013 "AI Assistant": "ИИ-ассистент",1013 "AI Assistant": "ИИ-ассистент",
1014 "prompt_manager_position": "Точка инжекта",1014 "prompt_manager_position": "Точка инжекта",
1015 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Как рассчитывать позицию для инжекта. Она может располагаться по отношению к другим промптам (относительная) либо по отношению к чату (абсолютная).",1015 "Next to other prompts (relative) or in-chat (absolute).": "Она может располагаться по отношению к другим промптам (относительная) либо по отношению к чату (абсолютная).",
1016 "prompt_manager_relative": "Относительная",1016 "prompt_manager_relative": "Относительная",
1017 "prompt_manager_depth": "Глубина",1017 "prompt_manager_depth": "Глубина",
1018 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Глубина вставки. 0 = после последнего сообщения, 1 = перед последним сообщением, и т.д.",1018 "0 = after the last message, 1 = before the last message, etc.": "0 = после последнего сообщения, 1 = перед последним сообщением, и т.д.",
1019 "The prompt to be sent.": "Текст промпта.",1019 "The prompt to be sent.": "Текст промпта.",
1020 "prompt_manager_forbid_overrides": "Запретить перезапись",1020 "prompt_manager_forbid_overrides": "Запретить перезапись",
1021 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Карточка персонажа не сможет перезаписать этот промпт, даже если настройки отдают приоритет именно ей.",1021 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Карточка персонажа не сможет перезаписать этот промпт, даже если настройки отдают приоритет именно ей.",
@@ -1620,7 +1620,7 @@
1620 "Using a proxy that you're not running yourself is a risk to your data privacy.": "Помните, что используя чужую прокси, вы подвергаете риску конфиденциальность своих данных.",1620 "Using a proxy that you're not running yourself is a risk to your data privacy.": "Помните, что используя чужую прокси, вы подвергаете риску конфиденциальность своих данных.",
1621 "ANY support requests will be REFUSED if you are using a proxy.": "НЕ РАССЧИТЫВАЙТЕ на нашу поддержку, если используете прокси.",1621 "ANY support requests will be REFUSED if you are using a proxy.": "НЕ РАССЧИТЫВАЙТЕ на нашу поддержку, если используете прокси.",
1622 "Do not proceed if you do not agree to this!": "Не продолжайте, если не согласны с этими условиями!",1622 "Do not proceed if you do not agree to this!": "Не продолжайте, если не согласны с этими условиями!",
1623 "Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Как рассчитывать позицию, на которую вставляется данный промпт. Относительно других промтов в менеджере, либо на опред. глубину в чате.",1623 "Relative (to other prompts in prompt manager) or In-chat @ Depth.": "Относительно других промтов в менеджере, либо на опред. глубину в чате.",
1624 "prompt_manager_in_chat": "На глубине в чате",1624 "prompt_manager_in_chat": "На глубине в чате",
1625 "01.AI API Key": "Ключ от API 01.AI",1625 "01.AI API Key": "Ключ от API 01.AI",
1626 "01.AI Model": "Модель 01.AI",1626 "01.AI Model": "Модель 01.AI",
public/locales/uk-ua.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "Кому буде віднесено це повідомлення.",1009 "To whom this message will be attributed.": "Кому буде віднесено це повідомлення.",
1010 "AI Assistant": "ШІ помічник",1010 "AI Assistant": "ШІ помічник",
1011 "prompt_manager_position": "Позиція",1011 "prompt_manager_position": "Позиція",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Позиція ін'єкції. Поруч з іншими підказками (відносні) або в чаті (абсолютні).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Поруч з іншими підказками (відносні) або в чаті (абсолютні).",
1013 "prompt_manager_relative": "Відносна",1013 "prompt_manager_relative": "Відносна",
1014 "prompt_manager_depth": "Глибина",1014 "prompt_manager_depth": "Глибина",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Глибина ін'єкції. 0 = після останнього повідомлення, 1 = перед останнім повідомленням тощо.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = після останнього повідомлення, 1 = перед останнім повідомленням тощо.",
1016 "Prompt": "Запит",1016 "Prompt": "Запит",
1017 "The prompt to be sent.": "Підказка для надсилання.",1017 "The prompt to be sent.": "Підказка для надсилання.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Це підказка не може бути перевизначено картками символів, навіть якщо перевизначення є кращим.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Це підказка не може бути перевизначено картками символів, навіть якщо перевизначення є кращим.",
public/locales/vi-vn.json+2 -2
@@ -1009,10 +1009,10 @@
1009 "To whom this message will be attributed.": "Tin nhắn này sẽ được quy cho ai.",1009 "To whom this message will be attributed.": "Tin nhắn này sẽ được quy cho ai.",
1010 "AI Assistant": "Trợ lý AI",1010 "AI Assistant": "Trợ lý AI",
1011 "prompt_manager_position": "Chức vụ",1011 "prompt_manager_position": "Chức vụ",
1012 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "Vị trí tiêm. Bên cạnh các Prompt khác (tương đối) hoặc trong trò chuyện (tuyệt đối).",1012 "Next to other prompts (relative) or in-chat (absolute).": "Bên cạnh các Prompt khác (tương đối) hoặc trong trò chuyện (tuyệt đối).",
1013 "prompt_manager_relative": "Liên quan đến",1013 "prompt_manager_relative": "Liên quan đến",
1014 "prompt_manager_depth": "Chiều sâu",1014 "prompt_manager_depth": "Chiều sâu",
1015 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "Độ sâu phun. 0 = sau tin nhắn cuối cùng, 1 = trước tin nhắn cuối cùng, v.v.",1015 "0 = after the last message, 1 = before the last message, etc.": "0 = sau tin nhắn cuối cùng, 1 = trước tin nhắn cuối cùng, v.v.",
1016 "Prompt": "Prompt",1016 "Prompt": "Prompt",
1017 "The prompt to be sent.": "Lời nhắc được gửi đi.",1017 "The prompt to be sent.": "Lời nhắc được gửi đi.",
1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Lời nhắc này không thể bị ghi đè bằng thẻ ký tự, ngay cả khi ưu tiên ghi đè.",1018 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "Lời nhắc này không thể bị ghi đè bằng thẻ ký tự, ngay cả khi ưu tiên ghi đè.",
public/locales/zh-cn.json+2 -2
@@ -1168,11 +1168,11 @@
1168 "To whom this message will be attributed.": "此消息应归于谁。",1168 "To whom this message will be attributed.": "此消息应归于谁。",
1169 "AI Assistant": "AI助手",1169 "AI Assistant": "AI助手",
1170 "prompt_manager_position": "位置",1170 "prompt_manager_position": "位置",
1171 "Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "注入位置。相对(相对于提示管理器中的其他提示)或在聊天中@深度。",1171 "Relative (to other prompts in prompt manager) or In-chat @ Depth.": "相对(相对于提示管理器中的其他提示)或在聊天中@深度。",
1172 "prompt_manager_relative": "相对",1172 "prompt_manager_relative": "相对",
1173 "prompt_manager_in_chat": "聊天中",1173 "prompt_manager_in_chat": "聊天中",
1174 "prompt_manager_depth": "深度",1174 "prompt_manager_depth": "深度",
1175 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "注入深度。“0”为在最后一条消息之后,“1”为在最后一条消息之前,等等。",1175 "0 = after the last message, 1 = before the last message, etc.": "“0”为在最后一条消息之后,“1”为在最后一条消息之前,等等。",
1176 "The content of this prompt is pulled from elsewhere and cannot be edited here.": "此提示词的内容是从其他地方提取的,无法在此处进行编辑。",1176 "The content of this prompt is pulled from elsewhere and cannot be edited here.": "此提示词的内容是从其他地方提取的,无法在此处进行编辑。",
1177 "Prompt": "提示词",1177 "Prompt": "提示词",
1178 "The prompt to be sent.": "要发送的提示词。",1178 "The prompt to be sent.": "要发送的提示词。",
public/locales/zh-tw.json+3 -3
@@ -1010,10 +1010,10 @@
1010 "To whom this message will be attributed.": "此訊息所屬的角色。",1010 "To whom this message will be attributed.": "此訊息所屬的角色。",
1011 "AI Assistant": "人工智慧助手",1011 "AI Assistant": "人工智慧助手",
1012 "prompt_manager_position": "位置",1012 "prompt_manager_position": "位置",
1013 "Injection position. Next to other prompts (relative) or in-chat (absolute).": "注入位置。與其他提示詞相鄰(相對位置)或在聊天中(絕對位置)。",1013 "Next to other prompts (relative) or in-chat (absolute).": "與其他提示詞相鄰(相對位置)或在聊天中(絕對位置)。",
1014 "prompt_manager_relative": "相對位置",1014 "prompt_manager_relative": "相對位置",
1015 "prompt_manager_depth": "深度",1015 "prompt_manager_depth": "深度",
1016 "Injection depth. 0 = after the last message, 1 = before the last message, etc.": "注入深度。0 = 在最後一則訊息之後,1 = 在最後一則訊息之前,以此類推。",1016 "0 = after the last message, 1 = before the last message, etc.": "0 = 在最後一則訊息之後,1 = 在最後一則訊息之前,以此類推。",
1017 "Prompt": "提示詞",1017 "Prompt": "提示詞",
1018 "The prompt to be sent.": "要傳送的提示詞。",1018 "The prompt to be sent.": "要傳送的提示詞。",
1019 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "即使啟用優先覆寫,此提示詞也不能被角色卡片覆寫。",1019 "This prompt cannot be overridden by character cards, even if overrides are preferred.": "即使啟用優先覆寫,此提示詞也不能被角色卡片覆寫。",
@@ -1650,7 +1650,7 @@
1650 "Image Captioning": "圖片註解",1650 "Image Captioning": "圖片註解",
1651 "Generate Caption": "產生圖片註解",1651 "Generate Caption": "產生圖片註解",
1652 "Injection Position": "插入位置",1652 "Injection Position": "插入位置",
1653 "Injection position. Relative (to other prompts in prompt manager) or In-chat @ Depth.": "插入位置(與提示詞管理器中的其他提示相比)或聊天中的深度位置。",1653 "Relative (to other prompts in prompt manager) or In-chat @ Depth.": "插入位置(與提示詞管理器中的其他提示相比)或聊天中的深度位置。",
1654 "Injection Template": "插入範本",1654 "Injection Template": "插入範本",
1655 "Insert#": "插入#",1655 "Insert#": "插入#",
1656 "Instruct Sequences": "指令序列",1656 "Instruct Sequences": "指令序列",
public/scripts/PromptManager.js+16 -2
@@ -77,7 +77,7 @@ const registerPromptManagerMigration = () => {
77 * Represents a prompt.77 * Represents a prompt.
78 */78 */
79class Prompt {79class Prompt {
80 identifier; role; content; name; system_prompt; position; injection_position; injection_depth; forbid_overrides; extension;80 identifier; role; content; name; system_prompt; position; injection_position; injection_depth; injection_order; forbid_overrides; extension;
8181
82 /**82 /**
83 * Create a new Prompt instance.83 * Create a new Prompt instance.
@@ -91,10 +91,11 @@ class Prompt {
91 * @param {string} [param0.position] - The position of the prompt in the prompt list.91 * @param {string} [param0.position] - The position of the prompt in the prompt list.
92 * @param {number} [param0.injection_position] - The insert position of the prompt.92 * @param {number} [param0.injection_position] - The insert position of the prompt.
93 * @param {number} [param0.injection_depth] - The depth of the prompt in the chat.93 * @param {number} [param0.injection_depth] - The depth of the prompt in the chat.
94 * @param {number} [param0.injection_order] - The order of the prompt in the chat.
94 * @param {boolean} [param0.forbid_overrides] - Indicates if the prompt should not be overridden.95 * @param {boolean} [param0.forbid_overrides] - Indicates if the prompt should not be overridden.
95 * @param {boolean} [param0.extension] - Prompt is added by an extension.96 * @param {boolean} [param0.extension] - Prompt is added by an extension.
96 */97 */
97 constructor({ identifier, role, content, name, system_prompt, position, injection_depth, injection_position, forbid_overrides, extension }) {98 constructor({ identifier, role, content, name, system_prompt, position, injection_depth, injection_position, forbid_overrides, extension, injection_order } = {}) {
98 this.identifier = identifier;99 this.identifier = identifier;
99 this.role = role;100 this.role = role;
100 this.content = content;101 this.content = content;
@@ -105,6 +106,7 @@ class Prompt {
105 this.injection_position = injection_position;106 this.injection_position = injection_position;
106 this.forbid_overrides = forbid_overrides;107 this.forbid_overrides = forbid_overrides;
107 this.extension = extension ?? false;108 this.extension = extension ?? false;
109 this.injection_order = injection_order ?? 0;
108 }110 }
109}111}
110112
@@ -447,7 +449,9 @@ class PromptManager {
447 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').value = prompt.content ?? '';449 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').value = prompt.content ?? '';
448 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').value = prompt.injection_position ?? 0;450 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').value = prompt.injection_position ?? 0;
449 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth').value = prompt.injection_depth ?? DEFAULT_DEPTH;451 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth').value = prompt.injection_depth ?? DEFAULT_DEPTH;
452 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_order').value = prompt.injection_order ?? 0;
450 document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block').style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';453 document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block').style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';
454 document.getElementById(this.configuration.prefix + 'prompt_manager_order_block').style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';
451 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked = prompt.forbid_overrides ?? false;455 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked = prompt.forbid_overrides ?? false;
452 document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block').style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';456 document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block').style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
453 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').disabled = prompt.marker ?? false;457 document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').disabled = prompt.marker ?? false;
@@ -782,6 +786,7 @@ class PromptManager {
782 prompt.content = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').value;786 prompt.content = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt').value;
783 prompt.injection_position = Number(document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').value);787 prompt.injection_position = Number(document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position').value);
784 prompt.injection_depth = Number(document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth').value);788 prompt.injection_depth = Number(document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth').value);
789 prompt.injection_order = Number(document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_order').value);
785 prompt.forbid_overrides = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked;790 prompt.forbid_overrides = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides').checked;
786 }791 }
787792
@@ -1222,7 +1227,9 @@ class PromptManager {
1222 const promptField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt');1227 const promptField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_prompt');
1223 const injectionPositionField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position');1228 const injectionPositionField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position');
1224 const injectionDepthField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth');1229 const injectionDepthField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth');
1230 const injectionOrderField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_order');
1225 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');1231 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
1232 const injectionOrderBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_order_block');
1226 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');1233 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
1227 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');1234 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
1228 const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');1235 const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
@@ -1235,7 +1242,9 @@ class PromptManager {
1235 promptField.disabled = prompt.marker ?? false;1242 promptField.disabled = prompt.marker ?? false;
1236 injectionPositionField.value = prompt.injection_position ?? INJECTION_POSITION.RELATIVE;1243 injectionPositionField.value = prompt.injection_position ?? INJECTION_POSITION.RELATIVE;
1237 injectionDepthField.value = prompt.injection_depth ?? DEFAULT_DEPTH;1244 injectionDepthField.value = prompt.injection_depth ?? DEFAULT_DEPTH;
1245 injectionOrderField.value = prompt.injection_order ?? 0;
1238 injectionDepthBlock.style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';1246 injectionDepthBlock.style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';
1247 injectionOrderBlock.style.visibility = prompt.injection_position === INJECTION_POSITION.ABSOLUTE ? 'visible' : 'hidden';
1239 injectionPositionField.removeAttribute('disabled');1248 injectionPositionField.removeAttribute('disabled');
1240 forbidOverridesField.checked = prompt.forbid_overrides ?? false;1249 forbidOverridesField.checked = prompt.forbid_overrides ?? false;
1241 forbidOverridesBlock.style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';1250 forbidOverridesBlock.style.visibility = this.overridablePrompts.includes(prompt.identifier) ? 'visible' : 'hidden';
@@ -1267,11 +1276,14 @@ class PromptManager {
12671276
1268 handleInjectionPositionChange(event) {1277 handleInjectionPositionChange(event) {
1269 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');1278 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
1279 const injectionOrderBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_order_block');
1270 const injectionPosition = Number(event.target.value);1280 const injectionPosition = Number(event.target.value);
1271 if (injectionPosition === INJECTION_POSITION.ABSOLUTE) {1281 if (injectionPosition === INJECTION_POSITION.ABSOLUTE) {
1272 injectionDepthBlock.style.visibility = 'visible';1282 injectionDepthBlock.style.visibility = 'visible';
1283 injectionOrderBlock.style.visibility = 'visible';
1273 } else {1284 } else {
1274 injectionDepthBlock.style.visibility = 'hidden';1285 injectionDepthBlock.style.visibility = 'hidden';
1286 injectionOrderBlock.style.visibility = 'hidden';
1275 }1287 }
1276 }1288 }
12771289
@@ -1328,6 +1340,7 @@ class PromptManager {
1328 const injectionPositionField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position');1340 const injectionPositionField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_position');
1329 const injectionDepthField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth');1341 const injectionDepthField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_injection_depth');
1330 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');1342 const injectionDepthBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_depth_block');
1343 const injectionOrderBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_order_block');
1331 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');1344 const forbidOverridesField = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_form_forbid_overrides');
1332 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');1345 const forbidOverridesBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_forbid_overrides_block');
1333 const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');1346 const entrySourceBlock = document.getElementById(this.configuration.prefix + 'prompt_manager_popup_entry_source_block');
@@ -1341,6 +1354,7 @@ class PromptManager {
1341 injectionPositionField.removeAttribute('disabled');1354 injectionPositionField.removeAttribute('disabled');
1342 injectionDepthField.value = DEFAULT_DEPTH;1355 injectionDepthField.value = DEFAULT_DEPTH;
1343 injectionDepthBlock.style.visibility = 'unset';1356 injectionDepthBlock.style.visibility = 'unset';
1357 injectionOrderBlock.style.visibility = 'unset';
1344 forbidOverridesBlock.style.visibility = 'unset';1358 forbidOverridesBlock.style.visibility = 'unset';
1345 forbidOverridesField.checked = false;1359 forbidOverridesField.checked = false;
1346 entrySourceBlock.style.display = 'none';1360 entrySourceBlock.style.display = 'none';
public/scripts/chat-templates.js+10 -6
@@ -24,17 +24,21 @@ const hash_derivations = {
24 // Mistral-Large-Instruct-240724 // Mistral-Large-Instruct-2407
25 'Mistral V2 & V3'25 'Mistral V2 & V3'
26 ,26 ,
27 '3c4ad5fa60dd8c7ccdf82fa4225864c903e107728fcaf859fa6052cb80c92ee9':27 '26a59556925c987317ce5291811ba3b7f32ec4c647c400c6cc7e3a9993007ba7':
28 // Mistral-Large-Instruct-241128 // Mistral-7B-Instruct-v0.3
29 'Mistral V7' // https://huggingface.co/mistralai/Mistral-Large-Instruct-241129 'Mistral V2 & V3'
30 ,30 ,
31 'e4676cb56dffea7782fd3e2b577cfaf1e123537e6ef49b3ec7caa6c095c62272':31 'e4676cb56dffea7782fd3e2b577cfaf1e123537e6ef49b3ec7caa6c095c62272':
32 // Mistral-Nemo-Instruct-240732 // Mistral-Nemo-Instruct-2407
33 'Mistral V3-Tekken'33 'Mistral V3-Tekken'
34 ,34 ,
35 '26a59556925c987317ce5291811ba3b7f32ec4c647c400c6cc7e3a9993007ba7':35 '3c4ad5fa60dd8c7ccdf82fa4225864c903e107728fcaf859fa6052cb80c92ee9':
36 // Mistral-7B-Instruct-v0.336 // Mistral-Large-Instruct-2411
37 'Mistral V2 & V3'37 'Mistral V7'
38 ,
39 '3934d199bfe5b6fab5cba1b5f8ee475e8d5738ac315f21cb09545b4e665cc005':
40 // Mistral Small 24B
41 'Mistral V7'
38 ,42 ,
3943
40 // Gemma44 // Gemma
public/scripts/custom-request.js+27 -2
@@ -242,9 +242,16 @@ export class TextCompletionService {
242242
243 // Format messages using instruct formatting243 // Format messages using instruct formatting
244 const formattedMessages = [];244 const formattedMessages = [];
245 const prefillActive = prompt.length > 0 ? prompt[prompt.length - 1].role === 'assistant' : false;
245 for (const message of prompt) {246 for (const message of prompt) {
246 let messageContent = message.content;247 let messageContent = message.content;
247 if (!message.ignoreInstruct) {248 if (!message.ignoreInstruct) {
249 const isLastMessage = message === prompt[prompt.length - 1];
250
251 // This complicated logic means:
252 // 1. If prefill is not active, format all messages
253 // 2. If prefill is active, format all messages except the last one
254 if (!isLastMessage || !prefillActive) {
248 messageContent = formatInstructModeChat(255 messageContent = formatInstructModeChat(
249 message.role,256 message.role,
250 message.content,257 message.content,
@@ -256,9 +263,11 @@ export class TextCompletionService {
256 undefined,263 undefined,
257 instructPreset,264 instructPreset,
258 );265 );
266 }
259267
260 // Add prompt formatting for the last message268 // Add prompt formatting for the last message.
261 if (message === prompt[prompt.length - 1]) {269 if (isLastMessage) {
270 if (!prefillActive) { // e.g. "<|im_start|>user:"
262 messageContent += formatInstructModePrompt(271 messageContent += formatInstructModePrompt(
263 undefined,272 undefined,
264 false,273 false,
@@ -269,6 +278,22 @@ export class TextCompletionService {
269 false,278 false,
270 instructPreset,279 instructPreset,
271 );280 );
281 } else { // e.g. "<|im_start|>assistant: Hello, my name is"
282 const overridenInstructPreset = structuredClone(instructPreset);
283 overridenInstructPreset.output_suffix = '';
284 overridenInstructPreset.wrap = false;
285 messageContent = formatInstructModeChat(
286 message.role,
287 message.content,
288 false, // since it is assistant
289 false,
290 undefined,
291 undefined,
292 undefined,
293 undefined,
294 overridenInstructPreset,
295 );
296 }
272 }297 }
273 }298 }
274 formattedMessages.push(messageContent);299 formattedMessages.push(messageContent);
public/scripts/openai.js+25 -5
@@ -760,24 +760,42 @@ async function populationInjectionPrompts(prompts, messages) {
760 // Get prompts for current depth760 // Get prompts for current depth
761 const depthPrompts = prompts.filter(prompt => prompt.injection_depth === i && prompt.content);761 const depthPrompts = prompts.filter(prompt => prompt.injection_depth === i && prompt.content);
762762
763 // Order of priority (most important go lower)
764 const roles = ['system', 'user', 'assistant'];
765 const roleMessages = [];763 const roleMessages = [];
766 const separator = '\n';764 const separator = '\n';
767 const wrap = false;765 const wrap = false;
768766
767 // Group prompts by priority
768 const orderGroups = {};
769 for (const prompt of depthPrompts) {
770 const order = prompt.injection_order || 0;
771 if (!orderGroups[order]) {
772 orderGroups[order] = [];
773 }
774 orderGroups[order].push(prompt);
775 }
776
777 // Process each order group in order (b - a = low to high ; a - b = high to low)
778 const orders = Object.keys(orderGroups).sort((a, b) => +a - +b);
779 for (const order of orders) {
780 const orderPrompts = orderGroups[order];
781
782 // Order of priority for roles (most important go lower)
783 const roles = ['system', 'user', 'assistant'];
769 for (const role of roles) {784 for (const role of roles) {
770 // Get prompts for current role785 const rolePrompts = orderPrompts
771 const rolePrompts = depthPrompts.filter(prompt => prompt.role === role).map(x => x.content).join(separator);786 .filter(prompt => prompt.role === role)
787 .map(x => x.content)
788 .join(separator);
789
772 // Get extension prompt790 // Get extension prompt
773 const extensionPrompt = await getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, roleTypes[role], wrap);791 const extensionPrompt = await getExtensionPrompt(extension_prompt_types.IN_CHAT, i, separator, roleTypes[role], wrap);
774
775 const jointPrompt = [rolePrompts, extensionPrompt].filter(x => x).map(x => x.trim()).join(separator);792 const jointPrompt = [rolePrompts, extensionPrompt].filter(x => x).map(x => x.trim()).join(separator);
776793
777 if (jointPrompt && jointPrompt.length) {794 if (jointPrompt && jointPrompt.length) {
778 roleMessages.push({ 'role': role, 'content': jointPrompt, injected: true });795 roleMessages.push({ 'role': role, 'content': jointPrompt, injected: true });
779 }796 }
780 }797 }
798 }
781799
782 if (roleMessages.length) {800 if (roleMessages.length) {
783 const injectIdx = i + totalInsertedMessages;801 const injectIdx = i + totalInsertedMessages;
@@ -1314,6 +1332,8 @@ async function preparePromptsForChatCompletion({ scenario, charPersonality, name
1314 prompt.injection_position = collectionPrompt.injection_position ?? prompt.injection_position;1332 prompt.injection_position = collectionPrompt.injection_position ?? prompt.injection_position;
1315 // Depth for In-Chat1333 // Depth for In-Chat
1316 prompt.injection_depth = collectionPrompt.injection_depth ?? prompt.injection_depth;1334 prompt.injection_depth = collectionPrompt.injection_depth ?? prompt.injection_depth;
1335 // Priority for In-Chat
1336 prompt.injection_order = collectionPrompt.injection_order ?? prompt.injection_order;
1317 // Role (system, user, assistant)1337 // Role (system, user, assistant)
1318 prompt.role = collectionPrompt.role ?? prompt.role;1338 prompt.role = collectionPrompt.role ?? prompt.role;
1319 }1339 }