diff --git a/src/text_embedder_remote.cpp b/src/text_embedder_remote.cpp index 74226db2..b8908baf 100644 --- a/src/text_embedder_remote.cpp +++ b/src/text_embedder_remote.cpp @@ -372,8 +372,19 @@ embedding_res_t GoogleEmbedder::Embed(const std::string& text, const size_t remo std::vector GoogleEmbedder::batch_embed(const std::vector& inputs, const size_t remote_embedding_batch_size) { std::vector outputs; + bool timeout_prev = false; for(auto& input : inputs) { auto res = Embed(input); + if(res.status_code == 408) { + if(timeout_prev) { + // fail whole batch if two consecutive timeouts, + nlohmann::json req_body; + req_body["text"] = input; + return std::vector(inputs.size(), embedding_res_t(408, get_error_json(req_body, 408, ""))); + } + timeout_prev = true; + } + timeout_prev = false; outputs.push_back(res); }