From e64210ef165e69d5573d85c1efea3642651efed6 Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Tue, 5 Mar 2024 21:32:32 +0800 Subject: [PATCH] updated lite --- klite.embd | 150 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 109 insertions(+), 41 deletions(-) diff --git a/klite.embd b/klite.embd index 7f1011d3e..f1f2370a5 100644 --- a/klite.embd +++ b/klite.embd @@ -1489,6 +1489,7 @@ Current version: 120 float: right; position: relative; padding: 4px; + clear: both; } .storyimgside { @@ -3365,6 +3366,7 @@ Current version: 120 const scale_submit_endpoint = "https://dashboard.scale.com/spellbook/api/v2/deploy/" const claude_submit_endpoint = "/complete"; + const claude_submit_endpoint_v3 = "/messages"; const default_openrouter_base = "https://openrouter.ai/api/v1"; const default_oai_base = "https://api.openai.com"; @@ -3431,7 +3433,7 @@ Current version: 120 var current_wi = []; //each item stores a wi object. var wi_insertlocation = 0; //after memory var wi_searchdepth = 0; //search everything - var generateimagesinterval = 650; //if generated images is enabled, it will trigger after every 600 new characters in context. + var generateimagesinterval = 700; //if generated images is enabled, it will trigger after every 700 new characters in context. var nextgeneratedimagemilestone = generateimagesinterval; //used to keep track of when to generate the next image var image_db = {}; //stores a dictionary of pending images var interrogation_db = {}; @@ -6736,6 +6738,22 @@ Current version: 120 }); } + function toggleclaudemodel() + { + if (document.getElementById("custom_claude_model").value.toLowerCase().includes("claude-3")) + { + document.getElementById("claudesystemprompt").classList.remove("hidden"); + document.getElementById("claudejailbreakprompt").classList.remove("hidden"); + document.getElementById("clauderenamecompatdiv").classList.add("hidden"); + } + else + { + document.getElementById("claudesystemprompt").classList.add("hidden"); + document.getElementById("claudejailbreakprompt").classList.add("hidden"); + document.getElementById("clauderenamecompatdiv").classList.remove("hidden"); + } + } + function customapi_dropdown() { let epchoice = document.getElementById("customapidropdown").value; @@ -8891,7 +8909,7 @@ Current version: 120 function do_auto_gen_image(truncated_context) { var tclen = truncated_context.length; - var sentence = truncated_context.substring(tclen - 350, tclen); + var sentence = truncated_context.substring(tclen - 380, tclen); sentence = start_trim_to_sentence(sentence); sentence = end_trim_to_sentence(sentence,true); if (sentence.length > 0) { @@ -8920,7 +8938,7 @@ Current version: 120 let userinput = getInputBoxValue(); if(userinput.trim()!="") { - var sentence = userinput.trim().substring(0, 350); + var sentence = userinput.trim().substring(0, 380); do_manual_gen_image(sentence); } },false); @@ -9967,57 +9985,96 @@ Current version: 120 } else if (custom_claude_key != "")//handle for Claude { - let targetep = cors_proxy + "?" + (custom_claude_endpoint + claude_submit_endpoint); + let claudev3mode = custom_claude_model.toLowerCase().includes("claude-3"); + let targetep = cors_proxy + "?" + (custom_claude_endpoint + (claudev3mode?claude_submit_endpoint_v3:claude_submit_endpoint)); + let claude_payload = null; + if(claudev3mode) + { + let sysprompt = document.getElementById("claudesystemprompt").value; + let assistantprompt = document.getElementById("claudejailbreakprompt").value; + claude_payload = + { + "model": custom_claude_model, + "messages": [{"role": "user", "content": submit_payload.prompt}], + "max_tokens": submit_payload.params.max_length, + "top_k": (submit_payload.params.top_k<1?300:submit_payload.params.top_k), + "temperature": submit_payload.params.temperature, + "top_p": submit_payload.params.top_p, + }; + if(sysprompt) + { + claude_payload.system = sysprompt; + } + if(assistantprompt) + { + claude_payload.messages.push({"role": "assistant", "content": assistantprompt}); + } + } + else + { + claude_payload = + { + "prompt": submit_payload.prompt, + "max_tokens_to_sample": submit_payload.params.max_length, + "model": custom_claude_model, + "top_k": (submit_payload.params.top_k<1?300:submit_payload.params.top_k), + "temperature": submit_payload.params.temperature, + "top_p": submit_payload.params.top_p, + }; - let claude_payload = - { - "prompt": submit_payload.prompt, - "max_tokens_to_sample": submit_payload.params.max_length, - "model": custom_claude_model, - "top_k": (submit_payload.params.top_k<1?300:submit_payload.params.top_k), - "temperature": submit_payload.params.temperature, - "top_p": submit_payload.params.top_p, - } - if(document.getElementById("clauderenamecompat").checked) - { - let assistant_correct_case = "Assistant:"; - if(!claude_payload.prompt.toLowerCase().trim().startsWith('human:')) + if(document.getElementById("clauderenamecompat").checked) { - claude_payload.prompt = "Human: "+claude_payload.prompt; - } - if(!claude_payload.prompt.toLowerCase().trim().endsWith(assistant_correct_case.toLowerCase())) - { - if(localsettings.opmode==1) + let assistant_correct_case = "Assistant:"; + if(!claude_payload.prompt.toLowerCase().trim().startsWith('human:')) { - claude_payload.prompt = claude_payload.prompt + " \n"+assistant_correct_case+" Here is a continuation of the story: \n"+assistant_correct_case; + claude_payload.prompt = "Human: "+claude_payload.prompt; } - else + if(!claude_payload.prompt.toLowerCase().trim().endsWith(assistant_correct_case.toLowerCase())) { - claude_payload.prompt = claude_payload.prompt + " "+assistant_correct_case; + if(localsettings.opmode==1) + { + claude_payload.prompt = claude_payload.prompt + " \n"+assistant_correct_case+" Here is a continuation of the story: \n"+assistant_correct_case; + } + else + { + claude_payload.prompt = claude_payload.prompt + " "+assistant_correct_case; + } } + //trim end + claude_payload.prompt = claude_payload.prompt.replace(/[\t\r\n ]+$/, ''); + //replace final assistant with fixed case + claude_payload.prompt = claude_payload.prompt.slice(0, -(assistant_correct_case.length))+assistant_correct_case; } - //trim end - claude_payload.prompt = claude_payload.prompt.replace(/[\t\r\n ]+$/, ''); - //replace final assistant with fixed case - claude_payload.prompt = claude_payload.prompt.slice(0, -(assistant_correct_case.length))+assistant_correct_case; } + last_request_str = JSON.stringify(claude_payload); + let claudeheaders = { + 'Content-Type': 'application/json', + 'x-api-key': custom_claude_key, + 'Authorization': 'Bearer '+custom_claude_key, + }; + if(claudev3mode) + { + claudeheaders["anthropic-version"] = '2023-06-01'; + }else{ + claudeheaders["anthropic-version"] = '2023-01-01'; + } + fetch(targetep, { method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'x-api-key': custom_claude_key, - 'anthropic-version': '2023-01-01', - 'Authorization': 'Bearer '+custom_claude_key, - }, + headers: claudeheaders, body: JSON.stringify(claude_payload), referrerPolicy: 'no-referrer', }) .then((response) => response.json()) .then((data) => { console.log("sync finished response: " + JSON.stringify(data)); + if(custom_claude_key != "" && data.content && data.content.length > 0 && data.content[0].text) + { + data.completion = data.content[0].text; //for claudev3 + } if (custom_claude_key != "" && data.completion != null && data.completion != "") { synchro_polled_response = data.completion; @@ -10584,11 +10641,12 @@ Current version: 120 } function render_image_html(data, pend_txt = "", float=true, center=false) { - var dim = (localsettings.opmode == 2 ? 160 : 200); //adventure mode has smaller pictures + var dim = (localsettings.opmode == 2 ? 160 : 180); //adventure mode has smaller pictures let siclass = (float?"storyimgfloat":(center?"storyimgcenter":"storyimgside")); let reinvertcolor = localsettings.invert_colors?" invert_colors":""; let alttxt = ""; - let suffix = ((float==false&¢er==false)?"
":""); + let suffix = ""; + let prefix = ((float==false&¢er==false)?"
":""); if (!data || data == "") { let waittime = "Unavailable"; if (image_db[pend_txt] != null) { @@ -10599,13 +10657,13 @@ Current version: 120 console.log("Cannot render " + pend_txt); } - return `
` + pend_txt + `
` + waittime + `
` + suffix; + return prefix + `
` + pend_txt + `
` + waittime + `
` + suffix; } else { let imghash = cyrb_hash(data).trim(); if (completed_imgs_meta[imghash] != null) { alttxt = completed_imgs_meta[imghash].prompt?escapeHtml(completed_imgs_meta[imghash].prompt):""; } - return `
` + suffix; + return prefix + `
` + suffix; } } @@ -13542,7 +13600,7 @@ Current version: 120
Model Choice:
- @@ -13550,11 +13608,21 @@ Current version: 120 + +
Add Endpoint Version
+
Claude Compatibility Rename Fix
+
+ + + +