|
| 1 | +#include "gtest/gtest.h" |
| 2 | +#include "models/chat_completion_request.h" |
| 3 | + |
| 4 | +using inferences::ChatCompletionRequest; |
| 5 | + |
| 6 | +class ModelTest : public ::testing::Test { |
| 7 | +}; |
| 8 | + |
| 9 | + |
| 10 | +TEST_F(ModelTest, should_parse_request) { |
| 11 | + { |
| 12 | + Json::Value data; |
| 13 | + auto req = drogon::HttpRequest::newHttpJsonRequest(data); |
| 14 | + |
| 15 | + auto res = |
| 16 | + drogon::fromRequest<inferences::ChatCompletionRequest>(*req.get()); |
| 17 | + |
| 18 | + EXPECT_EQ(res.stream, false); |
| 19 | + EXPECT_EQ(res.max_tokens, 500); |
| 20 | + EXPECT_EQ(res.top_p, 0.95f); |
| 21 | + EXPECT_EQ(res.temperature, 0.8f); |
| 22 | + EXPECT_EQ(res.frequency_penalty, 0); |
| 23 | + EXPECT_EQ(res.presence_penalty, 0); |
| 24 | + EXPECT_EQ(res.stop, Json::Value{}); |
| 25 | + EXPECT_EQ(res.messages, Json::Value{}); |
| 26 | + } |
| 27 | + |
| 28 | + { |
| 29 | + Json::Value data; |
| 30 | + data["stream"] = true; |
| 31 | + data["max_tokens"] = 400; |
| 32 | + data["top_p"] = 0.8; |
| 33 | + data["temperature"] = 0.7; |
| 34 | + data["frequency_penalty"] = 0.1; |
| 35 | + data["presence_penalty"] = 0.2; |
| 36 | + data["messages"] = "message"; |
| 37 | + data["stop"] = "stop"; |
| 38 | + |
| 39 | + auto req = drogon::HttpRequest::newHttpJsonRequest(data); |
| 40 | + |
| 41 | + auto res = |
| 42 | + drogon::fromRequest<inferences::ChatCompletionRequest>(*req.get()); |
| 43 | + |
| 44 | + EXPECT_EQ(res.stream, true); |
| 45 | + EXPECT_EQ(res.max_tokens, 400); |
| 46 | + EXPECT_EQ(res.top_p, 0.8f); |
| 47 | + EXPECT_EQ(res.temperature, 0.7f); |
| 48 | + EXPECT_EQ(res.frequency_penalty, 0.1f); |
| 49 | + EXPECT_EQ(res.presence_penalty, 0.2f); |
| 50 | + EXPECT_EQ(res.stop, Json::Value{"stop"}); |
| 51 | + EXPECT_EQ(res.messages, Json::Value{"message"}); |
| 52 | + } |
| 53 | +} |
0 commit comments