Merge branch 'staging' into claude-no-filler
| @@ -229,6 +229,46 @@ SillyTavern сохраняет ключи от ваших API в файле `sec | |||
| 229 | 1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`. | 229 | 1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`. |
| 230 | 2. Перезапустите сервер SillyTavern. | 230 | 2. Перезапустите сервер SillyTavern. |
| 231 | 231 | ||
| 232 | ## Аргументы командной строки | ||
| 233 | |||
| 234 | Вы можете передавать аргументы командной строки при запуске сервера SillyTavern, чтобы переопределять настройки из `config.yaml`. | ||
| 235 | |||
| 236 | ### Примеры | ||
| 237 | |||
| 238 | ```shell | ||
| 239 | node server.js --port 8000 --listen false | ||
| 240 | # или | ||
| 241 | npm run start -- --port 8000 --listen false | ||
| 242 | # или (только на Windows) | ||
| 243 | Start.bat --port 8000 --listen false | ||
| 244 | ``` | ||
| 245 | |||
| 246 | ### Поддерживаемые аргументы | ||
| 247 | |||
| 248 | | Аргумент | Описание | Тип | | ||
| 249 | |-------------------------|----------------------------------------------------------------------------------------------------------------|----------| | ||
| 250 | | `--version` | Показывает номер версии. | boolean | | ||
| 251 | | `--enableIPv6` | Включает IPv6. | boolean | | ||
| 252 | | `--enableIPv4` | Включает IPv4. | boolean | | ||
| 253 | | `--port` | Устанавливает порт, котрый будет использовать SillyTavern. Если не указан, то используется yaml-конфиг 'port'. | number | | ||
| 254 | | `--dnsPreferIPv6` | Отдает предпочтение IPv6 для dns. Если не указан, то используется yaml-конфиг 'preferIPv6'. | boolean | | ||
| 255 | | `--autorun` | Автоматический запуск SillyTavern в браузере. Если не указан, то используется yaml-конфиг 'autorun'. | boolean | | ||
| 256 | | `--autorunHostname` | Имя хоста автозапуска, лучше оставить на 'auto'. | string | | ||
| 257 | | `--autorunPortOverride` | Переопределяет порт для автозапуска. | string | | ||
| 258 | | `--listen` | SillyTavern будет прослушивать все сетевые интерфейсы. Если не указан, то используется yaml-конфиг 'listen'. | boolean | | ||
| 259 | | `--corsProxy` | Включает CORS-прокси. Если не указан, то используется yaml-конфиг 'enableCorsProxy'. | boolean | | ||
| 260 | | `--disableCsrf` | Отключает защиту от CSRF. | boolean | | ||
| 261 | | `--ssl` | Включает SSL. | boolean | | ||
| 262 | | `--certPath` | Путь к файлу c сертификатом. | string | | ||
| 263 | | `--keyPath` | Путь к файлу с закрытым ключом. | string | | ||
| 264 | | `--whitelist` | Включает режим белого списка. | boolean | | ||
| 265 | | `--dataRoot` | Корневой каталог для хранения данных. | string | | ||
| 266 | | `--avoidLocalhost` | Избегает использования 'localhost' для автозапуска в режиме 'auto'. | boolean | | ||
| 267 | | `--basicAuthMode` | Включает простую аутентификацию. | boolean | | ||
| 268 | | `--requestProxyEnabled` | Разрешает использование прокси для исходящих запросов. | boolean | | ||
| 269 | | `--requestProxyUrl` | URL-адрес прокси (протоколы HTTP или SOCKS). | string | | ||
| 270 | | `--requestProxyBypass` | Bypass список прокси (список хостов, разделенных пробелами). | array | | ||
| 271 | |||
| 232 | ## Удалённое подключение | 272 | ## Удалённое подключение |
| 233 | 273 | ||
| 234 | В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети. | 274 | В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети. |
| @@ -1291,6 +1291,14 @@ | |||
| 1291 | <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01"> | 1291 | <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01"> |
| 1292 | <input class="neo-range-input" type="number" min="0" max="9" step="0.01" data-for="epsilon_cutoff_textgenerationwebui" id="epsilon_cutoff_counter_textgenerationwebui"> | 1292 | <input class="neo-range-input" type="number" min="0" max="9" step="0.01" data-for="epsilon_cutoff_textgenerationwebui" id="epsilon_cutoff_counter_textgenerationwebui"> |
| 1293 | </div> | 1293 | </div> |
| 1294 | <div data-tg-type="aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> | ||
| 1295 | <small> | ||
| 1296 | <span data-i18n="Top nsigma">Top nsigma</span> | ||
| 1297 | <div class="fa-solid fa-circle-info opacity50p" title="A sampling method that filters logits based on their statistical properties. It keeps tokens within n standard deviations of the maximum logit value, providing a simpler alternative to top-p/top-k sampling while maintaining sampling stability across different temperatures."></div> | ||
| 1298 | </small> | ||
| 1299 | <input class="neo-range-slider" type="range" id="nsigma_textgenerationwebui" name="volume" min="0" max="5" step="0.01"> | ||
| 1300 | <input class="neo-range-input" type="number" min="0" max="5" step="0.01" data-for="nsigma_textgenerationwebui" id="nsigma_counter_textgenerationwebui"> | ||
| 1301 | </div> | ||
| 1294 | <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> | 1302 | <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1295 | <small> | 1303 | <small> |
| 1296 | <span data-i18n="Eta Cutoff">Eta Cutoff</span> | 1304 | <span data-i18n="Eta Cutoff">Eta Cutoff</span> |
| @@ -1334,12 +1342,12 @@ | |||
| 1334 | <input class="neo-range-slider" type="range" id="presence_pen_textgenerationwebui" name="volume" min="-2" max="2" step="0.01" /> | 1342 | <input class="neo-range-slider" type="range" id="presence_pen_textgenerationwebui" name="volume" min="-2" max="2" step="0.01" /> |
| 1335 | <input class="neo-range-input" type="number" min="-2" max="2" step="0.01" data-for="presence_pen_textgenerationwebui" id="presence_pen_counter_textgenerationwebui"> | 1343 | <input class="neo-range-input" type="number" min="-2" max="2" step="0.01" data-for="presence_pen_textgenerationwebui" id="presence_pen_counter_textgenerationwebui"> |
| 1336 | </div> | 1344 | </div> |
| 1337 | <div data-tg-type="ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> | 1345 | <div data-tg-type="aphrodite, ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1338 | <small data-i18n="No Repeat Ngram Size">No Repeat Ngram Size</small> | 1346 | <small data-i18n="No Repeat Ngram Size">No Repeat Ngram Size</small> |
| 1339 | <input class="neo-range-slider" type="range" id="no_repeat_ngram_size_textgenerationwebui" name="volume" min="0" max="20" step="1"> | 1347 | <input class="neo-range-slider" type="range" id="no_repeat_ngram_size_textgenerationwebui" name="volume" min="0" max="20" step="1"> |
| 1340 | <input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="no_repeat_ngram_size_textgenerationwebui" id="no_repeat_ngram_size_counter_textgenerationwebui"> | 1348 | <input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="no_repeat_ngram_size_textgenerationwebui" id="no_repeat_ngram_size_counter_textgenerationwebui"> |
| 1341 | </div> | 1349 | </div> |
| 1342 | <div data-tg-type="tabby" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> | 1350 | <div data-tg-type="tabby, aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1343 | <small data-i18n="Skew">Skew</small> | 1351 | <small data-i18n="Skew">Skew</small> |
| 1344 | <input class="neo-range-slider" type="range" id="skew_textgenerationwebui" name="volume" min="-5" max="5" step="0.01" /> | 1352 | <input class="neo-range-slider" type="range" id="skew_textgenerationwebui" name="volume" min="-5" max="5" step="0.01" /> |
| 1345 | <input class="neo-range-input" type="number" min="-5" max="5" step="0.01" data-for="skew_textgenerationwebui" id="skew_counter_textgenerationwebui"> | 1353 | <input class="neo-range-input" type="number" min="-5" max="5" step="0.01" data-for="skew_textgenerationwebui" id="skew_counter_textgenerationwebui"> |
| @@ -1394,7 +1402,7 @@ | |||
| 1394 | </div> | 1402 | </div> |
| 1395 | </div> | 1403 | </div> |
| 1396 | 1404 | ||
| 1397 | <div data-tg-type="ooba, koboldcpp, tabby, llamacpp" id="dryBlock" class="wide100p"> | 1405 | <div data-tg-type="aphrodite, ooba, koboldcpp, tabby, llamacpp" id="dryBlock" class="wide100p"> |
| 1398 | <h4 class="wide100p textAlignCenter" title="DRY penalizes tokens that would extend the end of the input into a sequence that has previously occurred in the input. Set multiplier to 0 to disable." data-i18n="[title]DRY_Repetition_Penalty_desc"> | 1406 | <h4 class="wide100p textAlignCenter" title="DRY penalizes tokens that would extend the end of the input into a sequence that has previously occurred in the input. Set multiplier to 0 to disable." data-i18n="[title]DRY_Repetition_Penalty_desc"> |
| 1399 | <label data-i18n="DRY Repetition Penalty">DRY Repetition Penalty</label> | 1407 | <label data-i18n="DRY Repetition Penalty">DRY Repetition Penalty</label> |
| 1400 | <a href="https://github.com/oobabooga/text-generation-webui/pull/5677" target="_blank"> | 1408 | <a href="https://github.com/oobabooga/text-generation-webui/pull/5677" target="_blank"> |
| @@ -65,6 +65,11 @@ const parse_derivation = derivation => (typeof derivation === 'string') ? { | |||
| 65 | } : derivation; | 65 | } : derivation; |
| 66 | 66 | ||
| 67 | export async function deriveTemplatesFromChatTemplate(chat_template, hash) { | 67 | export async function deriveTemplatesFromChatTemplate(chat_template, hash) { |
| 68 | if (chat_template.trim() === '') { | ||
| 69 | console.log('Missing chat template.'); | ||
| 70 | return null; | ||
| 71 | } | ||
| 72 | |||
| 68 | if (hash in hash_derivations) { | 73 | if (hash in hash_derivations) { |
| 69 | return parse_derivation(hash_derivations[hash]); | 74 | return parse_derivation(hash_derivations[hash]); |
| 70 | } | 75 | } |
| @@ -642,6 +642,10 @@ async function CreateZenSliders(elmnt) { | |||
| 642 | numSteps = 50; | 642 | numSteps = 50; |
| 643 | decimals = 1; | 643 | decimals = 1; |
| 644 | } | 644 | } |
| 645 | if (sliderID == 'nsigma') { | ||
| 646 | numSteps = 50; | ||
| 647 | decimals = 1; | ||
| 648 | } | ||
| 645 | //customize steps | 649 | //customize steps |
| 646 | if (sliderID == 'mirostat_mode_textgenerationwebui' || | 650 | if (sliderID == 'mirostat_mode_textgenerationwebui' || |
| 647 | sliderID == 'mirostat_mode_kobold') { | 651 | sliderID == 'mirostat_mode_kobold') { |
| @@ -686,6 +690,7 @@ async function CreateZenSliders(elmnt) { | |||
| 686 | sliderID == 'penalty_alpha_textgenerationwebui' || | 690 | sliderID == 'penalty_alpha_textgenerationwebui' || |
| 687 | sliderID == 'length_penalty_textgenerationwebui' || | 691 | sliderID == 'length_penalty_textgenerationwebui' || |
| 688 | sliderID == 'epsilon_cutoff_textgenerationwebui' || | 692 | sliderID == 'epsilon_cutoff_textgenerationwebui' || |
| 693 | sliderID == 'nsigma' || | ||
| 689 | sliderID == 'rep_pen_range' || | 694 | sliderID == 'rep_pen_range' || |
| 690 | sliderID == 'eta_cutoff_textgenerationwebui' || | 695 | sliderID == 'eta_cutoff_textgenerationwebui' || |
| 691 | sliderID == 'top_a_textgenerationwebui' || | 696 | sliderID == 'top_a_textgenerationwebui' || |
| @@ -193,6 +193,7 @@ const settings = { | |||
| 193 | openrouter_allow_fallbacks: true, | 193 | openrouter_allow_fallbacks: true, |
| 194 | xtc_threshold: 0.1, | 194 | xtc_threshold: 0.1, |
| 195 | xtc_probability: 0, | 195 | xtc_probability: 0, |
| 196 | nsigma: 0.0, | ||
| 196 | featherless_model: '', | 197 | featherless_model: '', |
| 197 | }; | 198 | }; |
| 198 | 199 | ||
| @@ -265,6 +266,7 @@ export const setting_names = [ | |||
| 265 | 'openrouter_allow_fallbacks', | 266 | 'openrouter_allow_fallbacks', |
| 266 | 'xtc_threshold', | 267 | 'xtc_threshold', |
| 267 | 'xtc_probability', | 268 | 'xtc_probability', |
| 269 | 'nsigma', | ||
| 268 | ]; | 270 | ]; |
| 269 | 271 | ||
| 270 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); | 272 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); |
| @@ -1186,6 +1188,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | |||
| 1186 | 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined, | 1188 | 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined, |
| 1187 | 'xtc_threshold': settings.xtc_threshold, | 1189 | 'xtc_threshold': settings.xtc_threshold, |
| 1188 | 'xtc_probability': settings.xtc_probability, | 1190 | 'xtc_probability': settings.xtc_probability, |
| 1191 | 'nsigma': settings.nsigma, | ||
| 1189 | }; | 1192 | }; |
| 1190 | const nonAphroditeParams = { | 1193 | const nonAphroditeParams = { |
| 1191 | 'rep_pen': settings.rep_pen, | 1194 | 'rep_pen': settings.rep_pen, |
| @@ -1253,7 +1256,9 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | |||
| 1253 | 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined, | 1256 | 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined, |
| 1254 | 'xtc_threshold': settings.xtc_threshold, | 1257 | 'xtc_threshold': settings.xtc_threshold, |
| 1255 | 'xtc_probability': settings.xtc_probability, | 1258 | 'xtc_probability': settings.xtc_probability, |
| 1259 | 'nsigma': settings.nsigma, | ||
| 1256 | 'custom_token_bans': toIntArray(banned_tokens), | 1260 | 'custom_token_bans': toIntArray(banned_tokens), |
| 1261 | 'no_repeat_ngram_size': settings.no_repeat_ngram_size, | ||
| 1257 | }; | 1262 | }; |
| 1258 | 1263 | ||
| 1259 | if (settings.type === OPENROUTER) { | 1264 | if (settings.type === OPENROUTER) { |