Merge pull request #2742 from SillyTavern/xtc-ooba Enable XTC for TextGen WebUI
Signed| @@ -1310,7 +1310,7 @@ | |||
| 1310 | </div> | 1310 | </div> |
| 1311 | </div> | 1311 | </div> |
| 1312 | 1312 | ||
| 1313 | <div data-tg-type="koboldcpp, aphrodite, tabby" id="xtc_block" class="wide100p"> | 1313 | <div data-tg-type="koboldcpp, aphrodite, tabby, ooba" id="xtc_block" class="wide100p"> |
| 1314 | <h4 class="wide100p textAlignCenter"> | 1314 | <h4 class="wide100p textAlignCenter"> |
| 1315 | <label data-i18n="Exclude Top Choices (XTC)">Exclude Top Choices (XTC)</label> | 1315 | <label data-i18n="Exclude Top Choices (XTC)">Exclude Top Choices (XTC)</label> |
| 1316 | <a href="https://github.com/oobabooga/text-generation-webui/pull/6335" target="_blank"> | 1316 | <a href="https://github.com/oobabooga/text-generation-webui/pull/6335" target="_blank"> |
| @@ -1679,6 +1679,10 @@ | |||
| 1679 | Ooba only. Determines the order of samplers. | 1679 | Ooba only. Determines the order of samplers. |
| 1680 | </div> | 1680 | </div> |
| 1681 | <div id="sampler_priority_container" class="prompt_order"> | 1681 | <div id="sampler_priority_container" class="prompt_order"> |
| 1682 | <div data-name="repetition_penalty" draggable="true"><span>Repetition Penalty</span><small></small></div> | ||
| 1683 | <div data-name="presence_penalty" draggable="true"><span>Presence Penalty</span><small></small></div> | ||
| 1684 | <div data-name="frequency_penalty" draggable="true"><span>Frequency Penalty</span><small></small></div> | ||
| 1685 | <div data-name="dry" draggable="true"><span>DRY</span><small></small></div> | ||
| 1682 | <div data-name="temperature" draggable="true"><span>Temperature</span><small></small></div> | 1686 | <div data-name="temperature" draggable="true"><span>Temperature</span><small></small></div> |
| 1683 | <div data-name="dynamic_temperature" draggable="true"><span>Dynamic Temperature</span><small></small></div> | 1687 | <div data-name="dynamic_temperature" draggable="true"><span>Dynamic Temperature</span><small></small></div> |
| 1684 | <div data-name="quadratic_sampling" draggable="true"><span>Quadratic / Smooth Sampling</span><small></small></div> | 1688 | <div data-name="quadratic_sampling" draggable="true"><span>Quadratic / Smooth Sampling</span><small></small></div> |
| @@ -1691,6 +1695,9 @@ | |||
| 1691 | <div data-name="top_a" draggable="true"><span>Top A</span><small></small></div> | 1695 | <div data-name="top_a" draggable="true"><span>Top A</span><small></small></div> |
| 1692 | <div data-name="min_p" draggable="true"><span>Min P</span><small></small></div> | 1696 | <div data-name="min_p" draggable="true"><span>Min P</span><small></small></div> |
| 1693 | <div data-name="mirostat" draggable="true"><span>Mirostat</span><small></small></div> | 1697 | <div data-name="mirostat" draggable="true"><span>Mirostat</span><small></small></div> |
| 1698 | <div data-name="xtc" draggable="true"><span>XTC</span><small></small></div> | ||
| 1699 | <div data-name="encoder_repetition_penalty" draggable="true"><span>Encoder Repetition Penalty</span><small></small></div> | ||
| 1700 | <div data-name="no_repeat_ngram" draggable="true"><span>No Repeat Ngram</span><small></small></div> | ||
| 1694 | </div> | 1701 | </div> |
| 1695 | <div id="textgenerationwebui_default_order" class="menu_button menu_button_icon"> | 1702 | <div id="textgenerationwebui_default_order" class="menu_button menu_button_icon"> |
| 1696 | <span data-i18n="Load default order">Load default order</span> | 1703 | <span data-i18n="Load default order">Load default order</span> |
| @@ -68,6 +68,10 @@ const LLAMACPP_DEFAULT_ORDER = [ | |||
| 68 | 'temperature', | 68 | 'temperature', |
| 69 | ]; | 69 | ]; |
| 70 | const OOBA_DEFAULT_ORDER = [ | 70 | const OOBA_DEFAULT_ORDER = [ |
| 71 | 'repetition_penalty', | ||
| 72 | 'presence_penalty', | ||
| 73 | 'frequency_penalty', | ||
| 74 | 'dry', | ||
| 71 | 'temperature', | 75 | 'temperature', |
| 72 | 'dynamic_temperature', | 76 | 'dynamic_temperature', |
| 73 | 'quadratic_sampling', | 77 | 'quadratic_sampling', |
| @@ -80,6 +84,9 @@ const OOBA_DEFAULT_ORDER = [ | |||
| 80 | 'top_a', | 84 | 'top_a', |
| 81 | 'min_p', | 85 | 'min_p', |
| 82 | 'mirostat', | 86 | 'mirostat', |
| 87 | 'xtc', | ||
| 88 | 'encoder_repetition_penalty', | ||
| 89 | 'no_repeat_ngram', | ||
| 83 | ]; | 90 | ]; |
| 84 | const BIAS_KEY = '#textgenerationwebui_api-settings'; | 91 | const BIAS_KEY = '#textgenerationwebui_api-settings'; |
| 85 | 92 | ||
| @@ -798,6 +805,25 @@ function showTypeSpecificControls(type) { | |||
| 798 | }); | 805 | }); |
| 799 | } | 806 | } |
| 800 | 807 | ||
| 808 | /** | ||
| 809 | * Inserts missing items from the source array into the target array. | ||
| 810 | * @param {any[]} source - Source array | ||
| 811 | * @param {any[]} target - Target array | ||
| 812 | * @returns {void} | ||
| 813 | */ | ||
| 814 | function insertMissingArrayItems(source, target) { | ||
| 815 | if (source === target || !Array.isArray(source) || !Array.isArray(target)) { | ||
| 816 | return; | ||
| 817 | } | ||
| 818 | |||
| 819 | for (const item of source) { | ||
| 820 | if (!target.includes(item)) { | ||
| 821 | const index = source.indexOf(item); | ||
| 822 | target.splice(index, 0, item); | ||
| 823 | } | ||
| 824 | } | ||
| 825 | } | ||
| 826 | |||
| 801 | function setSettingByName(setting, value, trigger) { | 827 | function setSettingByName(setting, value, trigger) { |
| 802 | if (value === null || value === undefined) { | 828 | if (value === null || value === undefined) { |
| 803 | return; | 829 | return; |
| @@ -812,6 +838,7 @@ function setSettingByName(setting, value, trigger) { | |||
| 812 | 838 | ||
| 813 | if ('sampler_priority' === setting) { | 839 | if ('sampler_priority' === setting) { |
| 814 | value = Array.isArray(value) ? value : OOBA_DEFAULT_ORDER; | 840 | value = Array.isArray(value) ? value : OOBA_DEFAULT_ORDER; |
| 841 | insertMissingArrayItems(OOBA_DEFAULT_ORDER, value); | ||
| 815 | sortOobaItemsByOrder(value); | 842 | sortOobaItemsByOrder(value); |
| 816 | settings.sampler_priority = value; | 843 | settings.sampler_priority = value; |
| 817 | return; | 844 | return; |