use strings instead of IDs

80c8e83f09e9d2a743cb5e5e10d3285f1a93a1ef

AlpinDale <alpindale@gmail.com>

3 files changed, +76 -67Showing whitespace changes
public/index.html+29 -67
@@ -1718,73 +1718,6 @@
1718 <span data-i18n="Load default order">Load default order</span>1718 <span data-i18n="Load default order">Load default order</span>
1719 </div>1719 </div>
1720 </div>1720 </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>
1788 <div id="sampler_order_block_lcpp" data-tg-type="llamacpp" class="range-block flexFlowColumn wide100p">1721 <div id="sampler_order_block_lcpp" data-tg-type="llamacpp" class="range-block flexFlowColumn wide100p">
1789 <hr class="wide100p">1722 <hr class="wide100p">
1790 <h4 class="range-block-title justifyCenter">1723 <h4 class="range-block-title justifyCenter">
@@ -1841,6 +1774,35 @@
1841 <span data-i18n="Load default order">Load default order</span>1774 <span data-i18n="Load default order">Load default order</span>
1842 </div>1775 </div>
1843 </div>1776 </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>
1844 </div>1806 </div>
1845 </div><!-- end of textgen settings-->1807 </div><!-- end of textgen settings-->
1846 <div id="openai_settings">1808 <div id="openai_settings">
public/scripts/samplerSelect.js+13 -0
@@ -129,6 +129,10 @@ function setSamplerListListeners() {
129 relatedDOMElement = $('#sampler_priority_block_ooba');129 relatedDOMElement = $('#sampler_priority_block_ooba');
130 }130 }
131131
132 if (samplerName === 'samplers_priorities') { //this is for aphrodite's sampler priority
133 relatedDOMElement = $('#sampler_priority_block_aphrodite');
134 }
135
132 if (samplerName === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?136 if (samplerName === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?
133 relatedDOMElement = $('#contrastiveSearchBlock');137 relatedDOMElement = $('#contrastiveSearchBlock');
134 }138 }
@@ -237,6 +241,11 @@ async function listSamplers(main_api, arrayOnly = false) {
237 displayname = 'Ooba Sampler Priority Block';241 displayname = 'Ooba Sampler Priority Block';
238 }242 }
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
240 if (sampler === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?249 if (sampler === 'penalty_alpha') { //contrastive search only has one sampler, does it need its own block?
241 targetDOMelement = $('#contrastiveSearchBlock');250 targetDOMelement = $('#contrastiveSearchBlock');
242 displayname = 'Contrast Search Block';251 displayname = 'Contrast Search Block';
@@ -373,6 +382,10 @@ export async function validateDisabledSamplers(redraw = false) {
373 relatedDOMElement = $('#sampler_priority_block_ooba');382 relatedDOMElement = $('#sampler_priority_block_ooba');
374 }383 }
375384
385 if (sampler === 'samplers_priorities') { //this is for aphrodite's sampler priority
386 relatedDOMElement = $('#sampler_priority_block_aphrodite');
387 }
388
376 if (sampler === 'dry_multiplier') {389 if (sampler === 'dry_multiplier') {
377 relatedDOMElement = $('#dryBlock');390 relatedDOMElement = $('#dryBlock');
378 targetDisplayType = 'block';391 targetDisplayType = 'block';
public/scripts/textgen-settings.js+34 -0
@@ -89,6 +89,22 @@ const OOBA_DEFAULT_ORDER = [
89 'encoder_repetition_penalty',89 'encoder_repetition_penalty',
90 'no_repeat_ngram',90 'no_repeat_ngram',
91];91];
92const 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];
92const BIAS_KEY = '#textgenerationwebui_api-settings';108const BIAS_KEY = '#textgenerationwebui_api-settings';
93109
94// Maybe let it be configurable in the future?110// Maybe let it be configurable in the future?
@@ -170,6 +186,7 @@ const settings = {
170 banned_tokens: '',186 banned_tokens: '',
171 sampler_priority: OOBA_DEFAULT_ORDER,187 sampler_priority: OOBA_DEFAULT_ORDER,
172 samplers: LLAMACPP_DEFAULT_ORDER,188 samplers: LLAMACPP_DEFAULT_ORDER,
189 samplers_priorties: APHRODITE_DEFAULT_ORDER,
173 ignore_eos_token: false,190 ignore_eos_token: false,
174 spaces_between_special_tokens: true,191 spaces_between_special_tokens: true,
175 speculative_ngram: false,192 speculative_ngram: false,
@@ -259,6 +276,7 @@ export const setting_names = [
259 'sampler_order',276 'sampler_order',
260 'sampler_priority',277 'sampler_priority',
261 'samplers',278 'samplers',
279 'samplers_priorities',
262 'n',280 'n',
263 'logit_bias',281 'logit_bias',
264 'custom_model',282 'custom_model',
@@ -627,6 +645,13 @@ jQuery(function () {
627 saveSettingsDebounced();645 saveSettingsDebounced();
628 });646 });
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
630 $('#textgen_type').on('change', function () {655 $('#textgen_type').on('change', function () {
631 const type = String($(this).val());656 const type = String($(this).val());
632 settings.type = type;657 settings.type = type;
@@ -835,6 +860,14 @@ function setSettingByName(setting, value, trigger) {
835 return;860 return;
836 }861 }
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
838 if ('samplers' === setting) {871 if ('samplers' === setting) {
839 value = Array.isArray(value) ? value : LLAMACPP_DEFAULT_ORDER;872 value = Array.isArray(value) ? value : LLAMACPP_DEFAULT_ORDER;
840 insertMissingArrayItems(LLAMACPP_DEFAULT_ORDER, value);873 insertMissingArrayItems(LLAMACPP_DEFAULT_ORDER, value);
@@ -1259,6 +1292,7 @@ export function getTextGenGenerationData(finalPrompt, maxTokens, isImpersonate,
1259 'nsigma': settings.nsigma,1292 'nsigma': settings.nsigma,
1260 'custom_token_bans': toIntArray(banned_tokens),1293 'custom_token_bans': toIntArray(banned_tokens),
1261 'no_repeat_ngram_size': settings.no_repeat_ngram_size,1294 'no_repeat_ngram_size': settings.no_repeat_ngram_size,
1295 'sampler_priority': settings.samplers_priorties,
1262 };1296 };
12631297
1264 if (settings.type === OPENROUTER) {1298 if (settings.type === OPENROUTER) {