Merge branch 'staging' into claude-no-filler
| @@ -229,6 +229,46 @@ SillyTavern сохраняет ключи от ваших API в файле `sec | ||
| 229 | 229 | 1. Зайдите в файл `config.yaml` и установите `allowKeysExposure` в положение `true`. |
| 230 | 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 | 274 | В основном этим пользуются тогда, когда хотят использовать SillyTavern с телефона, запустив сервер SillyTavern на стационарном ПК в той же Wi-Fi-сети. |
| @@ -1291,6 +1291,14 @@ | ||
| 1291 | 1291 | <input class="neo-range-slider" type="range" id="epsilon_cutoff_textgenerationwebui" name="volume" min="0" max="9" step="0.01"> |
| 1292 | 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 | 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 | 1302 | <div data-tg-type="ooba,mancer,aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1295 | 1303 | <small> |
| 1296 | 1304 | <span data-i18n="Eta Cutoff">Eta Cutoff</span> |
| @@ -1334,12 +1342,12 @@ | ||
| 1334 | 1342 | <input class="neo-range-slider" type="range" id="presence_pen_textgenerationwebui" name="volume" min="-2" max="2" step="0.01" /> |
| 1335 | 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 | 1344 | </div> |
| 1337 | 1345 | <div data-tg-type="aphrodite, ooba" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1338 | 1346 | <small data-i18n="No Repeat Ngram Size">No Repeat Ngram Size</small> |
| 1339 | 1347 | <input class="neo-range-slider" type="range" id="no_repeat_ngram_size_textgenerationwebui" name="volume" min="0" max="20" step="1"> |
| 1340 | 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 | 1349 | </div> |
| 1342 | 1350 | <div data-tg-type="tabby, aphrodite" class="alignitemscenter flex-container flexFlowColumn flexBasis30p flexGrow flexShrink gap0"> |
| 1343 | 1351 | <small data-i18n="Skew">Skew</small> |
| 1344 | 1352 | <input class="neo-range-slider" type="range" id="skew_textgenerationwebui" name="volume" min="-5" max="5" step="0.01" /> |
| 1345 | 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 | 1402 | </div> |
| 1395 | 1403 | </div> |
| 1396 | 1404 | |
| 1397 | 1405 | <div data-tg-type="aphrodite, ooba, koboldcpp, tabby, llamacpp" id="dryBlock" class="wide100p"> |
| 1398 | 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 | 1407 | <label data-i18n="DRY Repetition Penalty">DRY Repetition Penalty</label> |
| 1400 | 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 | 65 | } : derivation; |
| 66 | 66 | |
| 67 | 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 | 73 | if (hash in hash_derivations) { |
| 69 | 74 | return parse_derivation(hash_derivations[hash]); |
| 70 | 75 | } |
| @@ -642,6 +642,10 @@ async function CreateZenSliders(elmnt) { | ||
| 642 | 642 | numSteps = 50; |
| 643 | 643 | decimals = 1; |
| 644 | 644 | } |
| 645 | + if (sliderID == 'nsigma') { | |
| 646 | + numSteps = 50; | |
| 647 | + decimals = 1; | |
| 648 | + } | |
| 645 | 649 | //customize steps |
| 646 | 650 | if (sliderID == 'mirostat_mode_textgenerationwebui' || |
| 647 | 651 | sliderID == 'mirostat_mode_kobold') { |
| @@ -686,6 +690,7 @@ async function CreateZenSliders(elmnt) { | ||
| 686 | 690 | sliderID == 'penalty_alpha_textgenerationwebui' || |
| 687 | 691 | sliderID == 'length_penalty_textgenerationwebui' || |
| 688 | 692 | sliderID == 'epsilon_cutoff_textgenerationwebui' || |
| 693 | + sliderID == 'nsigma' || | |
| 689 | 694 | sliderID == 'rep_pen_range' || |
| 690 | 695 | sliderID == 'eta_cutoff_textgenerationwebui' || |
| 691 | 696 | sliderID == 'top_a_textgenerationwebui' || |
| @@ -193,6 +193,7 @@ const settings = { | ||
| 193 | 193 | openrouter_allow_fallbacks: true, |
| 194 | 194 | xtc_threshold: 0.1, |
| 195 | 195 | xtc_probability: 0, |
| 196 | + nsigma: 0.0, | |
| 196 | 197 | featherless_model: '', |
| 197 | 198 | }; |
| 198 | 199 | |
| @@ -265,6 +266,7 @@ export const setting_names = [ | ||
| 265 | 266 | 'openrouter_allow_fallbacks', |
| 266 | 267 | 'xtc_threshold', |
| 267 | 268 | 'xtc_probability', |
| 269 | + 'nsigma', | |
| 268 | 270 | ]; |
| 269 | 271 | |
| 270 | 272 | const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba'); |
| @@ -1186,6 +1188,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | ||
| 1186 | 1188 | 'sampler_order': settings.type === textgen_types.KOBOLDCPP ? settings.sampler_order : undefined, |
| 1187 | 1189 | 'xtc_threshold': settings.xtc_threshold, |
| 1188 | 1190 | 'xtc_probability': settings.xtc_probability, |
| 1191 | + 'nsigma': settings.nsigma, | |
| 1189 | 1192 | }; |
| 1190 | 1193 | const nonAphroditeParams = { |
| 1191 | 1194 | 'rep_pen': settings.rep_pen, |
| @@ -1253,7 +1256,9 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate, | ||
| 1253 | 1256 | 'dynatemp_exponent': dynatemp ? settings.dynatemp_exponent : undefined, |
| 1254 | 1257 | 'xtc_threshold': settings.xtc_threshold, |
| 1255 | 1258 | 'xtc_probability': settings.xtc_probability, |
| 1259 | + 'nsigma': settings.nsigma, | |
| 1256 | 1260 | 'custom_token_bans': toIntArray(banned_tokens), |
| 1261 | + 'no_repeat_ngram_size': settings.no_repeat_ngram_size, | |
| 1257 | 1262 | }; |
| 1258 | 1263 | |
| 1259 | 1264 | if (settings.type === OPENROUTER) { |