diff --git a/koboldcpp.py b/koboldcpp.py index 0b0b9f31f..1957fd09b 100755 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -412,16 +412,34 @@ class ServerRequestHandler(http.server.SimpleHTTPRequestHandler): elif api_format==4: # translate openai chat completion messages format into one big string. messages_array = genparams.get('messages', []) + adapter_obj = genparams.get('adapter', {}) messages_string = "" + system_message_start = adapter_obj.get("system_start", "\n### Instruction:\n") + system_message_end = adapter_obj.get("system_end", "") + user_message_start = adapter_obj.get("user_start", "\n### Instruction:\n") + user_message_end = adapter_obj.get("user_end", "") + assistant_message_start = adapter_obj.get("assistant_start", "\n### Response:\n") + assistant_message_end = adapter_obj.get("assistant_end", "") + for message in messages_array: if message['role'] == "system": - messages_string+="\n### Instruction:\n" + messages_string += system_message_start elif message['role'] == "user": - messages_string+="\n### Instruction:\n" + messages_string += user_message_start elif message['role'] == "assistant": - messages_string+="\n### Response:\n" - messages_string+=message['content'] - messages_string += "\n### Response:\n" + messages_string += assistant_message_start + + messages_string += message['content'] + + if message['role'] == "system": + messages_string += system_message_end + elif message['role'] == "user": + messages_string += user_message_end + elif message['role'] == "assistant": + messages_string += assistant_message_end + + messages_string += assistant_message_start + genparams["prompt"] = messages_string frqp = genparams.get('frequency_penalty', 0.1) scaled_rep_pen = genparams.get('presence_penalty', frqp) + 1