Skip to content

Commit 50e1064

Browse files
committed
better passthrough handling
1 parent a62e1df commit 50e1064

File tree

2 files changed

+35
-22
lines changed

2 files changed

+35
-22
lines changed

klite.embd

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16398,7 +16398,7 @@ Current version indicated by LITEVER below.
1639816398
gentxt = trim_extra_stop_seqs(gentxt,false);
1639916399

1640016400
//fix alpaca leakage
16401-
if(localsettings.fix_alpaca_leak && (localsettings.opmode == 2 || localsettings.opmode == 3 || localsettings.opmode == 4) && get_instruct_starttag(true).toLowerCase().includes("### instruction"))
16401+
if(localsettings.fix_alpaca_leak && (localsettings.opmode == 2 || localsettings.opmode == 3 || localsettings.opmode == 4) && (get_instruct_starttag(true)=="{{[INPUT]}}" || get_instruct_starttag(true).toLowerCase().includes("### instruction")))
1640216402
{
1640316403
let matches = gentxt.match(/\n### (instruction|response)\n|\n### ([^\s]+?):\n/gi);
1640416404
for(let m in matches)
@@ -16540,6 +16540,11 @@ Current version indicated by LITEVER below.
1654016540
{
1654116541
let st = get_instruct_starttag(true);
1654216542
let et = get_instruct_endtag(true);
16543+
if(st=="{{[INPUT]}}" || et=="{{[OUTPUT]}}")
16544+
{
16545+
st = "### Instruction:";
16546+
et = "### Response:";
16547+
}
1654316548
let stet_et = "";
1654416549
if(localsettings.separate_end_tags && get_instruct_endtag_end(true))
1654516550
{

koboldcpp.py

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,8 +1282,7 @@ def generate(genparams, stream_flag=False):
12821282
xtc_probability = tryparsefloat(genparams.get('xtc_probability', 0),0)
12831283
sampler_order = genparams.get('sampler_order', [6, 0, 1, 3, 4, 2, 5])
12841284
seed = tryparseint(genparams.get('sampler_seed', -1),-1)
1285-
stop_sequence = (genparams.get('stop_sequence', []) if genparams.get('stop_sequence', []) is not None else [])
1286-
stop_sequence = stop_sequence[:stop_token_max]
1285+
stop_sequence = genparams.get('stop_sequence', [])
12871286
ban_eos_token = genparams.get('ban_eos_token', False)
12881287
stream_sse = stream_flag
12891288
grammar = genparams.get('grammar', '')
@@ -1307,25 +1306,6 @@ def generate(genparams, stream_flag=False):
13071306
banned_tokens = genparams.get('banned_tokens', banned_strings)
13081307
bypass_eos_token = genparams.get('bypass_eos', False)
13091308
custom_token_bans = genparams.get('custom_token_bans', '')
1310-
replace_instruct_placeholders = genparams.get('replace_instruct_placeholders', False)
1311-
if replace_instruct_placeholders:
1312-
adapter_obj = {} if chatcompl_adapter is None else chatcompl_adapter
1313-
system_message_start = adapter_obj.get("system_start", "\n### Instruction:\n")
1314-
user_message_start = adapter_obj.get("user_start", "\n### Instruction:\n")
1315-
user_message_end = adapter_obj.get("user_end", "")
1316-
assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n")
1317-
assistant_message_end = adapter_obj.get("assistant_end", "")
1318-
prompt = prompt.replace("{{[INPUT]}}", assistant_message_end + user_message_start)
1319-
prompt = prompt.replace("{{[OUTPUT]}}", user_message_end + assistant_message_start)
1320-
prompt = prompt.replace("{{[SYSTEM]}}", system_message_start)
1321-
memory = memory.replace("{{[INPUT]}}", assistant_message_end + user_message_start)
1322-
memory = memory.replace("{{[OUTPUT]}}", user_message_end + assistant_message_start)
1323-
memory = memory.replace("{{[SYSTEM]}}", system_message_start)
1324-
for i in range(len(stop_sequence)):
1325-
if stop_sequence[i] == "{{[INPUT]}}":
1326-
stop_sequence[i] = user_message_start
1327-
elif stop_sequence[i] == "{{[OUTPUT]}}":
1328-
stop_sequence[i] = assistant_message_start
13291309

13301310
for tok in custom_token_bans.split(','):
13311311
tok = tok.strip() # Remove leading/trailing whitespace
@@ -2298,6 +2278,34 @@ def transform_genparams(genparams, api_format):
22982278
genparams["ollamasysprompt"] = ollamasysprompt
22992279
genparams["ollamabodyprompt"] = ollamabodyprompt
23002280
genparams["prompt"] = ollamasysprompt + ollamabodyprompt
2281+
2282+
#final transformations (universal template replace)
2283+
replace_instruct_placeholders = genparams.get('replace_instruct_placeholders', False)
2284+
stop_sequence = (genparams.get('stop_sequence', []) if genparams.get('stop_sequence', []) is not None else [])
2285+
stop_sequence = stop_sequence[:stop_token_max]
2286+
if replace_instruct_placeholders:
2287+
prompt = genparams.get('prompt', "")
2288+
memory = genparams.get('memory', "")
2289+
adapter_obj = {} if chatcompl_adapter is None else chatcompl_adapter
2290+
system_message_start = adapter_obj.get("system_start", "\n### Instruction:\n")
2291+
user_message_start = adapter_obj.get("user_start", "\n### Instruction:\n")
2292+
user_message_end = adapter_obj.get("user_end", "")
2293+
assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n")
2294+
assistant_message_end = adapter_obj.get("assistant_end", "")
2295+
prompt = prompt.replace("{{[INPUT]}}", assistant_message_end + user_message_start)
2296+
prompt = prompt.replace("{{[OUTPUT]}}", user_message_end + assistant_message_start)
2297+
prompt = prompt.replace("{{[SYSTEM]}}", system_message_start)
2298+
memory = memory.replace("{{[INPUT]}}", assistant_message_end + user_message_start)
2299+
memory = memory.replace("{{[OUTPUT]}}", user_message_end + assistant_message_start)
2300+
memory = memory.replace("{{[SYSTEM]}}", system_message_start)
2301+
for i in range(len(stop_sequence)):
2302+
if stop_sequence[i] == "{{[INPUT]}}":
2303+
stop_sequence[i] = user_message_start
2304+
elif stop_sequence[i] == "{{[OUTPUT]}}":
2305+
stop_sequence[i] = assistant_message_start
2306+
genparams["prompt"] = prompt
2307+
genparams["memory"] = memory
2308+
genparams["stop_sequence"] = stop_sequence
23012309
return genparams
23022310

23032311
def LaunchWebbrowser(target_url, failedmsg):

0 commit comments

Comments
 (0)