From aa95dc5568f9a27f17816426c3a8c118fc7789e3 Mon Sep 17 00:00:00 2001 From: Minsoo Cheong Date: Tue, 5 Mar 2024 18:24:05 +0900 Subject: [PATCH] persist completion_id only for same stream --- examples/server/oai.hpp | 4 ++-- examples/server/server.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/server/oai.hpp b/examples/server/oai.hpp index 50ca48f93..5fe1a62a8 100644 --- a/examples/server/oai.hpp +++ b/examples/server/oai.hpp @@ -69,7 +69,7 @@ inline static json oaicompat_completion_params_parse( return llama_params; } -inline static json format_final_response_oaicompat(const json &request, const task_result &response, std::string id, bool streaming = false) +inline static json format_final_response_oaicompat(const json &request, const task_result &response, bool streaming = false) { json result = response.result_json; @@ -105,7 +105,7 @@ inline static json format_final_response_oaicompat(const json &request, const ta json{{"completion_tokens", num_tokens_predicted}, {"prompt_tokens", num_prompt_tokens}, {"total_tokens", num_tokens_predicted + num_prompt_tokens}}}, - {"id", id}}; + {"id", gen_chatcmplid()}}; if (server_verbose) { res["__verbose"] = result; diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 33d6faab6..f4a01397d 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -3210,8 +3210,7 @@ int main(int argc, char **argv) res.set_content(models.dump(), "application/json; charset=utf-8"); }); - const std::string completion_id = gen_chatcmplid(); - const auto chat_completions = [&llama, &validate_api_key, &sparams, &completion_id](const httplib::Request &req, httplib::Response &res) + const auto chat_completions = [&llama, &validate_api_key, &sparams](const httplib::Request &req, httplib::Response &res) { res.set_header("Access-Control-Allow-Origin", req.get_header_value("Origin")); if (!validate_api_key(req, res)) { @@ -3228,7 +3227,7 @@ int main(int argc, char **argv) task_result result = llama.queue_results.recv(task_id); if (!result.error && result.stop) { - json oaicompat_result = format_final_response_oaicompat(data, result, completion_id); + json oaicompat_result = format_final_response_oaicompat(data, result); res.set_content(oaicompat_result.dump(-1, ' ', false, json::error_handler_t::replace), @@ -3239,7 +3238,8 @@ int main(int argc, char **argv) } llama.queue_results.remove_waiting_task_id(task_id); } else { - const auto chunked_content_provider = [task_id, &llama, &completion_id](size_t, httplib::DataSink &sink) { + const auto chunked_content_provider = [task_id, &llama](size_t, httplib::DataSink &sink) { + const std::string completion_id = gen_chatcmplid(); while (true) { task_result llama_result = llama.queue_results.recv(task_id); if (!llama_result.error) {