}
// API key is invalid or not provided
- res.set_content("Unauthorized: Invalid API Key", "text/plain");
+ res.set_content("Unauthorized: Invalid API Key", "text/plain; charset=utf-8");
res.status = 401; // Unauthorized
LOG_WARNING("Unauthorized: Invalid API Key", {});
// this is only called if no index.html is found in the public --path
svr.Get("/", [](const httplib::Request &, httplib::Response &res)
{
- res.set_content(reinterpret_cast<const char*>(&index_html), index_html_len, "text/html");
+ res.set_content(reinterpret_cast<const char*>(&index_html), index_html_len, "text/html; charset=utf-8");
return false;
});
// this is only called if no index.js is found in the public --path
svr.Get("/index.js", [](const httplib::Request &, httplib::Response &res)
{
- res.set_content(reinterpret_cast<const char *>(&index_js), index_js_len, "text/javascript");
+ res.set_content(reinterpret_cast<const char *>(&index_js), index_js_len, "text/javascript; charset=utf-8");
return false;
});
// this is only called if no index.html is found in the public --path
svr.Get("/completion.js", [](const httplib::Request &, httplib::Response &res)
{
- res.set_content(reinterpret_cast<const char*>(&completion_js), completion_js_len, "application/javascript");
+ res.set_content(reinterpret_cast<const char*>(&completion_js), completion_js_len, "application/javascript; charset=utf-8");
return false;
});
// this is only called if no index.html is found in the public --path
svr.Get("/json-schema-to-grammar.mjs", [](const httplib::Request &, httplib::Response &res)
{
- res.set_content(reinterpret_cast<const char*>(&json_schema_to_grammar_mjs), json_schema_to_grammar_mjs_len, "application/javascript");
+ res.set_content(reinterpret_cast<const char*>(&json_schema_to_grammar_mjs), json_schema_to_grammar_mjs_len, "application/javascript; charset=utf-8");
return false;
});
{ "user_name", llama.name_user.c_str() },
{ "assistant_name", llama.name_assistant.c_str() }
};
- res.set_content(data.dump(), "application/json");
+ res.set_content(data.dump(), "application/json; charset=utf-8");
});
svr.Post("/completion", [&llama, &validate_api_key](const httplib::Request &req, httplib::Response &res)
std::string completion_text;
task_result result = llama.next_result(task_id);
if (!result.error && result.stop) {
- res.set_content(result.result_json.dump(-1, ' ', false, json::error_handler_t::replace), "application/json");
+ res.set_content(result.result_json.dump(-1, ' ', false, json::error_handler_t::replace), "application/json; charset=utf-8");
}
else
{
res.status = 404;
- res.set_content(result.result_json["content"], "text/plain");
+ res.set_content(result.result_json["content"], "text/plain; charset=utf-8");
return;
}
} else {
}}
};
- res.set_content(models.dump(), "application/json");
+ res.set_content(models.dump(), "application/json; charset=utf-8");
});
// TODO: add mount point without "/v1" prefix -- how?
res.set_content(oaicompat_result.dump(-1, ' ', false,
json::error_handler_t::replace),
- "application/json");
+ "application/json; charset=utf-8");
} else {
res.status = 500;
- res.set_content(result.result_json["content"], "text/plain");
+ res.set_content(result.result_json["content"], "text/plain; charset=utf-8");
return;
}
} else {
task_result result = llama.next_result(task_id);
if (!result.error && result.stop)
{
- res.set_content(result.result_json.dump(-1, ' ', false, json::error_handler_t::replace), "application/json");
+ res.set_content(result.result_json.dump(-1, ' ', false, json::error_handler_t::replace), "application/json; charset=utf-8");
}
else
{
res.status = 404;
- res.set_content(result.result_json["content"], "text/plain");
+ res.set_content(result.result_json["content"], "text/plain; charset=utf-8");
return;
}
} else {
svr.Get("/model.json", [&llama](const httplib::Request &, httplib::Response &res)
{
const json data = llama.get_model_props();
- return res.set_content(data.dump(), "application/json");
+ return res.set_content(data.dump(), "application/json; charset=utf-8");
});
svr.Options(R"(/.*)", [](const httplib::Request &, httplib::Response &res)
- { return res.set_content("", "application/json"); });
+ { return res.set_content("", "application/json; charset=utf-8"); });
svr.Post("/tokenize", [&llama](const httplib::Request &req, httplib::Response &res)
{
tokens = llama.tokenize(body["content"], false);
}
const json data = format_tokenizer_response(tokens);
- return res.set_content(data.dump(), "application/json");
+ return res.set_content(data.dump(), "application/json; charset=utf-8");
});
svr.Post("/detokenize", [&llama](const httplib::Request &req, httplib::Response &res)
}
const json data = format_detokenized_response(content);
- return res.set_content(data.dump(), "application/json");
+ return res.set_content(data.dump(), "application/json; charset=utf-8");
});
svr.Post("/embedding", [&llama](const httplib::Request &req, httplib::Response &res)
}
const int task_id = llama.request_completion({ {"prompt", prompt}, { "n_predict", 0} }, false, true, -1);
task_result result = llama.next_result(task_id);
- return res.set_content(result.result_json.dump(), "application/json");
+ return res.set_content(result.result_json.dump(), "application/json; charset=utf-8");
});
svr.set_logger(log_server_request);
{
snprintf(buf, sizeof(buf), fmt, "Unknown Exception");
}
- res.set_content(buf, "text/plain");
+ res.set_content(buf, "text/plain; charset=utf-8");
res.status = 500;
});
{
if (res.status == 401)
{
- res.set_content("Unauthorized", "text/plain");
+ res.set_content("Unauthorized", "text/plain; charset=utf-8");
}
if (res.status == 400)
{
- res.set_content("Invalid request", "text/plain");
+ res.set_content("Invalid request", "text/plain; charset=utf-8");
}
else if (res.status == 404)
{
- res.set_content("File Not Found", "text/plain");
+ res.set_content("File Not Found", "text/plain; charset=utf-8");
res.status = 404;
}
});