mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge pull request #768 from SillyTavern/prompt-manager-cherrypicked
Feature: Prompt manager (cherrypicked onto stage)
This commit is contained in:
@@ -1272,41 +1272,7 @@
|
||||
<div id="openai_settings">
|
||||
<div class="">
|
||||
<div class="range-block">
|
||||
<label title="Inserts jailbreak as a last system message" class="checkbox_label widthFreeExpand" data-i18n="[title]Inserts jailbreak as a last system message">
|
||||
<input id="jailbreak_system" type="checkbox" />
|
||||
<span data-i18n="Send Jailbreak">
|
||||
Send Jailbreak
|
||||
</span>
|
||||
</label>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Inserts jailbreak as a last system message.">Inserts
|
||||
jailbreak as a last system message.</span><br>
|
||||
<span data-i18n="This tells the AI to ignore its usual content restrictions.">This
|
||||
tells the AI to ignore its usual content restrictions.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<label class="checkbox_label widthFreeExpand" for="nsfw_toggle">
|
||||
<input id="nsfw_toggle" type="checkbox" checked>
|
||||
<span data-i18n="NSFW Encouraged">
|
||||
NSFW Encouraged</span>
|
||||
</label>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Tell the AI that NSFW is allowed.">
|
||||
Tell the AI that NSFW is allowed.
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<label title="NSFW block goes first in the resulting prompt" class="checkbox_label widthFreeExpand" data-i18n="[title]NSFW block goes first in the resulting prompt">
|
||||
<input id="nsfw_first" type="checkbox" /><span data-i18n="NSFW Prioritized">
|
||||
NSFW Prioritized</span>
|
||||
</label>
|
||||
<div class="toggle-description justifyLeft" data-i18n="NSFW prompt text goes first in the prompt to emphasize its effect.">
|
||||
NSFW prompt text goes first in the prompt to emphasize its effect.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="range-block">
|
||||
<label for="stream_toggle" title="Enables OpenAI completion streaming" class="checkbox_label widthFreeExpand" data-i18n="[title]Enables OpenAI completion streaming">
|
||||
<label for="stream_toggle" title="Enables OpenAI completion streaming" class="checkbox_label widthFreeExpand">
|
||||
<input id="stream_toggle" type="checkbox" /><span data-i18n="Streaming">
|
||||
Streaming</span>
|
||||
</label>
|
||||
@@ -1319,17 +1285,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<label title="Use OAI knowledge base to enhance definitions for public figures and known fictional characters" data-i18n="[title]Use OAI knowledge base to enhance definitions for public figures and known fictional characters" class="checkbox_label widthFreeExpand">
|
||||
<input id="enhance_definitions" type="checkbox" /><span data-i18n="Enhance Definitions">
|
||||
Enhance Definitions</span>
|
||||
</label>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Use OAI knowledge base to enhance definitions for public figures and known fictional characters">
|
||||
Use OAI knowledge base to enhance definitions for public figures and known
|
||||
fictional characters
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<label for="wrap_in_quotes" title="Wrap user messages in quotes before sending" data-i18n="[title]Wrap user messages in quotes before sending" class="checkbox_label widthFreeExpand">
|
||||
<label for="wrap_in_quotes" title="Wrap user messages in quotes before sending" class="checkbox_label widthFreeExpand">
|
||||
<input id="wrap_in_quotes" type="checkbox" /><span data-i18n="Wrap in Quotes">
|
||||
Wrap in Quotes</span>
|
||||
</label>
|
||||
@@ -1341,131 +1297,173 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title justifyLeft">
|
||||
<span data-i18n="Replace empty message">
|
||||
Replace empty message
|
||||
</span>
|
||||
</div>
|
||||
<label for="names_in_completion" title="Add character names" class="checkbox_label widthFreeExpand">
|
||||
<input id="names_in_completion" type="checkbox" /><span data-i18n="Add character names">Add character names</span>
|
||||
</label>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="May help the model to understand context. Names must only contain letters or numbers.">Helps the model to associate messages in group chats. Names must only contain letters or numbers without whitespaces.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="inline-drawer m-t-1 wide100p">
|
||||
<div class="inline-drawer-toggle inline-drawer-header">
|
||||
<b data-i18n="Quick Edit">Quick Edit</b>
|
||||
<div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
|
||||
</div>
|
||||
<div class="inline-drawer-content">
|
||||
<div class="range-block m-t-1">
|
||||
<div class="justifyLeft" data-i18n="Main">Main</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="main_prompt_quick_edit_textarea" class="text_pole textarea_compact" name="impersonation_prompt" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="justifyLeft" data-i18n="Jailbreak">Jailbreak</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="jailbreak_prompt_quick_edit_textarea" class="text_pole textarea_compact" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block" data-source="claude">
|
||||
<span data-i18n="Assistant Prefill">Assistant Prefill</span>
|
||||
<textarea id="claude_assistant_prefill" class="text_pole textarea_compact" name="assistant_prefill" rows="3" maxlength="5000" placeholder="Start Claude's answer with..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-b-1">
|
||||
<div id="completion_prompt_manager"></div>
|
||||
</div>
|
||||
<div class="inline-drawer wide100p">
|
||||
<div class="inline-drawer-toggle inline-drawer-header">
|
||||
<b>Utility Prompts</b>
|
||||
<div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
|
||||
</div>
|
||||
<div class="inline-drawer-content">
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="Impersonation prompt">Impersonation prompt</span>
|
||||
<div id="impersonation_prompt_restore" title="Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Prompt that is used for Impersonation function">
|
||||
Prompt that is used for Impersonation function
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="impersonation_prompt_textarea" class="text_pole textarea_compact" name="impersonation_prompt" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>World Info format template</span>
|
||||
<div id="wi_format_restore" title="Restore default format" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
Wraps activated World Info entries before inserting into the prompt. Use
|
||||
<tt>{0}</tt> to mark a place where the content is inserted.
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="wi_format_textarea" class="text_pole textarea_compact" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>NSFW avoidance prompt</span>
|
||||
<div id="nsfw_avoidance_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft"
|
||||
data-i18n="Prompt that is used when the NSFW toggle is O">
|
||||
Prompt that is used when the NSFW toggle is OFF
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="nsfw_avoidance_prompt_textarea" class="text_pole textarea_compact" name="nsfw_prompt" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>New Chat</span>
|
||||
<div id="newchat_prompt_restore" title="Restore new chat prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Set at the beginning of the chat history to indicate that a new chat is about to start.">
|
||||
Set at the beginning of the chat history to indicate that a new chat is about to start.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="newchat_prompt_textarea" class="text_pole textarea_compact" name="new_chat" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>New Group Chat</span>
|
||||
<div id="newgroupchat_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore new group chat prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Set at the beginning of the chat history to indicate that a new group chat is about to start.">
|
||||
Set at the beginning of the chat history to indicate that a new group chat is about to start.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="newgroupchat_prompt_textarea" class="text_pole textarea_compact" name="new_group_chat" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>New Example Chat</span>
|
||||
<div id="newexamplechat_prompt_restore" title="Restore new example chat prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Set at the beginning of Dialogue examples to indicate that a new example chat is about to start.">
|
||||
Set at the beginning of Dialogue examples to indicate that a new example chat is about to start.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="newexamplechat_prompt_textarea" class="text_pole textarea_compact" name="new_example_chat" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span>Continue nudge</span>
|
||||
<div id="continue_nudge_prompt_restore" title="Restore new chat prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Set at the beginning of the chat history to indicate that a new chat is about to start.">
|
||||
Set at the end of the chat history when the continue button is pressed.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="continue_nudge_prompt_textarea" class="text_pole textarea_compact" name="continue_nudge" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block m-t-1">
|
||||
<div class="range-block-title justifyLeft">
|
||||
Replace empty message
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Send this text instead of nothing when the text box is empty.">
|
||||
Send this text instead of nothing when the text box is empty.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="send_if_empty_textarea" class="text_pole textarea_compact" name="send_if_empty" rows="1" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="Main prompt">Main prompt</span>
|
||||
<div id="main_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left "></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="prompt_overridden">
|
||||
Overridden by the Character Definitions.
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft" data-i18n="The main prompt used to set the model behavior">
|
||||
The main prompt used to set the model behavior
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="main_prompt_textarea" class="text_pole textarea_compact" name="main_prompt" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="NSFW prompt">NSFW prompt</span>
|
||||
<div id="nsfw_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left "></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Prompt that is used when the NSFW toggle is on">
|
||||
Prompt that is used when the NSFW toggle is on
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="nsfw_prompt_textarea" class="text_pole textarea_compact" name="nsfw_prompt" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="NSFW avoidance prompt">NSFW avoidance prompt</span>
|
||||
<div id="nsfw_avoidance_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Prompt that is used when the NSFW toggle is off">
|
||||
Prompt that is used when the NSFW toggle is OFF
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="nsfw_avoidance_prompt_textarea" class="text_pole textarea_compact" name="nsfw_prompt" rows="2" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="Jailbreak prompt">Jailbreak prompt</span>
|
||||
<div id="jailbreak_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jailbreak_overridden">
|
||||
Overridden by the Character Definitions.
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Prompt that is used when the Jailbreak toggle is on">
|
||||
Prompt that is used when the Jailbreak toggle is on
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="jailbreak_prompt_textarea" class="text_pole textarea_compact" name="jailbreak_prompt" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block" data-source="claude">
|
||||
<span data-i18n="Assistant Prefill">Assistant Prefill</span>
|
||||
<textarea id="claude_assistant_prefill" class="text_pole textarea_compact" name="assistant_prefill" rows="3" maxlength="5000" placeholder="Start Claude's answer with..."></textarea>
|
||||
</div>
|
||||
|
||||
<div class="inline-drawer wide100p">
|
||||
<div class="inline-drawer-toggle inline-drawer-header margin-bot-10px">
|
||||
<span data-i18n="Advanced prompt bits"><b>Advanced prompt bits</b></span>
|
||||
<div class="fa-solid fa-circle-chevron-down inline-drawer-icon down"></div>
|
||||
</div>
|
||||
<div class="inline-drawer-content">
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="Impersonation prompt">Impersonation prompt</span>
|
||||
<div id="impersonation_prompt_restore" title="Restore default prompt" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="send_if_empty_textarea" class="text_pole textarea_compact" name="send_if_empty" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft" data-i18n="Prompt that is used for Impersonation function">
|
||||
Prompt that is used for Impersonation function
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="impersonation_prompt_textarea" class="text_pole textarea_compact" name="impersonation_prompt" rows="6" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="range-block">
|
||||
<div class="range-block-title openai_restorable">
|
||||
<span data-i18n="World Info format template">World Info format template</span>
|
||||
<div id="wi_format_restore" title="Restore default format" data-i18n="[title]Restore default prompt" class="right_menu_button">
|
||||
<div class="fa-solid fa-clock-rotate-left"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toggle-description justifyLeft">
|
||||
<span data-i18n="Wraps activated World Info entries before inserting into the prompt. Use {0} to mark a place where the content is inserted.">
|
||||
Wraps activated World Info entries before inserting into the prompt. Use <tt>{0}</tt> to mark a place where the content is inserted.
|
||||
</span>
|
||||
</div>
|
||||
<div class="wide100p">
|
||||
<textarea id="wi_format_textarea" class="text_pole textarea_compact" rows="3" placeholder=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="range-block" data-source="openai,openrouter">
|
||||
<div class="range-block m-t-1" data-source="openai,openrouter">
|
||||
<div class="range-block-title openai_restorable" data-i18n="Logit Bias">
|
||||
Logit Bias
|
||||
</div>
|
||||
@@ -1481,7 +1479,6 @@
|
||||
<i title="Delete preset" id="openai_logit_bias_delete_preset" class="menu_button fa-solid fa-trash-can" data-i18n="[title]Delete preset"></i>
|
||||
<input id="openai_logit_bias_import_file" type="file" accept=".json" hidden />
|
||||
</div>
|
||||
|
||||
<div class="inline-drawer wide100p">
|
||||
<div class="inline-drawer-toggle inline-drawer-header">
|
||||
<b data-i18n="View / Edit bias preset">View / Edit bias preset</b>
|
||||
@@ -3672,6 +3669,92 @@
|
||||
<input class="openai_logit_bias_text text_pole" data-i18n="[placeholder]Type here..." placeholder="type here..." />
|
||||
<input class="openai_logit_bias_value text_pole" type="number" min="-100" value="0" max="100" />
|
||||
<i class="menu_button fa-solid fa-xmark openai_logit_bias_remove"></i>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="completion_prompt_manager_popup" class="drawer-content" style="display:none;">
|
||||
<div id="completion_prompt_manager_popup_inspect">
|
||||
<h3>Inspect</h3>
|
||||
<div class="completion_prompt_manager_popup_entry">
|
||||
<form class="completion_prompt_manager_popup_entry_form">
|
||||
<div class="completion_prompt_manager_popup_entry_form_control">
|
||||
<div class="completion_prompt_manager_popup_header">
|
||||
<label for="completion_prompt_manager_popup_entry_form_prompt">
|
||||
<span>Prompt List</span>
|
||||
</label>
|
||||
<a id="completion_prompt_manager_popup_close_button" title="close" class="fa-solid fa-close menu_button"></a>
|
||||
</div>
|
||||
<div class="text_muted">The list of prompts associated with this marker.</div>
|
||||
<div id="completion_prompt_manager_popup_entry_form_inspect_list"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div id="completion_prompt_manager_popup_edit">
|
||||
<h3>Edit</h3>
|
||||
<div class="completion_prompt_manager_popup_entry">
|
||||
<form class="completion_prompt_manager_popup_entry_form">
|
||||
<div class="completion_prompt_manager_popup_entry_form_control">
|
||||
<label for="completion_prompt_manager_popup_entry_form_name">
|
||||
<span>Name</span>
|
||||
</label>
|
||||
<div class="text_muted">A name for this prompt.</div>
|
||||
<input id="completion_prompt_manager_popup_entry_form_name" class="text_pole" type="text" name="name" />
|
||||
</div>
|
||||
<div class="completion_prompt_manager_popup_entry_form_control">
|
||||
<label for="completion_prompt_manager_popup_entry_form_role">
|
||||
<span>Role</span>
|
||||
</label>
|
||||
<div class="text_muted">To whom this message will be attributed.</div>
|
||||
<select id="completion_prompt_manager_popup_entry_form_role" class="text_pole" name="role">
|
||||
<option value="system">System</option>
|
||||
<option value="user">User</option>
|
||||
<option value="assistant">AI Assistant</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="completion_prompt_manager_popup_entry_form_control">
|
||||
<label for="completion_prompt_manager_popup_entry_form_prompt">
|
||||
<span>Prompt</span>
|
||||
</label>
|
||||
<div class="text_muted">The prompt to be sent.</div>
|
||||
<textarea id="completion_prompt_manager_popup_entry_form_prompt" class="text_pole" name="prompt">
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="completion_prompt_manager_popup_entry_form_footer" >
|
||||
<a id="completion_prompt_manager_popup_entry_form_close" title="close" class="fa-solid fa-close menu_button"></a>
|
||||
<a id="completion_prompt_manager_popup_entry_form_reset" title="reset" class="fa-solid fa-undo menu_button"></a>
|
||||
<a id="completion_prompt_manager_popup_entry_form_save" title="save" class="fa-solid fa-save menu_button" data-pm-prompt=""></a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="shadow_select_chat_popup">
|
||||
<div id="select_chat_popup">
|
||||
<div id="select_chat_import"> <!-- import chat popup header -->
|
||||
<div id="chat_import_button" class="fa-solid fa-file-arrow-up menu_button"></div>
|
||||
<div id="selectChatPopupHeaderText" class="TxtLrgBoldCenter">
|
||||
<span id="ChatHistoryCharName"></span>
|
||||
<br>
|
||||
Chat History
|
||||
<a href="/notes/10" class="notes-link" target="_blank"><span class="note-link-span">?</span></a>
|
||||
</div>
|
||||
<form id="form_import_chat" action="javascript:void(null);" method="post" enctype="multipart/form-data" style="display: none;">
|
||||
<input type="file" id="chat_import_file" accept=".json, .jsonl" name="avatar">
|
||||
<input id="chat_import_file_type" name="file_type" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
|
||||
<input id="chat_import_avatar_url" name="avatar_url" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
|
||||
<input id="chat_import_character_name" name="character_name" class="text_pole" maxlength="999" size="2" value="" autocomplete="off" style="display: none;">
|
||||
</form>
|
||||
<div id="select_chat_cross" class="fa-solid fa-circle-xmark" alt="Close Past Chat Popup"></div>
|
||||
</div>
|
||||
|
||||
<div id="select_chat_div">
|
||||
|
||||
</div>
|
||||
<div id="load_select_chat_div">
|
||||
<div class="fa-solid fa-hourglass fa-spin"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Reference in New Issue
Block a user