From 2d6f74deef6282d39a851487ee4a2b7b1783fc89 Mon Sep 17 00:00:00 2001 From: bstrzele Date: Thu, 14 Nov 2024 14:56:23 +0100 Subject: [PATCH 1/2] embeddings no input unit test --- src/embeddings/embeddings_api.cpp | 2 +- src/embeddings/embeddings_api.hpp | 4 ++-- src/test/embeddingsnode_test.cpp | 13 +++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/embeddings/embeddings_api.cpp b/src/embeddings/embeddings_api.cpp index 8c2ff60139..8f195999fa 100644 --- a/src/embeddings/embeddings_api.cpp +++ b/src/embeddings/embeddings_api.cpp @@ -128,7 +128,7 @@ absl::Status EmbeddingsHandler::parseRequest() { return absl::OkStatus(); } -std::variant, std::vector>>& EmbeddingsHandler::getInput() { +std::variant, std::vector>>& EmbeddingsHandler::getInput() { return request.input; } EmbeddingsRequest::EncodingFormat EmbeddingsHandler::getEncodingFormat() const { diff --git a/src/embeddings/embeddings_api.hpp b/src/embeddings/embeddings_api.hpp index 043cdcd618..c49f1e2ebb 100644 --- a/src/embeddings/embeddings_api.hpp +++ b/src/embeddings/embeddings_api.hpp @@ -36,7 +36,7 @@ struct EmbeddingsRequest { FLOAT, BASE64 }; - std::variant, std::vector>> input; + std::variant, std::vector>> input; EncodingFormat encoding_format; static std::variant fromJson(rapidjson::Document* request); @@ -51,7 +51,7 @@ class EmbeddingsHandler { EmbeddingsHandler(rapidjson::Document& document) : doc(document) {} - std::variant, std::vector>>& getInput(); + std::variant, std::vector>>& getInput(); EmbeddingsRequest::EncodingFormat getEncodingFormat() const; absl::Status parseRequest(); diff --git a/src/test/embeddingsnode_test.cpp b/src/test/embeddingsnode_test.cpp index 440cf21805..70164f6f40 100644 --- a/src/test/embeddingsnode_test.cpp +++ b/src/test/embeddingsnode_test.cpp @@ -283,6 +283,19 @@ TEST_F(EmbeddingsHttpTest, simplePositiveMultipleStrings) { ASSERT_EQ(d["data"][1]["embedding"].Size(), EMBEDDING_OUTPUT_SIZE); } +TEST_F(EmbeddingsHttpTest, emptyInput) { + std::string requestBody = R"( + { + "model": "embeddings", + "input": [] + } + )"; + Status status = handler->dispatchToProcessor(endpointEmbeddings, requestBody, &response, comp, responseComponents, &writer); + ASSERT_EQ(status, + ovms::StatusCode::MEDIAPIPE_EXECUTION_ERROR) + << status.string(); +} + class EmbeddingsExtensionTest : public ::testing::Test { protected: static std::unique_ptr t; From b288d4add5c8ab7bae996fa8b92856f43fd753ed Mon Sep 17 00:00:00 2001 From: michalkulakowski Date: Fri, 15 Nov 2024 13:52:01 +0100 Subject: [PATCH 2/2] fix --- src/embeddings/embeddings_api.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/embeddings/embeddings_api.cpp b/src/embeddings/embeddings_api.cpp index 8f195999fa..91742bed41 100644 --- a/src/embeddings/embeddings_api.cpp +++ b/src/embeddings/embeddings_api.cpp @@ -112,9 +112,12 @@ std::variant EmbeddingsRequest::fromJson(rapidjs if (input_strings.size() > 0) { request.input = input_strings; } - if (input_tokens.size() > 0) { + else if (input_tokens.size() > 0) { request.input = input_tokens; } + else { + return "no input provided in request"; + } return request; }