From 2f2b512129e6cc389c20b29e13c5e523a910c725 Mon Sep 17 00:00:00 2001 From: Dmitry Afanasyev <71835315+Balshgit@users.noreply.github.com> Date: Thu, 23 Nov 2023 16:50:04 +0300 Subject: [PATCH] fix chat_microservice bug (#59) --- chatgpt_microservice/src/free_gpt.cpp | 10 +++++++--- chatgpt_microservice/src/main.cpp | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/chatgpt_microservice/src/free_gpt.cpp b/chatgpt_microservice/src/free_gpt.cpp index 45d52e4..11d9019 100644 --- a/chatgpt_microservice/src/free_gpt.cpp +++ b/chatgpt_microservice/src/free_gpt.cpp @@ -284,10 +284,10 @@ public: curl_easy_setopt(m_curl, CURLOPT_URL, m_url.data()); return *this; } - auto& setBody(std::string body) { + auto& setBody(std::string body, CURLoption cur_loption = CURLoption::CURLOPT_POSTFIELDS) { if (!body.empty()) { m_body = std::move(body); - curl_easy_setopt(m_curl, CURLOPT_POSTFIELDS, m_body.c_str()); + curl_easy_setopt(m_curl, cur_loption, m_body.c_str()); } return *this; } @@ -1929,6 +1929,11 @@ boost::asio::awaitable FreeGpt::fakeGpt(std::shared_ptr ch, nlohm if (j["count"].get() == 0) random_j.emplace_back(std::move(j)); } + if (random_j.empty()) { + SPDLOG_ERROR("random_j is empty!!!"); + ch->try_send(err, json_result.dump()); + co_return; + } std::mt19937 g{std::random_device{}()}; std::uniform_int_distribution d{0, random_j.size()}; auto token_id = random_j[d(g)]; @@ -2638,4 +2643,3 @@ boost::asio::awaitable FreeGpt::gptTalkru(std::shared_ptr ch, nlo } co_return; } - diff --git a/chatgpt_microservice/src/main.cpp b/chatgpt_microservice/src/main.cpp index 1a5547a..b1e55d0 100644 --- a/chatgpt_microservice/src/main.cpp +++ b/chatgpt_microservice/src/main.cpp @@ -355,7 +355,7 @@ int main(int, char** argv) { ADD_METHOD("gpt-4-ChatGpt4Online", FreeGpt::chatGpt4Online); ADD_METHOD("gpt-3.5-turbo-stream-ChatAnywhere", FreeGpt::chatAnywhere); ADD_METHOD("gpt-3.5-turbo-ChatgptNext", FreeGpt::chatGptNext); - ADD_METHOD("gpt-3.5-turbo--stream-gptTalkRu", FreeGpt::gptTalkru); + ADD_METHOD("gpt-3.5-turbo-stream-gptTalkRu", FreeGpt::gptTalkru); SPDLOG_INFO("active provider:"); for (auto& [provider, _] : gpt_function)