Add Adaptive-P settings (#4945) * TC: Add Adaptive-P settings and UI elements * Improve compatibility with sampler select

2fb4ab3184a7d66fb8093bf1ac115af2e30e5eed

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

Signed
4 files changed, +35 -1Showing whitespace changes
public/css/toggle-dependent.css+4 -0
@@ -564,3 +564,7 @@ label[for="bind_preset_to_connection"]:has(input:checked) {
564564#request_images_block:has(#openai_request_images:not(:checked)) #request_images_settings {
565565 display: none;
566566}
567+
568+#adaptive_p_block:has([data-tg-samplers="adaptive_target"][style*="display: none"]):has([data-tg-samplers="adaptive_decay"][style*="display: none"]) {
569+ display: none;
570+}
public/index.html+22 -0
@@ -1399,6 +1399,28 @@
13991399 <input class="neo-range-slider" type="range" id="max_tokens_second_textgenerationwebui" name="volume" min="0" max="20" step="1" />
14001400 <input class="neo-range-input" type="number" min="0" max="20" step="1" data-for="max_tokens_second_textgenerationwebui" id="max_tokens_second_counter_textgenerationwebui">
14011401 </div>
1402+
1403+ <div data-tg-type="koboldcpp" id="adaptive_p_block" class="wide100p">
1404+ <h4 class="wide100p textAlignCenter">
1405+ <label data-i18n="Adaptive-P">Adaptive-P</label>
1406+ <a href="https://github.com/MrJackSpade/adaptive-p-docs" target="_blank">
1407+ <div class="fa-solid fa-circle-info opacity50p"></div>
1408+ </a>
1409+ </h4>
1410+ <div class="flex-container flexFlowRow alignitemscenter gap10px flexShrink">
1411+ <div data-tg-samplers="adaptive_target" class="alignitemscenter flex-container marginBot5 flexFlowColumn flexGrow flexShrink gap0">
1412+ <small data-i18n="Target">Target</small>
1413+ <input class="neo-range-slider" type="range" id="adaptive_target_textgenerationwebui" min="-0.01" max="1" step="0.01" />
1414+ <input class="neo-range-input" type="number" min="-0.01" max="1" step="0.01" data-for="adaptive_target_textgenerationwebui" id="adaptive_target_counter_textgenerationwebui">
1415+ </div>
1416+ <div data-tg-samplers="adaptive_decay" class="alignitemscenter flex-container marginBot5 flexFlowColumn flexGrow flexShrink gap0">
1417+ <small data-i18n="Decay">Decay</small>
1418+ <input class="neo-range-slider" type="range" id="adaptive_decay_textgenerationwebui" min="0" max="0.99" step="0.01" />
1419+ <input class="neo-range-input" type="number" min="0" max="0.99" step="0.01" data-for="adaptive_decay_textgenerationwebui" id="adaptive_decay_counter_textgenerationwebui">
1420+ </div>
1421+ </div>
1422+ </div>
1423+
14021424 <div data-tg-type="mancer, ooba, koboldcpp, aphrodite, tabby" data-tg-samplers="smoothing_factor" id="smoothingBlock" name="smoothingBlock" class="wide100p">
14031425 <h4 class="wide100p textAlignCenter">
14041426 <label data-i18n="Smooth Sampling">Smooth Sampling</label>
public/scripts/samplerSelect.js+1 -1
@@ -221,7 +221,7 @@ async function listSamplers(main_api, arrayOnly = false) {
221221 let availableSamplers;
222222 if (main_api === 'textgenerationwebui') {
223223 availableSamplers = TGsamplerNames;
224224 const valuesToRemove = new Set(['streaming', 'bypass_status_check', 'custom_model', 'legacy_api', 'extensions']);
225225 availableSamplers = availableSamplers.filter(sampler => !valuesToRemove.has(sampler));
226226 availableSamplers.sort();
227227 }
public/scripts/textgen-settings.js+8 -0
@@ -229,6 +229,8 @@ export const textgenerationwebui_settings = {
229229 featherless_model: '',
230230 generic_model: '',
231231 extensions: {},
232+ adaptive_target: -0.01,
233+ adaptive_decay: 0.9,
232234};
233235
234236export {
@@ -313,6 +315,8 @@ export const setting_names = [
313315 'generic_model',
314316 'extensions',
315317 'json_schema_allow_empty',
318+ 'adaptive_target',
319+ 'adaptive_decay',
316320];
317321
318322const DYNATEMP_BLOCK = document.getElementById('dynatemp_block_ooba');
@@ -989,6 +993,8 @@ export function initTextGenSettings() {
989993 'xtc_probability_textgenerationwebui': 0,
990994 'nsigma_textgenerationwebui': 0,
991995 'min_keep_textgenerationwebui': 0,
996+ 'adaptive_target_textgenerationwebui': -0.01,
997+ 'adaptive_decay_textgenerationwebui': 0.9,
992998 };
993999
9941000 for (const [id, value] of Object.entries(inputs)) {
@@ -1630,6 +1636,8 @@ export function createTextGenGenerationData(settings, model, finalPrompt = null,
16301636 'nsigma': settings.nsigma,
16311637 'top_n_sigma': settings.nsigma,
16321638 'min_keep': settings.min_keep,
1639+ 'adaptive_target': settings.adaptive_target,
1640+ 'adaptive_decay': settings.adaptive_decay,
16331641 parseSequenceBreakers: function () {
16341642 try {
16351643 return JSON.parse(this.dry_sequence_breakers);