mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Update tl
This commit is contained in:
@ -1957,7 +1957,7 @@
|
|||||||
<span data-i18n="Enable web search">Enable web search</span>
|
<span data-i18n="Enable web search">Enable web search</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="flexBasis100p toggle-description justifyLeft">
|
<div class="flexBasis100p toggle-description justifyLeft">
|
||||||
<span>
|
<span data-i18n="Use search capabilities provided by the backend.">
|
||||||
Use search capabilities provided by the backend.
|
Use search capabilities provided by the backend.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@ -2188,7 +2188,7 @@
|
|||||||
<input id="horde_trusted_workers_only" type="checkbox" />
|
<input id="horde_trusted_workers_only" type="checkbox" />
|
||||||
<span data-i18n="Trusted workers only">Trusted workers only</span>
|
<span data-i18n="Trusted workers only">Trusted workers only</span>
|
||||||
</label>
|
</label>
|
||||||
<small id="adjustedHordeParams">Context: --, Response: --</small>
|
<small id="adjustedHordeParams"><span data-i18n="Context">Context</span>: --, <span data-i18n="Response">Response</span>: --</small>
|
||||||
<h4 data-i18n="API key">API key</h4>
|
<h4 data-i18n="API key">API key</h4>
|
||||||
<small>
|
<small>
|
||||||
<span data-i18n="Get it here:">Get it here: </span> <a target="_blank" href="https://aihorde.net/register" data-i18n="Register">Register</a> (<a id="horde_kudos" href="javascript:void(0);" data-i18n="View my Kudos">View my Kudos</a>)<br>
|
<span data-i18n="Get it here:">Get it here: </span> <a target="_blank" href="https://aihorde.net/register" data-i18n="Register">Register</a> (<a id="horde_kudos" href="javascript:void(0);" data-i18n="View my Kudos">View my Kudos</a>)<br>
|
||||||
@ -6563,7 +6563,7 @@
|
|||||||
<div class="ch_name"></div>
|
<div class="ch_name"></div>
|
||||||
<small class="ch_additional_info group_select_counter"></small>
|
<small class="ch_additional_info group_select_counter"></small>
|
||||||
</div>
|
</div>
|
||||||
<small class="character_name_block_sub_line">in this group</small>
|
<small class="character_name_block_sub_line" data-i18n="in this group">in this group</small>
|
||||||
<i class='group_fav_icon fa-solid fa-star'></i>
|
<i class='group_fav_icon fa-solid fa-star'></i>
|
||||||
<input class="ch_fav" value="" hidden />
|
<input class="ch_fav" value="" hidden />
|
||||||
<div class="group_select_block_list ch_description"></div>
|
<div class="group_select_block_list ch_description"></div>
|
||||||
|
@ -23,9 +23,8 @@
|
|||||||
"Mirostat Mode": "Режим",
|
"Mirostat Mode": "Режим",
|
||||||
"Mirostat Tau": "Tau",
|
"Mirostat Tau": "Tau",
|
||||||
"Mirostat Eta": "Eta",
|
"Mirostat Eta": "Eta",
|
||||||
"Variability parameter for Mirostat outputs": "Параметр изменчивости для выходных данных Mirostat.",
|
"Variability parameter for Mirostat outputs": "Вариативность для выходных данных Mirostat.",
|
||||||
"Learning rate of Mirostat": "Скорость обучения Mirostat.",
|
"Learning rate of Mirostat": "Скорость обучения Mirostat.",
|
||||||
"Strength of the Contrastive Search regularization term. Set to 0 to disable CS": "Сила условия регуляризации контрастивного поиска. Установите значение 0, чтобы отключить CS.",
|
|
||||||
"Temperature Last": "Температура последней",
|
"Temperature Last": "Температура последней",
|
||||||
"LLaMA / Mistral / Yi models only": "Только для моделей LLaMA / Mistral / Yi. Перед этим обязательно выберите подходящий токенизатор.\nПоследовательности, которых не должно быть на выходе.\nОдна на строку. Текст или [идентификаторы токенов].\nМногие токены имеют пробел впереди. Используйте счетчик токенов, если не уверены.",
|
"LLaMA / Mistral / Yi models only": "Только для моделей LLaMA / Mistral / Yi. Перед этим обязательно выберите подходящий токенизатор.\nПоследовательности, которых не должно быть на выходе.\nОдна на строку. Текст или [идентификаторы токенов].\nМногие токены имеют пробел впереди. Используйте счетчик токенов, если не уверены.",
|
||||||
"Example: some text [42, 69, 1337]": "Пример:\nкакой-то текст\n[42, 69, 1337]",
|
"Example: some text [42, 69, 1337]": "Пример:\nкакой-то текст\n[42, 69, 1337]",
|
||||||
@ -60,13 +59,11 @@
|
|||||||
"Add BOS Token": "Добавлять BOS-токен",
|
"Add BOS Token": "Добавлять BOS-токен",
|
||||||
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Добавлять BOS-токен в начале промпта. Если выключить, ответы могут стать более креативными.",
|
"Add the bos_token to the beginning of prompts. Disabling this can make the replies more creative": "Добавлять BOS-токен в начале промпта. Если выключить, ответы могут стать более креативными.",
|
||||||
"Ban EOS Token": "Запретить EOS-токен",
|
"Ban EOS Token": "Запретить EOS-токен",
|
||||||
"Ban the eos_token. This forces the model to never end the generation prematurely": "Запрет EOS-токена не позволит модели завершить генерацию преждевременно",
|
"Ban the eos_token. This forces the model to never end the generation prematurely": "Запрет EOS-токена не позволит модели завершить генерацию самостоятельно (только при достижении лимита токенов)",
|
||||||
"Skip Special Tokens": "Пропускать спец. токены",
|
"Skip Special Tokens": "Пропускать спец. токены",
|
||||||
"Beam search": "Поиск Beam",
|
"Beam search": "Beam Search",
|
||||||
"Number of Beams": "Количество Beam",
|
|
||||||
"Length Penalty": "Штраф за длину",
|
"Length Penalty": "Штраф за длину",
|
||||||
"Early Stopping": "Преждевременная остановка",
|
"Early Stopping": "Прекращать сразу",
|
||||||
"Contrastive search": "Контрастный поиск",
|
|
||||||
"Penalty Alpha": "Penalty Alpha",
|
"Penalty Alpha": "Penalty Alpha",
|
||||||
"Seed": "Зерно",
|
"Seed": "Зерно",
|
||||||
"Epsilon Cutoff": "Epsilon Cutoff",
|
"Epsilon Cutoff": "Epsilon Cutoff",
|
||||||
@ -89,7 +86,7 @@
|
|||||||
"Text Completion presets": "Пресеты для Text Completion",
|
"Text Completion presets": "Пресеты для Text Completion",
|
||||||
"Documentation on sampling parameters": "Документация по параметрам сэмплеров",
|
"Documentation on sampling parameters": "Документация по параметрам сэмплеров",
|
||||||
"Set all samplers to their neutral/disabled state.": "Установить все сэмплеры в нейтральное/отключенное состояние.",
|
"Set all samplers to their neutral/disabled state.": "Установить все сэмплеры в нейтральное/отключенное состояние.",
|
||||||
"Only enable this if your model supports context sizes greater than 8192 tokens": "Включайте эту опцию, только если ваша модель поддерживает размер контекста более 8192 токенов.\nУвеличивайте только если вы знаете, что делаете.",
|
"Only enable this if your model supports context sizes greater than 8192 tokens": "Включайте эту опцию, только если ваша модель поддерживает размер контекста более 8192 токенов.\nУвеличивайте только если вы понимаете, что делаете.",
|
||||||
"Wrap in Quotes": "Заключать в кавычки",
|
"Wrap in Quotes": "Заключать в кавычки",
|
||||||
"Wrap entire user message in quotes before sending.": "Перед отправкой заключать всё сообщение пользователя в кавычки.",
|
"Wrap entire user message in quotes before sending.": "Перед отправкой заключать всё сообщение пользователя в кавычки.",
|
||||||
"Leave off if you use quotes manually for speech.": "Оставьте выключенным, если вручную выставляете кавычки для прямой речи.",
|
"Leave off if you use quotes manually for speech.": "Оставьте выключенным, если вручную выставляете кавычки для прямой речи.",
|
||||||
@ -109,7 +106,7 @@
|
|||||||
"Adjust response length to worker capabilities": "Подстраивать длину ответа под возможности рабочих машин",
|
"Adjust response length to worker capabilities": "Подстраивать длину ответа под возможности рабочих машин",
|
||||||
"API key": "API-ключ",
|
"API key": "API-ключ",
|
||||||
"Tabby API key": "Tabby API-ключ",
|
"Tabby API key": "Tabby API-ключ",
|
||||||
"Get it here:": "Получить здесь:",
|
"Get it here:": "Получите здесь:",
|
||||||
"Register": "Зарегистрироваться",
|
"Register": "Зарегистрироваться",
|
||||||
"TogetherAI Model": "Модель TogetherAI",
|
"TogetherAI Model": "Модель TogetherAI",
|
||||||
"Example: 127.0.0.1:5001": "Пример: http://127.0.0.1:5001",
|
"Example: 127.0.0.1:5001": "Пример: http://127.0.0.1:5001",
|
||||||
@ -289,10 +286,10 @@
|
|||||||
"Author's Note": "Заметки автора",
|
"Author's Note": "Заметки автора",
|
||||||
"Replace empty message": "Заменять пустые сообщения",
|
"Replace empty message": "Заменять пустые сообщения",
|
||||||
"Send this text instead of nothing when the text box is empty.": "Этот текст будет отправлен в случае отсутствия текста на отправку.",
|
"Send this text instead of nothing when the text box is empty.": "Этот текст будет отправлен в случае отсутствия текста на отправку.",
|
||||||
"Unrestricted maximum value for the context slider": "Убрать потолок для ползунка контекста. Включайте только если точно знаете, что делаете",
|
"Unrestricted maximum value for the context slider": "Убрать потолок для ползунка контекста. Включайте только если точно понимаете, что делаете",
|
||||||
"Chat Completion Source": "Источник для Chat Completion",
|
"Chat Completion Source": "Источник для Chat Completion",
|
||||||
"Avoid sending sensitive information to the Horde.": "Избегайте отправки личной информации Horde",
|
"Avoid sending sensitive information to the Horde.": "Избегайте отправки личной информации Horde.",
|
||||||
"Review the Privacy statement": "Ознакомиться с заявлением о конфиденциальности",
|
"Review the Privacy statement": "Ознакомьтесь с заявлением о конфиденциальности",
|
||||||
"Trusted workers only": "Только доверенные рабочие машины",
|
"Trusted workers only": "Только доверенные рабочие машины",
|
||||||
"For privacy reasons, your API key will be hidden after you reload the page.": "Из соображений безопасности ваш API-ключ будет скрыт после перезагрузки страницы.",
|
"For privacy reasons, your API key will be hidden after you reload the page.": "Из соображений безопасности ваш API-ключ будет скрыт после перезагрузки страницы.",
|
||||||
"-- Horde models not loaded --": "--Модель Horde не загружена--",
|
"-- Horde models not loaded --": "--Модель Horde не загружена--",
|
||||||
@ -699,7 +696,7 @@
|
|||||||
"Aggressive": "Агрессивный",
|
"Aggressive": "Агрессивный",
|
||||||
"Very aggressive": "Очень агрессивный",
|
"Very aggressive": "Очень агрессивный",
|
||||||
"Eta_Cutoff_desc": "Eta cutoff - основной параметр специальной техники сэмплинга под названием Eta Sampling. В единицах 1e-4; разумное значение - 3. Установите в 0, чтобы отключить. См. статью Truncation Sampling as Language Model Desmoothing от Хьюитт и др. (2022) для получения подробной информации.",
|
"Eta_Cutoff_desc": "Eta cutoff - основной параметр специальной техники сэмплинга под названием Eta Sampling. В единицах 1e-4; разумное значение - 3. Установите в 0, чтобы отключить. См. статью Truncation Sampling as Language Model Desmoothing от Хьюитт и др. (2022) для получения подробной информации.",
|
||||||
"Learn how to contribute your idle GPU cycles to the Horde": "Узнайте, как внести свой вклад в свои свободные GPU-циклы в орду",
|
"Learn how to contribute your idle GPU cycles to the Horde": "Узнайте, как использовать время простоя вашего GPU для помощи Horde",
|
||||||
"Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.": "Используйте соответствующий токенизатор для моделей Google через их API. Медленная обработка подсказок, но предлагает намного более точный подсчет токенов.",
|
"Use the appropriate tokenizer for Google models via their API. Slower prompt processing, but offers much more accurate token counting.": "Используйте соответствующий токенизатор для моделей Google через их API. Медленная обработка подсказок, но предлагает намного более точный подсчет токенов.",
|
||||||
"Load koboldcpp order": "Загрузить порядок из koboldcpp",
|
"Load koboldcpp order": "Загрузить порядок из koboldcpp",
|
||||||
"Use Google Tokenizer": "Использовать токенизатор Google",
|
"Use Google Tokenizer": "Использовать токенизатор Google",
|
||||||
@ -744,7 +741,7 @@
|
|||||||
"Last Assistant Prefix": "Последний префикс ассистента",
|
"Last Assistant Prefix": "Последний префикс ассистента",
|
||||||
"System Instruction Prefix": "Префикс системной инструкции",
|
"System Instruction Prefix": "Префикс системной инструкции",
|
||||||
"User Filler Message": "Принудительное сообщение пользователя",
|
"User Filler Message": "Принудительное сообщение пользователя",
|
||||||
"Permanent": "перманентных",
|
"Permanent": "постоянных",
|
||||||
"Alt. Greetings": "Др. варианты",
|
"Alt. Greetings": "Др. варианты",
|
||||||
"Smooth Streaming": "Плавный стриминг",
|
"Smooth Streaming": "Плавный стриминг",
|
||||||
"Save checkpoint": "Сохранить чекпоинт",
|
"Save checkpoint": "Сохранить чекпоинт",
|
||||||
@ -1227,7 +1224,6 @@
|
|||||||
"JSON-serialized array of strings.": "Список строк в формате JSON.",
|
"JSON-serialized array of strings.": "Список строк в формате JSON.",
|
||||||
"Mirostat_desc": "Mirostat - своего рода термометр, измеряющий перплексию для выводимого текста.\nMirostat подгоняет перплексию генерируемого текста к перплексии входного текста, что позволяет избежать повторов.\n(когда по мере генерации текста авторегрессионным инференсом, перплексия всё больше приближается к нулю)\n а также ловушки перплексии (когда перплексия начинает уходить в сторону)\nБолее подробное описание в статье Mirostat: A Neural Text Decoding Algorithm that Directly Controls Perplexity by Basu et al. (2020).\nРежим выбирает версию Mirostat. 0=отключить, 1=Mirostat 1.0 (только llama.cpp), 2=Mirostat 2.0.",
|
"Mirostat_desc": "Mirostat - своего рода термометр, измеряющий перплексию для выводимого текста.\nMirostat подгоняет перплексию генерируемого текста к перплексии входного текста, что позволяет избежать повторов.\n(когда по мере генерации текста авторегрессионным инференсом, перплексия всё больше приближается к нулю)\n а также ловушки перплексии (когда перплексия начинает уходить в сторону)\nБолее подробное описание в статье Mirostat: A Neural Text Decoding Algorithm that Directly Controls Perplexity by Basu et al. (2020).\nРежим выбирает версию Mirostat. 0=отключить, 1=Mirostat 1.0 (только llama.cpp), 2=Mirostat 2.0.",
|
||||||
"Helpful tip coming soon.": "Подсказку скоро добавим.",
|
"Helpful tip coming soon.": "Подсказку скоро добавим.",
|
||||||
"Temperature_Last_desc": "Использовать Temperature сэмплер в последнюю очередь. Это почти всегда разумно.\nПри включении: сначала выборка набора правдоподобных токенов, затем применение Temperature для корректировки их относительных вероятностей (технически, логитов).\nПри отключении: сначала применение Temperature для корректировки относительных вероятностей ВСЕХ токенов, затем выборка правдоподобных токенов из этого.\nОтключение Temperature Last увеличивает вероятности в хвосте распределения, что увеличивает шансы получить несогласованный ответ.",
|
|
||||||
"Speculative Ngram": "Speculative Ngram",
|
"Speculative Ngram": "Speculative Ngram",
|
||||||
"Use a different speculative decoding method without a draft model": "Use a different speculative decoding method without a draft model.\rUsing a draft model is preferred. Speculative ngram is not as effective.",
|
"Use a different speculative decoding method without a draft model": "Use a different speculative decoding method without a draft model.\rUsing a draft model is preferred. Speculative ngram is not as effective.",
|
||||||
"Spaces Between Special Tokens": "Spaces Between Special Tokens",
|
"Spaces Between Special Tokens": "Spaces Between Special Tokens",
|
||||||
@ -1734,7 +1730,7 @@
|
|||||||
"markdown_hotkeys_desc": "Включить горячие клавиши для вставки символов разметки в некоторых полях ввода. См. '/help hotkeys'.",
|
"markdown_hotkeys_desc": "Включить горячие клавиши для вставки символов разметки в некоторых полях ввода. См. '/help hotkeys'.",
|
||||||
"Save and Update": "Сохранить и обновить",
|
"Save and Update": "Сохранить и обновить",
|
||||||
"Profile name:": "Название профиля:",
|
"Profile name:": "Название профиля:",
|
||||||
"API returned an error": "API вернуло ошибку",
|
"API returned an error": "API ответило ошибкой",
|
||||||
"Failed to save preset": "Не удалось сохранить пресет",
|
"Failed to save preset": "Не удалось сохранить пресет",
|
||||||
"Preset name should be unique.": "Название пресета должно быть уникальным.",
|
"Preset name should be unique.": "Название пресета должно быть уникальным.",
|
||||||
"Invalid file": "Невалидный файл",
|
"Invalid file": "Невалидный файл",
|
||||||
@ -1756,8 +1752,7 @@
|
|||||||
"dot quota_error": "имеется достаточно кредитов.",
|
"dot quota_error": "имеется достаточно кредитов.",
|
||||||
"If you have sufficient credits, please try again later.": "Если кредитов достаточно, то повторите попытку позднее.",
|
"If you have sufficient credits, please try again later.": "Если кредитов достаточно, то повторите попытку позднее.",
|
||||||
"Proxy preset '${0}' not found": "Пресет '${0}' не найден",
|
"Proxy preset '${0}' not found": "Пресет '${0}' не найден",
|
||||||
"Window.ai returned an error": "Window.ai вернул ошибку",
|
"Window.ai returned an error": "Window.ai ответил ошибкой",
|
||||||
"Get it here:": "Загрузите здесь:",
|
|
||||||
"Extension is not installed": "Расширение не установлено",
|
"Extension is not installed": "Расширение не установлено",
|
||||||
"Update or remove your reverse proxy settings.": "Измените или удалите ваши настройки прокси.",
|
"Update or remove your reverse proxy settings.": "Измените или удалите ваши настройки прокси.",
|
||||||
"An error occurred while importing prompts. More info available in console.": "В процессе импорта произошла ошибка. Подробную информацию см. в консоли.",
|
"An error occurred while importing prompts. More info available in console.": "В процессе импорта произошла ошибка. Подробную информацию см. в консоли.",
|
||||||
@ -1866,7 +1861,7 @@
|
|||||||
"Group Chat could not be saved": "Не удалось сохранить групповой чат",
|
"Group Chat could not be saved": "Не удалось сохранить групповой чат",
|
||||||
"Deleted group member swiped. To get a reply, add them back to the group.": "Вы пытаетесь свайпнуть удалённого члена группы. Чтобы получить ответ, добавьте этого персонажа обратно в группу.",
|
"Deleted group member swiped. To get a reply, add them back to the group.": "Вы пытаетесь свайпнуть удалённого члена группы. Чтобы получить ответ, добавьте этого персонажа обратно в группу.",
|
||||||
"Currently no group selected.": "В данный момент не выбрано ни одной группы.",
|
"Currently no group selected.": "В данный момент не выбрано ни одной группы.",
|
||||||
"Not so fast! Wait for the characters to stop typing before deleting the group.": "Чуть помедленнее! Перед удалением группы дождитесь, пока персонаж закончит печатать.",
|
"Not so fast! Wait for the characters to stop typing before deleting the group.": "Чуть помедленнее! Перед удалением группы дождитесь, пока персонажи закончат печатать.",
|
||||||
"Delete the group?": "Удалить группу?",
|
"Delete the group?": "Удалить группу?",
|
||||||
"This will also delete all your chats with that group. If you want to delete a single conversation, select a \"View past chats\" option in the lower left menu.": "Вместе с ней будут удалены и все её чаты. Если требуется удалить только один чат, воспользуйтесь кнопкой \"Все чаты\" в меню в левом нижнем углу.",
|
"This will also delete all your chats with that group. If you want to delete a single conversation, select a \"View past chats\" option in the lower left menu.": "Вместе с ней будут удалены и все её чаты. Если требуется удалить только один чат, воспользуйтесь кнопкой \"Все чаты\" в меню в левом нижнем углу.",
|
||||||
"Can't peek a character while group reply is being generated": "Невозможно открыть карточку персонажа во время генерации ответа",
|
"Can't peek a character while group reply is being generated": "Невозможно открыть карточку персонажа во время генерации ответа",
|
||||||
@ -1997,7 +1992,7 @@
|
|||||||
"Default persona deleted": "Удалена персона по умолчанию",
|
"Default persona deleted": "Удалена персона по умолчанию",
|
||||||
"The locked persona was deleted. You will need to set a new persona for this chat.": "Удалена привязанная к чату персона. Вам будет необходимо выбрать новую фиксированную персону для этого чата.",
|
"The locked persona was deleted. You will need to set a new persona for this chat.": "Удалена привязанная к чату персона. Вам будет необходимо выбрать новую фиксированную персону для этого чата.",
|
||||||
"Persona deleted": "Персона удалена",
|
"Persona deleted": "Персона удалена",
|
||||||
"You must bind a name to this persona before you can set it as the default.": "Прежде чем установить эту персону в качестве персоны по умолчанию, ей необходимо задать имя.",
|
"You must bind a name to this persona before you can set it as the default.": "Прежде чем установить эту персону в качестве персоны по умолчанию, ей необходимо присвоить имя.",
|
||||||
"Persona name not set": "У персоны отсутствует имя",
|
"Persona name not set": "У персоны отсутствует имя",
|
||||||
"Are you sure you want to remove the default persona?": "Вы точно хотите снять статус персоны по умолчанию?",
|
"Are you sure you want to remove the default persona?": "Вы точно хотите снять статус персоны по умолчанию?",
|
||||||
"This persona will no longer be used by default when you open a new chat.": "Эта персона больше не будет автоматически выбираться при старте нового чата",
|
"This persona will no longer be used by default when you open a new chat.": "Эта персона больше не будет автоматически выбираться при старте нового чата",
|
||||||
@ -2203,5 +2198,127 @@
|
|||||||
"Input:": "Входные данные:",
|
"Input:": "Входные данные:",
|
||||||
"Tokenized text:": "Токенизированный текст:",
|
"Tokenized text:": "Токенизированный текст:",
|
||||||
"Token IDs:": "Идентификаторы токенов:",
|
"Token IDs:": "Идентификаторы токенов:",
|
||||||
"Tokens:": "Токенов:"
|
"Tokens:": "Токенов:",
|
||||||
|
"Max prompt cost:": "Макс. стоимость промпта:",
|
||||||
|
"Reset custom sampler selection": "Сбросить подборку семплеров",
|
||||||
|
"Here you can toggle the display of individual samplers. (WIP)": "Здесь можно включить или выключить отображение каждого из сэмплеров отдельно. (WIP)",
|
||||||
|
"Request Model Reasoning": "Запрашивать цепочку рассуждений",
|
||||||
|
"Reasoning": "Рассуждения / Reasoning",
|
||||||
|
"Auto-Parse": "Авто-парсинг",
|
||||||
|
"reasoning_auto_parse": "Автоматически считывать блоки рассуждений, расположенные между префиксом и суффиксом рассуждений. Для работы должно быть указано и то, и другое.",
|
||||||
|
"Auto-Expand": "Разворачивать",
|
||||||
|
"reasoning_auto_expand": "Автоматически разворачивать блоки рассуждений.",
|
||||||
|
"Show Hidden": "Показывать время",
|
||||||
|
"reasoning_show_hidden": "Отображать затраченное на рассуждения время для моделей со скрытой цепочкой рассуждений",
|
||||||
|
"Add to Prompts": "Добавлять в промпт",
|
||||||
|
"reasoning_add_to_prompts": "Добавлять существующие блоки рассуждений в промпт. Для добавления новых используйте меню редактирования сообщений.",
|
||||||
|
"reasoning_max_additions": "Макс. кол-во блоков рассуждений в промпте, считается от последнего сообщения",
|
||||||
|
"Max": "Макс.",
|
||||||
|
"Reasoning Formatting": "Форматирование рассуждений",
|
||||||
|
"Prefix": "Префикс",
|
||||||
|
"Suffix": "Постфикс",
|
||||||
|
"Separator": "Разделитель",
|
||||||
|
"reasoning_separator": "Вставляется между рассуждениями и содержанием самого сообщения.",
|
||||||
|
"reasoning_prefix": "Вставляется перед рассуждениями.",
|
||||||
|
"reasoning_suffix": "Вставляется после рассуждений.",
|
||||||
|
"Seed_desc": "Фиксированное значение зерна позволяет получать предсказуемые, одинаковые результаты на одинаковых настройках. Поставьте -1 для рандомного зерна.",
|
||||||
|
"# of Beams": "Кол-во лучей",
|
||||||
|
"The number of sequences generated at each step with Beam Search.": "Кол-во вариантов, генерируемых Beam Search на каждом шаге работы.",
|
||||||
|
"Penalize sequences based on their length.": "Штрафует строки в зависимости от длины",
|
||||||
|
"Controls the stopping condition for beam search. If checked, the generation stops as soon as there are '# of Beams' sequences. If not checked, a heuristic is applied and the generation is stopped when it's very unlikely to find better candidates.": "Определяет, когда останавливать работу Beam Search. Поставив галочку, вы укажете поиску остановиться тогда, когда будет достигнуто кол-во лучей из соответствующего поля. Если галочку не отмечать, то генерация остановится тогда, когда сочтёт, что дальше найти лучших кандидатов слишком маловероятно.",
|
||||||
|
"A greedy, brute-force algorithm used in LLM sampling to find the most likely sequence of words or tokens. It expands multiple candidate sequences at once, maintaining a fixed number (beam width) of top sequences at each step.": "Жадный алгоритм LLM-сэмплинга, подбирающий наиболее вероятную последовательность слов или токенов путём исследования и расширения сразу нескольких вариантов. На каждом шаге он удерживает фиксированное кол-во самых подходящих вариантов (ширина луча).",
|
||||||
|
"Smooth_Sampling_desc": "Изменяет распределение с помощью квадратичных и кубических преобразований. Снижение Коэффициента сглаживания даёт более креативные ответы, обычно идеальное значение находится в диапазоне 0.2-0.3 (при кривой сглаживания=1.0). Повышение значения Кривой сглаживания сделает кривую круче, что приведёт к более агрессивной фильтрации маловероятных вариантов. Установив Кривую сглаживания = 1.0, вы фактически нейтрализуете этот параметр и будете работать только с Коэффициентом",
|
||||||
|
"Temperature_Last_desc": "Применять сэмплер Температуры в последнюю очередь. Почти всегда оправдано.\nПри включении: сначала все токены семплируются, и затем температура регулирует распределение у оставшихся (технически, у оставшихся логитов).\nПри выключении: сначала температура настраивает распределение ВСЕХ токенов, и потом они семплируются уже с этим обновлённым распределением.\nПри отключении этой опции токены в хвосте получают больше шансов попасть в итоговую последовательность, что может привести к менее связным и логичным ответам.",
|
||||||
|
"Swipe # for All Messages": "Номер свайпа на всех сообщениях",
|
||||||
|
"Display swipe numbers for all messages, not just the last.": "Отображать номер свайпа для всех сообщений, а не только для последнего.",
|
||||||
|
"Penalty Range": "Окно для штрафа",
|
||||||
|
"Never": "Никогда",
|
||||||
|
"Groups and Past Personas": "Для групп и прошлых персон",
|
||||||
|
"Always": "Всегда",
|
||||||
|
"Request model reasoning": "Запрашивать рассуждения",
|
||||||
|
"Allows the model to return its thinking process.": "Позволяет модели высылать в ответе свою цепочку рассуждений.",
|
||||||
|
"Rename Persona": "Переименовать персону",
|
||||||
|
"Change Persona Image": "Изменить изображение персоны",
|
||||||
|
"Duplicate Persona": "Клонировать персону",
|
||||||
|
"Delete Persona": "Удалить персону",
|
||||||
|
"Enter a new name for this persona:": "Введите новое имя персоны:",
|
||||||
|
"Connections": "Связи",
|
||||||
|
"Click to select this as default persona for the new chats. Click again to remove it.": "Нажмите, чтобы установить эту персону стандартной для всех новых чатов. Нажмите ещё раз, чтобы отключить.",
|
||||||
|
"Character": "Персонаж",
|
||||||
|
"Click to lock your selected persona to the current character. Click again to remove the lock.": "Нажмите, чтобы закрепить эту персону для текущего персонажа. Нажмите ещё раз, чтобы открепить.",
|
||||||
|
"Chat": "Чат",
|
||||||
|
"[No character connections. Click one of the buttons above to connect this persona.]": "[Связи отсутствуют. Нажмите на одну из кнопок выше, чтобы создать.]",
|
||||||
|
"Global Settings": "Общие настройки",
|
||||||
|
"Allow multiple persona connections per character": "Разрешить привязывать несколько персон к одному персонажу",
|
||||||
|
"When multiple personas are connected to a character, a popup will appear to select which one to use": "При связывании нескольких персон с персонажем, будет появляться окошко с предложением выбрать нужную.",
|
||||||
|
"Auto-lock a chosen persona to the chat": "Автоматически привязывать выбранную персону к чату",
|
||||||
|
"Whenever a persona is selected, it will be locked to the current chat and automatically selected when the chat is opened.": "При выборе новой персоны она автоматически будет привязана к текущему чату, и будет выбираться при его открытии.",
|
||||||
|
"Current Persona": "Текущая персона",
|
||||||
|
"The chat has been successfully converted!": "Чат успешно преобразован!",
|
||||||
|
"Manual": "Когда вы скажете",
|
||||||
|
"Auto Mode delay": "Задержка авто-режима",
|
||||||
|
"Use tag as folder": "Тег-папка",
|
||||||
|
"All connections to ${0} have been removed.": "Все связи с персонажем ${0} были удалены.",
|
||||||
|
"Personas Unlocked": "Персоны отвязаны",
|
||||||
|
"Remove All Connections": "Удалить все связи",
|
||||||
|
"Persona ${0} selected and auto-locked to current chat": "Персона ${0} выбрана и автоматически закреплена за этим чатом",
|
||||||
|
"This persona is only temporarily chosen. Click for more info.": "Данная персона выбрана лишь временно. Нажмите, чтобы узнать больше.",
|
||||||
|
"Temporary Persona": "Временная персона",
|
||||||
|
"A different persona is locked to this chat, or you have a different default persona set. The currently selected persona will only be temporary, and resets on reload. Consider locking this persona to the chat if you want to permanently use it.": "К этому чату уже привязана иная персона, либо у вас выбрана иная персона по-умолчанию. Выбранная в данный момент персона будет временной, и сбросится после перезагрузки. Если хотите всегда использовать её в этом чате, советуем её прикрепить.",
|
||||||
|
"Current Persona: ${0}": "Выбранная персона: ${0}",
|
||||||
|
"Chat persona: ${0}": "Персона для этого чата: ${0}",
|
||||||
|
"Default persona: ${0}": "Персона по умолчанию (стандартная): ${0}",
|
||||||
|
"Persona ${0} is now unlocked from this chat.": "Персона ${0} отвязана от этого чата.",
|
||||||
|
"Persona Unlocked": "Персона отвязана",
|
||||||
|
"Persona ${0} is now unlocked from character ${1}.": "Персона ${0} отвязана от персонажа ${1}.",
|
||||||
|
"Persona Not Found": "Персона не найдена",
|
||||||
|
"Persona Locked": "Персона закреплена",
|
||||||
|
"User persona ${0} is locked to character ${1}${2}": "Персона ${0} прикреплена к персонажу ${1}${2}",
|
||||||
|
"Persona Name Not Set": "У персоны отсутствует имя",
|
||||||
|
"You must bind a name to this persona before you can set a lorebook.": "Перед привязкой лорбука персоне необходимо присвоить имя.",
|
||||||
|
"Default Persona Removed": "Персона по умолчанию снята",
|
||||||
|
"Persona is locked to the current character": "Персона закреплена за этим персонажем",
|
||||||
|
"Persona is locked to the current chat": "Персона закреплена за этим чатом",
|
||||||
|
"characters": "перс.",
|
||||||
|
"character": "персонаж",
|
||||||
|
"in this group": "в группе",
|
||||||
|
"Chatting Since": "Первая беседа",
|
||||||
|
"Context": "Контекст",
|
||||||
|
"Response": "Ответ",
|
||||||
|
"Connected": "Подключено",
|
||||||
|
"Enter new background name:": "Введите новое название для фона:",
|
||||||
|
"AI Horde Website": "Сайт AI Horde",
|
||||||
|
"Enable web search": "Включить поиск в Интернете",
|
||||||
|
"Use search capabilities provided by the backend.": "Разрешить использование предоставляемых бэкендом функций поиска.",
|
||||||
|
"Request inline images": "Запрашивать inline-изображения",
|
||||||
|
"Allows the model to return image attachments.": "Разрешить модели отправлять вложения в виде картинок.",
|
||||||
|
"Request inline images_desc_2": "Не совместимо со следующим функционалом: вызов функций, поиск в Интернете, системный промпт.",
|
||||||
|
"Connected Personas": "Связанные персоны",
|
||||||
|
"[Currently no personas connected]": "[Связанных персон нет]",
|
||||||
|
"The following personas are connected to the current character.\n\nClick on a persona to select it for the current character.\nShift + Click to unlink the persona from the character.": "С этим персонажем связаны следующие персоны.\n\nНажмите на персону, чтобы выбрать её для данного персонажа.\nShift + ЛКМ, чтобы её отвязать.",
|
||||||
|
"Persona Connections": "Связи с персонами",
|
||||||
|
"Pooled order": "Если уже давно не отвечали",
|
||||||
|
"Attach a File": "Приложить файл",
|
||||||
|
"Attach a file or image to a current chat.": "Приложить файл или изображение к текущему чату",
|
||||||
|
"Remove the file": "Удалить файл",
|
||||||
|
"Delete the Chat File?": "Удалить чат?",
|
||||||
|
"Forbidden": "Доступ запрещён",
|
||||||
|
"To view your API keys here, set the value of allowKeysExposure to true in config.yaml file and restart the SillyTavern server.": "Чтобы видеть здесь ваши API-ключи, установите параметр allowKeysExposure в config.yaml в положение true, после чего перезапустите сервер SillyTavern.",
|
||||||
|
"Invalid endpoint URL. Requests may fail.": "Некорректный адрес эндпоинта. Запросы могут не проходить.",
|
||||||
|
"How to install extensions?": "Как устанавливать расширения?",
|
||||||
|
"Click the flashing button to install extensions.": "Чтобы их установить, нажмите на мигающую кнопку.",
|
||||||
|
"ext_regex_reasoning_desc": "Содержимое блоков рассуждений. При отмеченной галочке \"Только промпт\" будут также обработаны добавленные в промпт рассуждения.",
|
||||||
|
"Macro in Find Regex": "Макросы в рег. выражении",
|
||||||
|
"Don't substitute": "Не заменять",
|
||||||
|
"Substitute (raw)": "Заменять в \"чистом\" виде",
|
||||||
|
"Substitute (escaped)": "Заменять после экранирования",
|
||||||
|
"ext_regex_other_options_desc": "По умолчанию, расширение вносит изменения в сам файл чата.\nПри включении одной из опций (или обеих), файл чата останется нетронутым, при этом сами изменения по-прежнему будут действовать.",
|
||||||
|
"ext_regex_flags_help": "Нажмите, чтобы узнать больше о флагах в рег. выражениях.",
|
||||||
|
"Applies to all matches": "Заменяет все вхождения",
|
||||||
|
"Applies to the first match": "Заменяет первое вхождение",
|
||||||
|
"Case insensitive": "Не чувствительно к регистру",
|
||||||
|
"Case sensitive": "Чувствительно к регистру",
|
||||||
|
"Find Regex is empty": "Рег. выражение не указано",
|
||||||
|
"Click the button to save it as a file.": "Нажмите на кнопку справа, чтобы сохранить его в файл.",
|
||||||
|
"Export as JSONL": "Экспорт в формате JSONL"
|
||||||
}
|
}
|
||||||
|
@ -1019,7 +1019,7 @@ export function displayOnlineStatus() {
|
|||||||
$('.online_status_text').text($('#API-status-top').attr('no_connection_text'));
|
$('.online_status_text').text($('#API-status-top').attr('no_connection_text'));
|
||||||
} else {
|
} else {
|
||||||
$('.online_status_indicator').addClass('success');
|
$('.online_status_indicator').addClass('success');
|
||||||
$('.online_status_text').text(online_status);
|
$('.online_status_text').text(t([online_status]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10417,7 +10417,7 @@ jQuery(async function () {
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
chat_file_for_del = $(this).attr('file_name');
|
chat_file_for_del = $(this).attr('file_name');
|
||||||
console.debug('detected cross click for' + chat_file_for_del);
|
console.debug('detected cross click for' + chat_file_for_del);
|
||||||
callPopup('<h3>Delete the Chat File?</h3>', 'del_chat');
|
callPopup('<h3>' + t`Delete the Chat File?` + '</h3>', 'del_chat');
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#advanced_div').click(function () {
|
$('#advanced_div').click(function () {
|
||||||
|
@ -5,6 +5,7 @@ import { saveMetadataDebounced } from './extensions.js';
|
|||||||
import { SlashCommand } from './slash-commands/SlashCommand.js';
|
import { SlashCommand } from './slash-commands/SlashCommand.js';
|
||||||
import { SlashCommandParser } from './slash-commands/SlashCommandParser.js';
|
import { SlashCommandParser } from './slash-commands/SlashCommandParser.js';
|
||||||
import { flashHighlight, stringFormat } from './utils.js';
|
import { flashHighlight, stringFormat } from './utils.js';
|
||||||
|
import { t } from './i18n.js';
|
||||||
|
|
||||||
const BG_METADATA_KEY = 'custom_background';
|
const BG_METADATA_KEY = 'custom_background';
|
||||||
const LIST_METADATA_KEY = 'chat_backgrounds';
|
const LIST_METADATA_KEY = 'chat_backgrounds';
|
||||||
@ -243,7 +244,7 @@ async function getNewBackgroundName(referenceElement) {
|
|||||||
const fileExtension = oldBg.split('.').pop();
|
const fileExtension = oldBg.split('.').pop();
|
||||||
const fileNameBase = isCustom ? oldBg.split('/').pop() : oldBg;
|
const fileNameBase = isCustom ? oldBg.split('/').pop() : oldBg;
|
||||||
const oldBgExtensionless = fileNameBase.replace(`.${fileExtension}`, '');
|
const oldBgExtensionless = fileNameBase.replace(`.${fileExtension}`, '');
|
||||||
const newBgExtensionless = await callPopup('<h3>Enter new background name:</h3>', 'input', oldBgExtensionless);
|
const newBgExtensionless = await callPopup('<h3>' + t`Enter new background name:` + '</h3>', 'input', oldBgExtensionless);
|
||||||
|
|
||||||
if (!newBgExtensionless) {
|
if (!newBgExtensionless) {
|
||||||
console.debug('no new_bg_extensionless');
|
console.debug('no new_bg_extensionless');
|
||||||
|
@ -358,7 +358,7 @@ export async function convertSoloToGroupChat() {
|
|||||||
// Click on the freshly selected group to open it
|
// Click on the freshly selected group to open it
|
||||||
await openGroupById(group.id);
|
await openGroupById(group.id);
|
||||||
|
|
||||||
toastr.success('The chat has been successfully converted!');
|
toastr.success(t`The chat has been successfully converted!`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -424,7 +424,7 @@ jQuery(async () => {
|
|||||||
installHintButton.on('click', async function () {
|
installHintButton.on('click', async function () {
|
||||||
const installButton = $('#third_party_extension_button');
|
const installButton = $('#third_party_extension_button');
|
||||||
flashHighlight(installButton, 5000);
|
flashHighlight(installButton, 5000);
|
||||||
toastr.info('Click the flashing button to install extensions.', 'How to install extensions?');
|
toastr.info(t`Click the flashing button to install extensions.`, t`How to install extensions?`);
|
||||||
});
|
});
|
||||||
|
|
||||||
const connectButton = windowHtml.find('#assets-connect-button');
|
const connectButton = windowHtml.find('#assets-connect-button');
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<div id="attachFile" class="list-group-item flex-container flexGap5" title="Attach a file or image to a current chat.">
|
<div id="attachFile" class="list-group-item flex-container flexGap5" data-i18n="[title]Attach a file or image to a current chat." title="Attach a file or image to a current chat.">
|
||||||
<div class="fa-fw fa-solid fa-paperclip extensionsMenuExtensionButton"></div>
|
<div class="fa-fw fa-solid fa-paperclip extensionsMenuExtensionButton"></div>
|
||||||
<span data-i18n="Attach a File">Attach a File</span>
|
<span data-i18n="Attach a File">Attach a File</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<div id="regex_info_block_wrapper">
|
<div id="regex_info_block_wrapper">
|
||||||
<div id="regex_info_block" class="info-block"></div>
|
<div id="regex_info_block" class="info-block"></div>
|
||||||
<a id="regex_info_block_flags_hint" href="https://docs.sillytavern.app/extensions/regex/#flags" target="_blank" rel="noopener noreferrer">
|
<a id="regex_info_block_flags_hint" href="https://docs.sillytavern.app/extensions/regex/#flags" target="_blank" rel="noopener noreferrer">
|
||||||
<i class="fa-solid fa-circle-info" title="Click here to learn more about regex flags."></i>
|
<i class="fa-solid fa-circle-info" data-i18n="[title]ext_regex_flags_help" title="Click here to learn more about regex flags."></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -147,7 +147,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<span>
|
<span>
|
||||||
<small data-i18n="ext_regex_other_options" data-i18n="Ephemerality">Ephemerality</small>
|
<small data-i18n="ext_regex_other_options" data-i18n="Ephemerality">Ephemerality</small>
|
||||||
<span class="fa-solid fa-circle-question note-link-span" title="By default, regex scripts alter the chat file directly and irreversibly. Enabling either (or both) of the options below will prevent chat file alteration, while still altering the specified item(s)."></span>
|
<span class="fa-solid fa-circle-question note-link-span" data-i18n="[title]ext_regex_other_options_desc" title="By default, regex scripts alter the chat file directly and irreversibly. Enabling either (or both) of the options below will prevent chat file alteration, while still altering the specified item(s)."></span>
|
||||||
</span>
|
</span>
|
||||||
<label class="checkbox flex-container" data-i18n="[title]ext_regex_only_format_visual_desc" title="Chat history file contents won't change, but regex will be applied to the messages displayed in the Chat UI.">
|
<label class="checkbox flex-container" data-i18n="[title]ext_regex_only_format_visual_desc" title="Chat history file contents won't change, but regex will be applied to the messages displayed in the Chat UI.">
|
||||||
<input type="checkbox" name="only_format_display" />
|
<input type="checkbox" name="only_format_display" />
|
||||||
|
@ -398,7 +398,7 @@ function runRegexCallback(args, value) {
|
|||||||
for (const script of scripts) {
|
for (const script of scripts) {
|
||||||
if (script.scriptName.toLowerCase() === scriptName.toLowerCase()) {
|
if (script.scriptName.toLowerCase() === scriptName.toLowerCase()) {
|
||||||
if (script.disabled) {
|
if (script.disabled) {
|
||||||
toastr.warning(`Regex script "${scriptName}" is disabled.`);
|
toastr.warning(t`Regex script "${scriptName}" is disabled.`);
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -696,7 +696,7 @@ export function getGroupBlock(group) {
|
|||||||
template.find('.group_fav_icon').css('display', 'none');
|
template.find('.group_fav_icon').css('display', 'none');
|
||||||
template.addClass(group.fav ? 'is_fav' : '');
|
template.addClass(group.fav ? 'is_fav' : '');
|
||||||
template.find('.ch_fav').val(group.fav);
|
template.find('.ch_fav').val(group.fav);
|
||||||
template.find('.group_select_counter').text(`${count} ${count != 1 ? 'characters' : 'character'}`);
|
template.find('.group_select_counter').text(count + ' ' + (count != 1 ? t`characters` : t`character`));
|
||||||
template.find('.group_select_block_list').text(namesList.join(', '));
|
template.find('.group_select_block_list').text(namesList.join(', '));
|
||||||
|
|
||||||
// Display inline tags
|
// Display inline tags
|
||||||
|
@ -10,6 +10,7 @@ import { SECRET_KEYS, writeSecret } from './secrets.js';
|
|||||||
import { delay } from './utils.js';
|
import { delay } from './utils.js';
|
||||||
import { isMobile } from './RossAscends-mods.js';
|
import { isMobile } from './RossAscends-mods.js';
|
||||||
import { autoSelectInstructPreset } from './instruct-mode.js';
|
import { autoSelectInstructPreset } from './instruct-mode.js';
|
||||||
|
import { t } from './i18n.js';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
horde_settings,
|
horde_settings,
|
||||||
@ -169,7 +170,7 @@ async function adjustHordeGenerationParams(max_context_length, max_length) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(maxContextLength, maxLength);
|
console.log(maxContextLength, maxLength);
|
||||||
$('#adjustedHordeParams').text(`Context: ${maxContextLength}, Response: ${maxLength}`);
|
$('#adjustedHordeParams').text(t`Context` + `: ${maxContextLength}, ` + t`Response` + `: ${maxLength}`);
|
||||||
return { maxContextLength, maxLength };
|
return { maxContextLength, maxLength };
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +178,7 @@ function setContextSizePreview() {
|
|||||||
if (horde_settings.models.length) {
|
if (horde_settings.models.length) {
|
||||||
adjustHordeGenerationParams(max_context, amount_gen);
|
adjustHordeGenerationParams(max_context, amount_gen);
|
||||||
} else {
|
} else {
|
||||||
$('#adjustedHordeParams').text('Context: --, Response: --');
|
$('#adjustedHordeParams').text(t`Context` + ': --, ' + t`Response` + ': --');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,7 +405,7 @@ jQuery(function () {
|
|||||||
if (horde_settings.models.length) {
|
if (horde_settings.models.length) {
|
||||||
adjustHordeGenerationParams(max_context, amount_gen);
|
adjustHordeGenerationParams(max_context, amount_gen);
|
||||||
} else {
|
} else {
|
||||||
$('#adjustedHordeParams').text('Context: --, Response: --');
|
$('#adjustedHordeParams').text(t`Context` + ': --, ' + t`Response` + ': --');
|
||||||
}
|
}
|
||||||
|
|
||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
|
@ -800,7 +800,7 @@ async function selectCurrentPersona({ toastPersonaNameChange = true } = {}) {
|
|||||||
chat_metadata['persona'] = user_avatar;
|
chat_metadata['persona'] = user_avatar;
|
||||||
console.log(`Auto locked persona to ${user_avatar}`);
|
console.log(`Auto locked persona to ${user_avatar}`);
|
||||||
if (toastPersonaNameChange && power_user.persona_show_notifications) {
|
if (toastPersonaNameChange && power_user.persona_show_notifications) {
|
||||||
toastr.success(`Persona ${personaName} selected and auto-locked to current chat`, t`Persona Selected`);
|
toastr.success(t`Persona ${personaName} selected and auto-locked to current chat`, t`Persona Selected`);
|
||||||
}
|
}
|
||||||
saveMetadataDebounced();
|
saveMetadataDebounced();
|
||||||
updatePersonaUIStates();
|
updatePersonaUIStates();
|
||||||
|
@ -9,6 +9,7 @@ import { power_user } from './power-user.js';
|
|||||||
//import { getSortableDelay, onlyUnique } from './utils.js';
|
//import { getSortableDelay, onlyUnique } from './utils.js';
|
||||||
//import { getCfgPrompt } from './cfg-scale.js';
|
//import { getCfgPrompt } from './cfg-scale.js';
|
||||||
import { setting_names } from './textgen-settings.js';
|
import { setting_names } from './textgen-settings.js';
|
||||||
|
import { renderTemplateAsync } from './templates.js';
|
||||||
|
|
||||||
|
|
||||||
const TGsamplerNames = setting_names;
|
const TGsamplerNames = setting_names;
|
||||||
@ -25,25 +26,7 @@ async function showSamplerSelectPopup() {
|
|||||||
const html = $(document.createElement('div'));
|
const html = $(document.createElement('div'));
|
||||||
html.attr('id', 'sampler_view_list')
|
html.attr('id', 'sampler_view_list')
|
||||||
.addClass('flex-container flexFlowColumn');
|
.addClass('flex-container flexFlowColumn');
|
||||||
html.append(`
|
html.append(await renderTemplateAsync('samplerSelector'));
|
||||||
<div class="title_restorable flexFlowColumn alignItemsBaseline">
|
|
||||||
<div class="flex-container justifyCenter">
|
|
||||||
<h3>Sampler Select</h3>
|
|
||||||
<div class="flex-container alignItemsBaseline">
|
|
||||||
<div id="resetSelectedSamplers" class="menu_button menu_button_icon" title="Reset custom sampler selection">
|
|
||||||
<i class="fa-solid fa-recycle"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--<div class="flex-container alignItemsBaseline">
|
|
||||||
<div class="menu_button menu_button_icon" title="Create a new sampler">
|
|
||||||
<i class="fa-solid fa-plus"></i>
|
|
||||||
<span data-i18n="Create">Create</span>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
</div>
|
|
||||||
<small>Here you can toggle the display of individual samplers. (WIP)</small>
|
|
||||||
</div>
|
|
||||||
<hr>`);
|
|
||||||
|
|
||||||
const listContainer = $('<div id="apiSamplersList" class="flex-container flexNoGap"></div>');
|
const listContainer = $('<div id="apiSamplersList" class="flex-container flexNoGap"></div>');
|
||||||
const APISamplers = await listSamplers(main_api);
|
const APISamplers = await listSamplers(main_api);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { DOMPurify } from '../lib.js';
|
import { DOMPurify } from '../lib.js';
|
||||||
import { callPopup, getRequestHeaders } from '../script.js';
|
import { callPopup, getRequestHeaders } from '../script.js';
|
||||||
|
import { t } from './i18n.js';
|
||||||
|
|
||||||
export const SECRET_KEYS = {
|
export const SECRET_KEYS = {
|
||||||
HORDE: 'api_key_horde',
|
HORDE: 'api_key_horde',
|
||||||
@ -104,7 +105,7 @@ async function viewSecrets() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (response.status == 403) {
|
if (response.status == 403) {
|
||||||
callPopup('<h3>Forbidden</h3><p>To view your API keys here, set the value of allowKeysExposure to true in config.yaml file and restart the SillyTavern server.</p>', 'text');
|
callPopup('<h3>' + t`Forbidden` + '</h3><p>' + t`To view your API keys here, set the value of allowKeysExposure to true in config.yaml file and restart the SillyTavern server.` + '</p>', 'text');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<div data-type="assistant_note">
|
<div data-type="assistant_note">
|
||||||
<div>
|
<div>
|
||||||
<b data-i18n="Note:">Note:</b> <span data-i18n="this chat is temporary and will be deleted as soon as you leave it.">this chat is temporary and will be deleted as soon as you leave it.</span>
|
<b data-i18n="Note:">Note:</b> <span data-i18n="this chat is temporary and will be deleted as soon as you leave it.">this chat is temporary and will be deleted as soon as you leave it.</span>
|
||||||
<span>Click the button to save it as a file.</span>
|
<span data-i18n="Click the button to save it as a file.">Click the button to save it as a file.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="assistant_note_export menu_button menu_button_icon" title="Export as JSONL">
|
<div class="assistant_note_export menu_button menu_button_icon" data-i18n="[title]Export as JSONL" title="Export as JSONL">
|
||||||
<i class="fa-solid fa-file-export"></i>
|
<i class="fa-solid fa-file-export"></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
18
public/scripts/templates/samplerSelector.html
Normal file
18
public/scripts/templates/samplerSelector.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<div class="title_restorable flexFlowColumn alignItemsBaseline">
|
||||||
|
<div class="flex-container justifyCenter">
|
||||||
|
<h3 data-i18n="Sampler Select">Sampler Select</h3>
|
||||||
|
<div class="flex-container alignItemsBaseline">
|
||||||
|
<div id="resetSelectedSamplers" class="menu_button menu_button_icon" data-i18n="[title]Reset custom sampler selection" title="Reset custom sampler selection">
|
||||||
|
<i class="fa-solid fa-recycle"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="flex-container alignItemsBaseline">
|
||||||
|
<div class="menu_button menu_button_icon" title="Create a new sampler">
|
||||||
|
<i class="fa-solid fa-plus"></i>
|
||||||
|
<span data-i18n="Create">Create</span>
|
||||||
|
</div>
|
||||||
|
</div>-->
|
||||||
|
</div>
|
||||||
|
<small data-i18n="Here you can toggle the display of individual samplers. (WIP)">Here you can toggle the display of individual samplers. (WIP)</small>
|
||||||
|
</div>
|
||||||
|
<hr>
|
Reference in New Issue
Block a user