From 21d801f6d5cf16cfefb8522494b812029d3b56e1 Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Sun, 28 Dec 2025 15:33:06 +0800 Subject: [PATCH] init total weight for adaptive p --- embd_res/klite.embd | 95 +++++++++++++++++++++++++++++---------------- gpttype_adapter.cpp | 11 ++++-- koboldcpp.py | 1 + 3 files changed, 70 insertions(+), 37 deletions(-) diff --git a/embd_res/klite.embd b/embd_res/klite.embd index 99f55dee6..199919a1e 100644 --- a/embd_res/klite.embd +++ b/embd_res/klite.embd @@ -3887,6 +3887,7 @@ Current version indicated by LITEVER below. enable_tool_use: false, tools_auto_exec: true, corsproxy_mcp: false, + cached_mcp_tools: {}, //key is url, value is tools array raw_instruct_tags: false, //experimental flags show_endpoint_selector: false, @@ -3936,7 +3937,6 @@ Current version indicated by LITEVER below. top_p: 0.92, min_p: 0.00, presence_penalty: 0.00, - adaptivep_target: -1.0, sampler_seed: -1, top_k: 100, top_a: 0, @@ -3952,6 +3952,8 @@ Current version indicated by LITEVER below. dry_sequence_breakers: ["\n", ":", "\"", "*"], xtc_threshold: 0.2, xtc_probability: 0.0, + adaptivep_target: -1.0, + adaptivep_decay: 0.9, sampler_order: [6, 0, 1, 3, 4, 2, 5], }; @@ -3975,7 +3977,6 @@ Current version indicated by LITEVER below. top_p: defaultsettings.top_p, min_p: defaultsettings.min_p, presence_penalty: defaultsettings.presence_penalty, - adaptivep_target: defaultsettings.adaptivep_target, top_a: defaultsettings.top_a, typical: defaultsettings.typ_s, tfs: defaultsettings.tfs_s, @@ -3984,7 +3985,7 @@ Current version indicated by LITEVER below. rep_pen_slope: defaultsettings.rep_pen_slope, sampler_order: defaultsettings.sampler_order }, - {"preset":"Simple Logical","description":"A very predictable preset with low randomness.","temp":0.3,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.6,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.02,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Balanced","description":"A good balanced preset with medium randomness.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.92,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.05,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Creative","description":"A wild and unpredictable preset with higher randomness.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.98,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.1,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Basic Min-P","description":"A good default for Min-P, only works on backends with min-p.","temp":1.25,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.1,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic Top-nsigma","description":"A good default for Top-nsigma, only works on backends with Top-nsigma.","temp":1,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":1.0,"top_k":0,"top_p":1,"min_p":0.01,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic DynaTemp","description":"A good default for DynaTemp, only works on backends with it.","temp":1.25,"dynatemp_range":0.75,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SmoothSample","description":"A good default for Smooth Sampling, only works on backends with it.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.25,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SillyTavern","description":"Similar to default preset used in SillyTavern.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":40,"top_p":0.6,"min_p":0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1.0,"rep_pen":1.18,"rep_pen_range":1024,"rep_pen_slope":0.8,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Immortal","description":"Modernized version of the Godlike preset, designed for creative and longer story co-writing use.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":1.75,"top_k":0,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"Neutral (Disabled)","description":"Sets all samplers neutralized, allowing you to customize your own.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":200,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.0,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"CoherentCreativity (Legacy)","description":"Legacy preset. A good balance between coherence, creativity, and quality of prose.","rep_pen":1.2,"rep_pen_range":360,"rep_pen_slope":0,"sampler_order":[6,5,0,2,3,1,4],"temp":0.5,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"tfs":0.99,"top_a":0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"typical":1},{"preset":"Godlike (Legacy)","description":"Legacy preset. Makes AI give a descriptive and sensual output.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":0.5,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"LiminalDrift (Legacy)","description":"Legacy preset. Sometimes surreal situations arise based on information already present in the story.","temp":0.66,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"adaptivep_target":-1.0,"top_a":0.96,"typical":0.6,"tfs":1,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,4,5,1,0,2,3]} + {"preset":"Simple Logical","description":"A very predictable preset with low randomness.","temp":0.3,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.6,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.02,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Balanced","description":"A good balanced preset with medium randomness.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.92,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.05,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Simple Creative","description":"A wild and unpredictable preset with higher randomness.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":100,"top_p":0.98,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.1,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Basic Min-P","description":"A good default for Min-P, only works on backends with min-p.","temp":1.25,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.1,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic Top-nsigma","description":"A good default for Top-nsigma, only works on backends with Top-nsigma.","temp":1,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":1.0,"top_k":0,"top_p":1,"min_p":0.01,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic DynaTemp","description":"A good default for DynaTemp, only works on backends with it.","temp":1.25,"dynatemp_range":0.75,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SmoothSample","description":"A good default for Smooth Sampling, only works on backends with it.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.25,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.05,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.03,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,5,0,1,3,4,2]},{"preset":"Basic SillyTavern","description":"Similar to default preset used in SillyTavern.","temp":0.75,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":40,"top_p":0.6,"min_p":0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1.0,"rep_pen":1.18,"rep_pen_range":1024,"rep_pen_slope":0.8,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"Immortal","description":"Modernized version of the Godlike preset, designed for creative and longer story co-writing use.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":1.75,"top_k":0,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"Neutral (Disabled)","description":"Sets all samplers neutralized, allowing you to customize your own.","temp":1.0,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":200,"top_p":1.0,"min_p":0.0,"presence_penalty":0.0,"top_a":0,"typical":1,"tfs":1,"rep_pen":1.0,"rep_pen_range":360,"rep_pen_slope":0.7,"sampler_order":[6,0,1,3,4,2,5]},{"preset":"CoherentCreativity (Legacy)","description":"Legacy preset. A good balance between coherence, creativity, and quality of prose.","rep_pen":1.2,"rep_pen_range":360,"rep_pen_slope":0,"sampler_order":[6,5,0,2,3,1,4],"temp":0.5,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"tfs":0.99,"top_a":0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"typical":1},{"preset":"Godlike (Legacy)","description":"Legacy preset. Makes AI give a descriptive and sensual output.","temp":0.7,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":0.5,"min_p":0.0,"presence_penalty":0.0,"top_a":0.75,"typical":0.19,"tfs":0.97,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,5,4,3,2,1,0]},{"preset":"LiminalDrift (Legacy)","description":"Legacy preset. Sometimes surreal situations arise based on information already present in the story.","temp":0.66,"dynatemp_range":0.0,"dynatemp_exponent":1.0,"smoothing_factor":0.0,"smoothing_curve":1.0,"nsigma":0.0,"top_k":0,"top_p":1,"min_p":0.0,"presence_penalty":0.0,"top_a":0.96,"typical":0.6,"tfs":1,"rep_pen":1.1,"rep_pen_range":1024,"rep_pen_slope":0.7,"sampler_order":[6,4,5,1,0,2,3]} ]; const instructpresets = [ @@ -7226,13 +7227,13 @@ Current version indicated by LITEVER below. //MCP HTTP client code const MCP_PROTOCOL_VER = "2025-11-25"; var mcp_req_id = 0; - var cached_mcp_tools = {}; //key is url, value is tools array + var pending_cached_mcp_tools = {}; function MCPGetAllowedTools() { let allowedtools = []; - for(key in cached_mcp_tools) + for(key in localsettings.cached_mcp_tools) { - let currarr = cached_mcp_tools[key].tools; + let currarr = localsettings.cached_mcp_tools[key].tools; for(let i=0;i { - const customHeaders = cached_mcp_tools[url].apikey ? - { 'Authorization': `Bearer ${cached_mcp_tools[url].apikey}` } : {}; + const customHeaders = pending_cached_mcp_tools[url].apikey ? + { 'Authorization': `Bearer ${pending_cached_mcp_tools[url].apikey}` } : {}; let purl = url; if(localsettings.corsproxy_mcp) @@ -7625,7 +7626,7 @@ Current version indicated by LITEVER below. .then(mcp_client => MCPToolList(mcp_client)) .then(mcp_result => { if (mcp_result && Array.isArray(mcp_result) && mcp_result.length > 0) { - cached_mcp_tools[url].tools = mcp_result; + pending_cached_mcp_tools[url].tools = mcp_result; return { url, tools: mcp_result}; } return { url, tools: []}; @@ -7676,6 +7677,10 @@ Current version indicated by LITEVER below. toolscontainer.innerHTML = "

An unexpected error occurred. Please check the console.

"; }); } + function Render_MCP_Tools() + { + + } //read any parameters passed in from the URL, and load content if found function read_url_params_data() @@ -14524,7 +14529,6 @@ Current version indicated by LITEVER below. document.getElementById("dynatemp_overview").innerText = (localsettings.dynatemp_range!=0?"ON":"OFF"); document.getElementById("second_ep_overview").innerText = (localsettings.second_ep_qty>0 && localsettings.second_ep_url?"ON":"OFF"); document.getElementById("presence_penalty").value = localsettings.presence_penalty; - document.getElementById("adaptivep_target").value = localsettings.adaptivep_target; document.getElementById("sampler_seed").value = localsettings.sampler_seed; document.getElementById("top_k").value = document.getElementById("top_k_slide").value = localsettings.top_k; document.getElementById("top_a").value = localsettings.top_a; @@ -14536,6 +14540,8 @@ Current version indicated by LITEVER below. document.getElementById("dry_multiplier").value = localsettings.dry_multiplier; document.getElementById("xtc_threshold").value = localsettings.xtc_threshold; document.getElementById("xtc_probability").value = localsettings.xtc_probability; + document.getElementById("adaptivep_target").value = localsettings.adaptivep_target; + document.getElementById("adaptivep_decay").value = localsettings.adaptivep_decay; document.getElementById("dry_base").value = localsettings.dry_base; document.getElementById("dry_allowed_length").value = localsettings.dry_allowed_length; document.getElementById("dry_penalty_last_n").value = localsettings.dry_penalty_last_n; @@ -14547,6 +14553,7 @@ Current version indicated by LITEVER below. document.getElementById("tools_auto_exec").checked = localsettings.tools_auto_exec; document.getElementById("corsproxy_mcp").checked = localsettings.corsproxy_mcp; document.getElementById("mcpurls").value = localsettings.saved_mcp_urls; + pending_cached_mcp_tools = JSON.parse(JSON.stringify(localsettings.cached_mcp_tools)); if(is_using_kcpp_with_mirostat()) { @@ -14794,7 +14801,6 @@ Current version indicated by LITEVER below. if (found) { document.getElementById("temperature").value = document.getElementById("temperature_slide").value = found.temp; document.getElementById("presence_penalty").value = found.presence_penalty; - document.getElementById("adaptivep_target").value = found.adaptivep_target; document.getElementById("min_p").value = found.min_p; document.getElementById("dynatemp_range").value = found.dynatemp_range; document.getElementById("dynatemp_exponent").value = found.dynatemp_exponent; @@ -14824,6 +14830,8 @@ Current version indicated by LITEVER below. document.getElementById("dry_allowed_length").value = defaultsettings.dry_allowed_length; document.getElementById("dry_penalty_last_n").value = defaultsettings.dry_penalty_last_n; document.getElementById("xtc_threshold").value = defaultsettings.xtc_threshold; + document.getElementById("adaptivep_target").value = defaultsettings.adaptivep_target; + document.getElementById("adaptivep_decay").value = defaultsettings.adaptivep_decay; } else { document.getElementById("presetsdesc").innerText = ""; } @@ -14884,7 +14892,7 @@ Current version indicated by LITEVER below. document.getElementById("presetsdesc").innerText = found.description; let changed = (document.getElementById("temperature").value != found.temp || document.getElementById("presence_penalty").value != found.presence_penalty || - document.getElementById("adaptivep_target").value != found.adaptivep_target || + document.getElementById("adaptivep_target").value != -1 || document.getElementById("min_p").value != found.min_p || document.getElementById("dynatemp_range").value != found.dynatemp_range || document.getElementById("dynatemp_exponent").value != found.dynatemp_exponent || @@ -15174,7 +15182,6 @@ Current version indicated by LITEVER below. localsettings.smoothing_curve = parseFloat(document.getElementById("smoothing_curve").value); localsettings.nsigma = parseFloat(document.getElementById("nsigma").value); localsettings.presence_penalty = parseFloat(document.getElementById("presence_penalty").value); - localsettings.adaptivep_target = parseFloat(document.getElementById("adaptivep_target").value); localsettings.top_k = parseInt(document.getElementById("top_k").value); localsettings.top_a = parseFloat(document.getElementById("top_a").value); localsettings.typ_s = parseFloat(document.getElementById("typ_s").value); @@ -15190,6 +15197,8 @@ Current version indicated by LITEVER below. localsettings.custom_jailbreak_text = pendingassistantjailbreak; localsettings.xtc_threshold = parseFloat(document.getElementById("xtc_threshold").value); localsettings.xtc_probability = parseFloat(document.getElementById("xtc_probability").value); + localsettings.adaptivep_target = parseFloat(document.getElementById("adaptivep_target").value); + localsettings.adaptivep_decay = parseFloat(document.getElementById("adaptivep_decay").value); localsettings.token_count_multiplier = parseInt(document.getElementById("token_count_multiplier").value); localsettings.guidance_scale = parseFloat(document.getElementById("guidance_scale").value); localsettings.guidance_prompt = document.getElementById("guidance_prompt").value; @@ -15316,6 +15325,7 @@ Current version indicated by LITEVER below. localsettings.tools_auto_exec = (document.getElementById("tools_auto_exec").checked ? true : false); localsettings.corsproxy_mcp = (document.getElementById("corsproxy_mcp").checked ? true : false); localsettings.saved_mcp_urls = document.getElementById("mcpurls").value.trim()?document.getElementById("mcpurls").value.trim():default_mcp_base; + localsettings.cached_mcp_tools = JSON.parse(JSON.stringify(pending_cached_mcp_tools)); update_genimg_button_visiblility(); update_websearch_button_visibility(); @@ -15391,7 +15401,6 @@ Current version indicated by LITEVER below. localsettings.smoothing_curve = cleannum(localsettings.smoothing_curve, 0.1, 5.0); localsettings.nsigma = cleannum(localsettings.nsigma, 0.0, 5.0); localsettings.presence_penalty = cleannum(localsettings.presence_penalty, -2, 2); - localsettings.adaptivep_target = cleannum(localsettings.adaptivep_target, -1, 1); localsettings.top_k = cleannum(Math.floor(localsettings.top_k), 0, 300); localsettings.top_a = cleannum(localsettings.top_a, 0, 1); localsettings.typ_s = cleannum(localsettings.typ_s, 0, 1); @@ -15405,6 +15414,8 @@ Current version indicated by LITEVER below. localsettings.dry_penalty_last_n = cleannum(localsettings.dry_penalty_last_n, 0.0, localsettings.max_context_length); localsettings.xtc_probability = cleannum(localsettings.xtc_probability, 0.0, 1.0); localsettings.xtc_threshold = cleannum(localsettings.xtc_threshold, 0.0, 1.0); + localsettings.adaptivep_target = cleannum(localsettings.adaptivep_target, -1, 1); + localsettings.adaptivep_decay = cleannum(localsettings.adaptivep_decay, 0.01, 0.99); localsettings.sampler_seed = cleannum(localsettings.sampler_seed, -1, 999999); localsettings.token_count_multiplier = cleannum(localsettings.token_count_multiplier, 70, 130); localsettings.second_ep_qty = cleannum(Math.floor(localsettings.second_ep_qty), 0, 1024); @@ -18992,6 +19003,7 @@ Current version indicated by LITEVER below. { submit_payload.params.presence_penalty = localsettings.presence_penalty; submit_payload.params.adaptive_target = localsettings.adaptivep_target; + submit_payload.params.adaptive_decay = localsettings.adaptivep_decay; submit_payload.params.logit_bias = JSON.parse(JSON.stringify(localsettings.logitbiasdict)); } @@ -19087,7 +19099,7 @@ Current version indicated by LITEVER below. let kcpp_use_oai_for_tools = localsettings.enable_tool_use; if(kcpp_use_oai_for_tools && - determine_if_can_use_mcp() && cached_mcp_tools && Object.keys(cached_mcp_tools).length>0) + determine_if_can_use_mcp() && localsettings.cached_mcp_tools && Object.keys(localsettings.cached_mcp_tools).length>0) { //for tool calling, we hijack the oai endpoint in order to utilize let combinedprompt = submit_payload.prompt; @@ -19098,6 +19110,7 @@ Current version indicated by LITEVER below. delete submit_payload["memory"]; delete submit_payload["prompt"]; submit_payload.messages = []; + submit_payload.continue_assistant_turn = true; let mhistory = repack_instruct_history(combinedprompt); let oaiimgs = []; oaiimgs = oai_append_media(oaiimgs); @@ -19123,7 +19136,7 @@ Current version indicated by LITEVER below. } submit_payload.messages.push(cturn); } - if(determine_if_can_use_mcp() && cached_mcp_tools && Object.keys(cached_mcp_tools).length>0) + if(determine_if_can_use_mcp() && localsettings.cached_mcp_tools && Object.keys(localsettings.cached_mcp_tools).length>0) { let senttools = MCPGetAllowedTools(); if(senttools.length>0) @@ -19300,7 +19313,7 @@ Current version indicated by LITEVER below. } } - if(determine_if_can_use_mcp() && cached_mcp_tools && Object.keys(cached_mcp_tools).length>0) + if(determine_if_can_use_mcp() && localsettings.cached_mcp_tools && Object.keys(localsettings.cached_mcp_tools).length>0) { let senttools = MCPGetAllowedTools(); if(senttools.length>0) @@ -22116,7 +22129,7 @@ Current version indicated by LITEVER below. render_gametext(true,false); //only scroll to bottom if autoscroll is on sync_multiplayer(false); } - if(synchro_polled_resptoolcall && cached_mcp_tools) + if(synchro_polled_resptoolcall && localsettings.cached_mcp_tools) { //if valid, execute the tool call and get the result let savedcallobj = {"tool_calls": [ @@ -23608,7 +23621,7 @@ Current version indicated by LITEVER below. } function execute_waiting_toolcall() { - if(toolcall_waiting_approve && cached_mcp_tools && Object.keys(cached_mcp_tools).length > 0) + if(toolcall_waiting_approve && localsettings.cached_mcp_tools && Object.keys(localsettings.cached_mcp_tools).length > 0) { MCPToolCall(toolcall_waiting_approve); render_gametext(false,false); @@ -26078,7 +26091,7 @@ Current version indicated by LITEVER below. return partB; // leave as is } else { let x = partB.replace(/[“”"]/g, """); - x = x.replace(/"([\s\S]*?)"/g, '“$1”'); + x = x.replace(/(^|[^\d])"([\s\S]*?)"/g, '$1“$2”'); return x; } }).join(''); @@ -27698,9 +27711,9 @@ Current version indicated by LITEVER below.
-
Adapt.P.
+
T.NSigma
-
+
@@ -27864,10 +27877,24 @@ Current version indicated by LITEVER below.
-
T.NSigma
-
-
+
Adapt.P. ? + Enables Adaptive-P Sampling. Target ranges 0.0 to 1.0, 0 to deactivate. Decay ranges from 0.0 to 1.0. Not supported on Horde.
+
+
+
+
Target
+
+
+
+
+
Decay
+
+
+
+
+
+
SecondEpSampler ? If enabled, sample N tokens from a second OpenAI Compatible endpoint first before a request. This can be useful for jailbreak purposes.
diff --git a/gpttype_adapter.cpp b/gpttype_adapter.cpp index 03b99d7b9..aa77c602f 100644 --- a/gpttype_adapter.cpp +++ b/gpttype_adapter.cpp @@ -3441,9 +3441,6 @@ generation_outputs gpttype_generate(const generation_inputs inputs) } } - adaptive_p_weighted_sum = 0; - adaptive_p_total_weight = 0; - //handle custom token bans and antislop phrase banning banned_phrases.clear(); delayed_generated_tokens_limit = 0; @@ -3655,6 +3652,14 @@ generation_outputs gpttype_generate(const generation_inputs inputs) kcpp_data->adaptive_target = inputs.adaptive_target; kcpp_data->adaptive_decay = inputs.adaptive_decay; + adaptive_p_weighted_sum = 0; + adaptive_p_total_weight = 0; + if(kcpp_data->adaptive_target > 0.0f && kcpp_data->adaptive_decay<1.0f) + { + adaptive_p_weighted_sum = kcpp_data->adaptive_target / (1.0f - kcpp_data->adaptive_decay); + adaptive_p_total_weight = 1.0f / (1.0f - kcpp_data->adaptive_decay); + } + // Parse dry sequence breakers / restart sequences kcpp_data->dry_sequence_breakers.clear(); dry_sequence_breakers.clear(); diff --git a/koboldcpp.py b/koboldcpp.py index bb38243b6..5c510b1c5 100755 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -1607,6 +1607,7 @@ def generate(genparams, stream_flag=False): smoothing_curve = tryparsefloat(genparams.get('smoothing_curve', 1.0),1.0) adaptive_target = tryparsefloat(genparams.get('adaptive_target', -1.0),-1.0) adaptive_decay = tryparsefloat(genparams.get('adaptive_decay', 0.9),0.9) + adaptive_decay = 0.01 if adaptive_decay < 0.01 else (0.99 if adaptive_decay > 0.99 else adaptive_decay) if adaptive_target>0 and min_p<=0 and top_p>=1.0: #adaptive p sampler requires a truncation sampler first, force a tiny min-p min_p = 0.002 logit_biases = genparams.get('logit_bias', {})