use strings instead of IDs

80c8e83f09e9d2a743cb5e5e10d3285f1a93a1ef

AlpinDale <alpindale@gmail.com>

3 files changed, +76 -67Ignore whitespace
public/index.html+29 -67
@@ -1718,73 +1718,6 @@
17181718 <span data-i18n="Load default order">Load default order</span>
17191719 </div>
17201720 </div>
1721- <div id="sampler_oder_block_aphrodite" data-tg-type="aphrodite" class="range-block flexFlowColumn wide100p">
1722- <hr class="wide100p">
1723- <div class="range-block-title">
1724- <span data-i18n="Sampler Order">Sampler Order</span>
1725- </div>
1726- <div class="toggle-description widthUnset" data-i18n="Samplers will be applied in a top-down order. Use with caution.">
1727- Aphrodite only. Samplers will be applied in a top-down order. Use with caution.
1728- </div>
1729- <div id="aphrodite_order" class="prompt_order">
1730- <div data-id="0">
1731- <span data-i18n="Top P & Top K">Top P & Top K</span>
1732- <small>0</small>
1733- </div>
1734- <div data-id="1">
1735- <span data-i18n="Top A">Top A</span>
1736- <small>1</small>
1737- </div>
1738- <div data-id="2">
1739- <span data-i18n="Min P">Min P</span>
1740- <small>2</small>
1741- </div>
1742- <div data-id="3">
1743- <span data-i18n="Tail Free Sampling">Tail Free Sampling</span>
1744- <small>3</small>
1745- </div>
1746- <div data-id="4">
1747- <span data-i18n="Typical P">Typical P</span>
1748- <small>4</small>
1749- </div>
1750- <div data-id="5">
1751- <span data-i18n="Dynatemp & Temperature">Dynatemp & Temperature</span>
1752- <small>5</small>
1753- </div>
1754- <div data-id="6">
1755- <span data-i18n="Penalties">Penalties</span>
1756- <small>6</small>
1757- </div>
1758- <div data-id="7">
1759- <span data-i18n="DRY">DRY</span>
1760- <small>7</small>
1761- </div>
1762- <div data-id="8">
1763- <span data-i18n="No Repeat Ngram">No Repeat Ngram</span>
1764- <small>8</small>
1765- </div>
1766- <div data-id="9">
1767- <span data-i18n="Top Nsigma">Top Nsigma</span>
1768- <small>9</small>
1769- </div>
1770- <div data-id="10">
1771- <span data-i18n="Eta Cutoff">Eta Cutoff</span>
1772- <small>10</small>
1773- </div>
1774- <div data-id="11">
1775- <span data-i18n="Epsilon Cutoff">Epsilon Cutoff</span>
1776- <small>11</small>
1777- </div>
1778- <div data-id="12">
1779- <span data-i18n="Cubic & Quadratic Sampling">Cubic & Quadratic Sampling</span>
1780- <small>12</small>
1781- </div>
1782- <div data-id="13">
1783- <span data-i18n="XTC">XTC</span>
1784- <small>13</small>
1785- </div>
1786- </div>
1787- </div>
17881721 <div id="sampler_order_block_lcpp" data-tg-type="llamacpp" class="range-block flexFlowColumn wide100p">
17891722 <hr class="wide100p">
17901723 <h4 class="range-block-title justifyCenter">
@@ -1841,6 +1774,35 @@
18411774 <span data-i18n="Load default order">Load default order</span>
18421775 </div>
18431776 </div>
1777+ <div id="sampler_priority_block_aphrodite" data-tg-type="aphrodite" class="range-block flexFlowColumn wide100p">
1778+ <hr class="wide100p">
1779+ <h4 class="range-block-title justifyCenter">
1780+ <span data-i18n="Sampler Order">Sampler Order</span>
1781+ <div class="margin5 fa-solid fa-circle-info opacity50p" title="Aphrodite only. Determines the order of samplers. Skew is always applied post-softmax, so it's not included here." data-i18n="[title]Aphrodite only. Determines the order of samplers. Skew is always applied post-softmax, so it's not included here."></div>
1782+ </h4>
1783+ <div class="toggle-description widthUnset" data-i18n="Aphrodite only. Determines the order of samplers. Skew is always applied post-softmax, so it's not included here.">
1784+ Aphrodite only. Determines the order of samplers.
1785+ </div>
1786+ <div id="sampler_priority_container" class="prompt_order">
1787+ <div data-name="dry" draggable="true"><span>DRY</span><small></small></div>
1788+ <div data-name="penalties" draggable="true"><span>Penalties</span><small></small></div>
1789+ <div data-name="no_repeat_ngram" draggable="true"><span>No Repeat Ngram</span><small></small></div>
1790+ <div data-name="temperature" draggable="true"><span>Dynatemp & Temperature</span><small></small></div>
1791+ <div data-name="top_nsigma" draggable="true"><span>Top Nsigma</span><small></small></div>
1792+ <div data-name="top_p_top_k" draggable="true"><span>Top P & Top K</span><small></small></div>
1793+ <div data-name="top_a" draggable="true"><span>Top A</span><small></small></div>
1794+ <div data-name="min_p" draggable="true"><span>Min P</span><small></small></div>
1795+ <div data-name="tfs" draggable="true"><span>Tail-Free Sampling</span><small></small></div>
1796+ <div data-name="eta_cutoff" draggable="true"><span>Eta Cutoff</span><small></small></div>
1797+ <div data-name="epsilon_cutoff" draggable="true"><span>Epsilon Cutoff</span><small></small></div>
1798+ <div data-name="typical_p" draggable="true"><span>Typical P</span><small></small></div>
1799+ <div data-name="quadratic" draggable="true"><span>Cubic and Quadratic Sampling</span><small></small></div>
1800+ <div data-name="xtc" draggable="true"><span>XTC</span><small></small></div>
1801+ </div>
1802+ <div id="aphrodite_default_order" class="menu_button menu_button_icon">
1803+ <span data-i18n="Load default order">Load default order</span>
1804+ </div>
1805+ </div>
18441806 </div>
18451807 </div><!-- end of textgen settings-->
18461808 <div id="openai_settings">
public/scripts/samplerSelect.js+13 -0
@@ -129,6 +129,10 @@ function setSamplerListListeners() {
129129 relatedDOMElement = $('#sampler_priority_block_ooba');
130130 }
131131
132+ if (samplerName === 'samplers_priorities') { //this is for aphrodite's sampler priority
133+ relatedDOMElement = $('#sampler_priority_block_aphrodite');
134+ }
135+
132136 if (samplerName === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?
133137 relatedDOMElement = $('#contrastiveSearchBlock');
134138 }
@@ -237,6 +241,11 @@ async function listSamplers(main_api, arrayOnly = false) {
237241 displayname = 'Ooba Sampler Priority Block';
238242 }
239243
244+ if (sampler === 'samplers_priorities') { //this is for aphrodite's sampler priority
245+ targetDOMelement = $('#sampler_priority_block_aphrodite');
246+ displayname = 'Aphrodite Sampler Priority Block';
247+ }
248+
240249 if (sampler === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?
241250 targetDOMelement = $('#contrastiveSearchBlock');
242251 displayname = 'Contrast Search Block';
@@ -373,6 +382,10 @@ export async function validateDisabledSamplers(redraw = false) {
373382 relatedDOMElement = $('#sampler_priority_block_ooba');
374383 }
375384
385+ if (sampler === 'samplers_priorities') { //this is for aphrodite's sampler priority
386+ relatedDOMElement = $('#sampler_priority_block_aphrodite');
387+ }
388+
376389 if (sampler === 'dry_multiplier') {
377390 relatedDOMElement = $('#dryBlock');
378391 targetDisplayType = 'block';
public/scripts/textgen-settings.js+34 -0
@@ -89,6 +89,22 @@ const OOBA_DEFAULT_ORDER = [
8989 'encoder_repetition_penalty',
9090 'no_repeat_ngram',
9191];
92+const APHRODITE_DEFAULT_ORDER = [
93+ 'dry',
94+ 'penalties',
95+ 'no_repeat_ngram',
96+ 'temperature',
97+ 'top_nsigma',
98+ 'top_p_top_k',
99+ 'top_a',
100+ 'min_p',
101+ 'tfs',
102+ 'eta_cutoff',
103+ 'epsilon_cutoff',
104+ 'typical_p',
105+ 'quadratic',
106+ 'xtc'
107+];
92108const BIAS_KEY = '#textgenerationwebui_api-settings';
93109
94110// Maybe let it be configurable in the future?
@@ -170,6 +186,7 @@ const settings = {
170186 banned_tokens: '',
171187 sampler_priority: OOBA_DEFAULT_ORDER,
172188 samplers: LLAMACPP_DEFAULT_ORDER,
189+ samplers_priorties: APHRODITE_DEFAULT_ORDER,
173190 ignore_eos_token: false,
174191 spaces_between_special_tokens: true,
175192 speculative_ngram: false,
@@ -259,6 +276,7 @@ export const setting_names = [
259276 'sampler_order',
260277 'sampler_priority',
261278 'samplers',
279+ 'samplers_priorities',
262280 'n',
263281 'logit_bias',
264282 'custom_model',
@@ -627,6 +645,13 @@ jQuery(function () {
627645 saveSettingsDebounced();
628646 });
629647
648+ $('#aphrodite_default_order').on('click', function () {
649+ sortOobaItemsByOrder(APHRODITE_DEFAULT_ORDER);
650+ settings.samplers_priorties = APHRODITE_DEFAULT_ORDER;
651+ console.log('Default samplers order loaded:', settings.samplers_priorties);
652+ saveSettingsDebounced();
653+ });
654+
630655 $('#textgen_type').on('change', function () {
631656 const type = String($(this).val());
632657 settings.type = type;
@@ -835,6 +860,14 @@ function setSettingByName(setting, value, trigger) {
835860 return;
836861 }
837862
863+ if ('samplers_priority' === setting) {
864+ value = Array.isArray(value) ? value : APHRODITE_DEFAULT_ORDER;
865+ insertMissingArrayItems(APHRODITE_DEFAULT_ORDER, value);
866+ sortOobaItemsByOrder(value);
867+ settings.samplers_priorties = value;
868+ return;
869+ }
870+
838871 if ('samplers' === setting) {
839872 value = Array.isArray(value) ? value : LLAMACPP_DEFAULT_ORDER;
840873 insertMissingArrayItems(LLAMACPP_DEFAULT_ORDER, value);
@@ -1259,6 +1292,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
12591292 'nsigma': settings.nsigma,
12601293 'custom_token_bans': toIntArray(banned_tokens),
12611294 'no_repeat_ngram_size': settings.no_repeat_ngram_size,
1295+ 'sampler_priority': settings.samplers_priorties,
12621296 };
12631297
12641298 if (settings.type === OPENROUTER) {