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 `