mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2026-05-09 19:46:11 +00:00
fixed misc lite bugs, tts parsing issues, klite connectivity process
This commit is contained in:
parent
57e8c1433b
commit
ff64c3060a
2 changed files with 104 additions and 62 deletions
150
klite.embd
150
klite.embd
|
|
@ -12,7 +12,7 @@ Current version indicated by LITEVER below.
|
|||
-->
|
||||
|
||||
<script>
|
||||
const LITEVER = 204;
|
||||
const LITEVER = 205;
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
var localflag = true;
|
||||
const STORAGE_PREFIX = (localflag?"e_":"")+"kaihordewebui_";
|
||||
|
|
@ -2939,6 +2939,7 @@ Current version indicated by LITEVER below.
|
|||
var temp_scenario = null;
|
||||
var last_token_budget = ""; //to display token limits
|
||||
var last_known_filename = "saved_story.json";
|
||||
var backup_localmodeport = 5001; //sometimes we reattempt a different port, this stores a backup
|
||||
var localmodeport = 5001;
|
||||
var localmodehost = "localhost";
|
||||
var localprotocol = "http://";
|
||||
|
|
@ -3639,6 +3640,7 @@ Current version indicated by LITEVER below.
|
|||
if (inputport) {
|
||||
localmodeport = parseInt(inputport);
|
||||
}
|
||||
backup_localmodeport = localmodeport;
|
||||
|
||||
let inputhost = urlParams.get('host');
|
||||
sublocalpathname = "";
|
||||
|
|
@ -3947,15 +3949,21 @@ initializeInstructUIFunctionality();
|
|||
}
|
||||
function replace_noninstruct_placeholders(inputtxt,escape=false)
|
||||
{
|
||||
let firstopponent = localsettings.chatopponent;
|
||||
if (firstopponent && firstopponent.includes("||$||")) {
|
||||
let coarr = firstopponent.split("||$||");
|
||||
coarr = coarr.filter(x => (x && x != ""));
|
||||
firstopponent = coarr.length>0?coarr[0]:defaultchatopponent;
|
||||
}
|
||||
if(escape)
|
||||
{
|
||||
inputtxt = replaceAll(inputtxt,"{{user}}",escape_html(localsettings.chatname?localsettings.chatname:"User"),true);
|
||||
inputtxt = replaceAll(inputtxt,"{{char}}",escape_html(localsettings.chatopponent?localsettings.chatopponent:defaultchatopponent),true);
|
||||
inputtxt = replaceAll(inputtxt,"{{char}}",escape_html(localsettings.chatopponent?firstopponent:defaultchatopponent),true);
|
||||
}
|
||||
else
|
||||
{
|
||||
inputtxt = replaceAll(inputtxt,"{{user}}",(localsettings.chatname?localsettings.chatname:"User"),true);
|
||||
inputtxt = replaceAll(inputtxt,"{{char}}",(localsettings.chatopponent?localsettings.chatopponent:defaultchatopponent),true);
|
||||
inputtxt = replaceAll(inputtxt,"{{char}}",(localsettings.chatopponent?firstopponent:defaultchatopponent),true);
|
||||
}
|
||||
|
||||
for(let i=0;i<placeholder_tags_data.length;++i)
|
||||
|
|
@ -5136,10 +5144,10 @@ initializeInstructUIFunctionality();
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function clear_cors_proxy_flag()
|
||||
{
|
||||
uses_cors_proxy = false;
|
||||
}
|
||||
|
||||
// attempt to connect to the selected backend
|
||||
function attempt_connect(popup_aiselect = true)
|
||||
|
|
@ -9093,6 +9101,9 @@ initializeInstructUIFunctionality();
|
|||
custom_cohere_key = "";
|
||||
|
||||
let epchoice = document.getElementById("customapidropdown").value;
|
||||
document.getElementById("connectstatusproxied").classList.add("hidden");
|
||||
document.getElementById("connectstatus").innerHTML = "Connecting";
|
||||
|
||||
if(epchoice==0) //ai horde
|
||||
{
|
||||
confirm_horde_models();
|
||||
|
|
@ -9125,6 +9136,7 @@ initializeInstructUIFunctionality();
|
|||
custom_kobold_key = desiredkoboldkey;
|
||||
|
||||
let fetchedurl = apply_proxy_url(desiredkoboldendpoint + kobold_custom_mdl_endpoint);
|
||||
|
||||
fetch(fetchedurl,{
|
||||
method: 'GET',
|
||||
headers: get_kobold_header(),
|
||||
|
|
@ -9147,6 +9159,15 @@ initializeInstructUIFunctionality();
|
|||
custom_kobold_endpoint = "";
|
||||
render_gametext();
|
||||
} else {
|
||||
|
||||
if(uses_cors_proxy && !is_local_url(fetchedurl))
|
||||
{
|
||||
document.getElementById("connectstatusproxied").classList.remove("hidden");
|
||||
}else
|
||||
{
|
||||
document.getElementById("connectstatusproxied").classList.add("hidden");
|
||||
}
|
||||
|
||||
//good to go
|
||||
custom_kobold_endpoint = desiredkoboldendpoint;
|
||||
custom_kobold_key = desiredkoboldkey;
|
||||
|
|
@ -9365,34 +9386,40 @@ initializeInstructUIFunctionality();
|
|||
|
||||
let is_local = is_local_url(custom_kobold_endpoint);
|
||||
|
||||
if (uses_cors_proxy || is_local) {
|
||||
if(is_local && sublocalpathname!="")
|
||||
{
|
||||
sublocalpathname = ""; //one more try
|
||||
attempt_connect(false);
|
||||
}
|
||||
else if(is_local && reattempt_local_port80)
|
||||
{
|
||||
reattempt_local_port80 = false;
|
||||
localmodeport = 80;
|
||||
attempt_connect(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
msgbox("Failed to connect to Custom KoboldAI Endpoint!<br><br>Please check if KoboldAI is running at the url: " + desiredkoboldendpoint + "<br><br>You can also <a href='#' class='color_blueurl' onclick='hide_popups();display_endpoint_container();'>try a different URL or API type</a>.","Error Encountered",true);
|
||||
selected_models = [];
|
||||
selected_workers = [];
|
||||
custom_kobold_endpoint = "";
|
||||
if(localflag)
|
||||
{
|
||||
document.getElementById("connectstatus").innerHTML = "Offline Mode";
|
||||
}
|
||||
render_gametext();
|
||||
}
|
||||
} else {
|
||||
uses_cors_proxy = true; //fallback to cors proxy, this will remain for rest of session
|
||||
//we will go down the fallbacks one by one until we run out of options
|
||||
localmodeport = backup_localmodeport;
|
||||
if(is_local && sublocalpathname!="")
|
||||
{
|
||||
sublocalpathname = ""; // first fallback, check subdir paths
|
||||
attempt_connect(false);
|
||||
}
|
||||
else if(reattempt_local_port80) // second fallback, try port 80
|
||||
{
|
||||
reattempt_local_port80 = false;
|
||||
localmodeport = 80;
|
||||
attempt_connect(false);
|
||||
}
|
||||
else if(!is_local && !uses_cors_proxy) //third fallback, use cors proxy if not a local IP
|
||||
{
|
||||
uses_cors_proxy = true; // fallback to cors proxy, this will remain for rest of session
|
||||
connect_custom_endpoint(); //one more try
|
||||
}
|
||||
else //finally, we give up
|
||||
{
|
||||
msgbox("Failed to connect to Custom KoboldAI Endpoint!<br><br>Please check if KoboldAI is running at the url: " + desiredkoboldendpoint + "<br><br>You can also <a href='#' class='color_blueurl' onclick='hide_popups();display_endpoint_container();'>try a different URL or API type</a>.","Error Encountered",true);
|
||||
selected_models = [];
|
||||
selected_workers = [];
|
||||
custom_kobold_endpoint = "";
|
||||
if(localflag)
|
||||
{
|
||||
document.getElementById("connectstatus").innerHTML = "Offline Mode";
|
||||
}else{
|
||||
document.getElementById("connectstatus").innerHTML = "Error";
|
||||
}
|
||||
|
||||
render_gametext();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -9491,6 +9518,11 @@ initializeInstructUIFunctionality();
|
|||
{
|
||||
dismiss_endpoint_container();
|
||||
|
||||
if(desired_claude_ep.toLowerCase().includes("api.anthropic.com"))
|
||||
{
|
||||
document.getElementById("connectstatusproxied").classList.remove("hidden");
|
||||
}
|
||||
|
||||
//good to go
|
||||
custom_claude_endpoint = desired_claude_ep;
|
||||
custom_claude_key = desired_claude_key;
|
||||
|
|
@ -9900,12 +9932,19 @@ initializeInstructUIFunctionality();
|
|||
custom_palm_key = "";
|
||||
custom_cohere_key = "";
|
||||
|
||||
if (selected_idx_arr.length > 0) {
|
||||
let prep_sel_models = [];
|
||||
let prep_sel_workers = []; //if selected, pick a specific worker ids to use
|
||||
let prep_sel_models = [];
|
||||
let prep_sel_workers = []; //if selected, pick a specific worker ids to use
|
||||
|
||||
let manualworker = (document.getElementById("manualworker").checked ? true : false);
|
||||
let manualworker = (document.getElementById("manualworker").checked ? true : false);
|
||||
|
||||
if (selected_idx_arr.length == 0) { //select everything
|
||||
manualworker = false;
|
||||
for (let i = 0; i < models_data.length; ++i) {
|
||||
prep_sel_models.push(models_data[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i = 0; i < selected_idx_arr.length; ++i) {
|
||||
if (manualworker) //we are looping through selected workers
|
||||
{
|
||||
|
|
@ -9925,24 +9964,24 @@ initializeInstructUIFunctionality();
|
|||
prep_sel_models.push(addedmodel);
|
||||
}
|
||||
}
|
||||
|
||||
//remove undefined and nulls
|
||||
prep_sel_models = prep_sel_models.filter(x=>x);
|
||||
prep_sel_workers = prep_sel_workers.filter(x=>x);
|
||||
|
||||
selected_models = prep_sel_models;
|
||||
selected_workers = prep_sel_workers;
|
||||
localsettings.my_api_key = document.getElementById("apikey").value;
|
||||
if(localsettings.my_api_key==null || localsettings.my_api_key=="")
|
||||
{
|
||||
localsettings.my_api_key = defaultsettings.my_api_key;
|
||||
}
|
||||
|
||||
document.getElementById("connectstatus").innerHTML = "AI Horde";
|
||||
|
||||
render_gametext();
|
||||
hide_popups();
|
||||
}
|
||||
|
||||
//remove undefined and nulls
|
||||
prep_sel_models = prep_sel_models.filter(x=>x);
|
||||
prep_sel_workers = prep_sel_workers.filter(x=>x);
|
||||
|
||||
selected_models = prep_sel_models;
|
||||
selected_workers = prep_sel_workers;
|
||||
localsettings.my_api_key = document.getElementById("apikey").value;
|
||||
if(localsettings.my_api_key==null || localsettings.my_api_key=="")
|
||||
{
|
||||
localsettings.my_api_key = defaultsettings.my_api_key;
|
||||
}
|
||||
|
||||
render_gametext();
|
||||
hide_popups();
|
||||
|
||||
document.getElementById("connectstatus").innerHTML = "AI Horde";
|
||||
}
|
||||
|
||||
function delete_my_worker(index)
|
||||
|
|
@ -19062,6 +19101,7 @@ initializeInstructUIFunctionality();
|
|||
<div id="connectstatusdiv">
|
||||
<div id="connectstatus">Connecting</div>
|
||||
<div class="hidden" style="font-size: 12px;" id="connectstatusmultiplayer"></div>
|
||||
<div class="hidden color_orange" style="font-size: 12px;" id="connectstatusproxied">(Proxied)</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -19591,7 +19631,7 @@ initializeInstructUIFunctionality();
|
|||
</span>
|
||||
</div>
|
||||
<div class="popupfooter">
|
||||
<button type="button" class="btn btn-primary" onclick="connect_custom_endpoint()">Ok</button>
|
||||
<button type="button" class="btn btn-primary" onclick="clear_cors_proxy_flag();connect_custom_endpoint()">Ok</button>
|
||||
<button type="button" class="btn btn-primary" onclick="dismiss_endpoint_container()">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -336,13 +336,12 @@ static std::string process_text(const std::string & text, TTS_VER ver) {
|
|||
std::transform(processed_text.begin(), processed_text.end(),
|
||||
processed_text.begin(), ::tolower);
|
||||
|
||||
// replace multiple punctuation with single
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(([,.!?])\1+)"), "$1");
|
||||
//handle words connected by periods, replace the matches with " dot ".
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"((\S)\.(\S))"), "$1 dot $2");
|
||||
|
||||
if(ver==TTS_VER_2)
|
||||
{
|
||||
// replace multiple punctuation with single
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(([,.!?])\1+)"), "$1");
|
||||
//handle words connected by periods, add a space
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(([.,?!])([^\s]))"), "$1 $2"); //add space after punctuation
|
||||
std::regex special_chars(R"([\(\)\[\]\{\}\:-_/,\.\\])");
|
||||
processed_text = std::regex_replace(processed_text, special_chars, " ");
|
||||
std::regex non_alpha(R"([^a-z\s])");
|
||||
|
|
@ -356,12 +355,15 @@ static std::string process_text(const std::string & text, TTS_VER ver) {
|
|||
processed_text = std::regex_replace(processed_text, special_chars, " ");
|
||||
std::regex non_alpha(R"([^a-z\s.,?!])");
|
||||
processed_text = std::regex_replace(processed_text, non_alpha, "");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\s+)"), " "); // compress multiple spaces
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(([,.!?])\1+)"), "$1"); // replace multiple punctuation with single
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\s+([.,!?]))"), "$1"); // Remove whitespace before punctuation
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(([.,?!])([^\s]))"), "$1 $2"); //add space after punctuation
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\,)"), "<|comma|>");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\.)"), "<|period|>");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\?)"), "<|question_mark|>");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\!)"), "<|exclamation_mark|>");
|
||||
std::regex multiple_spaces(R"(\s+)");
|
||||
processed_text = std::regex_replace(processed_text, multiple_spaces, " ");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\s+)"), " "); // compress multiple spaces
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(^\s+|\s+$)"), "");
|
||||
processed_text = std::regex_replace(processed_text, std::regex(R"(\s)"), "<|space|>");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue