bool reasoning_in_content = false;
std::string generation_prompt;
bool parse_tool_calls = true;
+ bool is_continuation = false;
bool echo = false; // Include assistant prefilled msg in output
bool debug = false; // Enable debug output for PEG parser
common_peg_arena parser = {};
, oai_resp_id("resp_" + random_string())
, oai_resp_reasoning_id("rs_" + random_string())
, oai_resp_message_id("msg_" + random_string()) {
- if (!chat_parser_params.echo) {
+ if (chat_parser_params.is_continuation && !chat_parser_params.echo) {
// initialize chat_msg to avoid emitting a delta containing the assistant prefill
chat_msg = common_chat_parse("", true, chat_parser_params);
}
if (data.contains("chat_parser")) {
params.chat_parser_params.parser.load(data.at("chat_parser").get<std::string>());
}
+ if (data.contains("continue_final_message")) {
+ auto continuation = common_chat_continuation_parse(data.at("continue_final_message"));
+ params.chat_parser_params.is_continuation = continuation != COMMON_CHAT_CONTINUATION_NONE;
+ }
params.chat_parser_params.echo = json_value(data, "echo", false);
}