|
2 | 2 | #include "services/engine_service.h" |
3 | 3 | #include "utils/archive_utils.h" |
4 | 4 | #include "utils/cortex_utils.h" |
| 5 | +#include "utils/engine_constants.h" |
5 | 6 | #include "utils/logging_utils.h" |
6 | 7 | #include "utils/string_utils.h" |
7 | 8 |
|
8 | 9 | namespace { |
9 | 10 | // Need to change this after we rename repositories |
10 | | -// TODO: namh try to remove this |
11 | 11 | std::string NormalizeEngine(const std::string& engine) { |
12 | 12 | if (engine == kLlamaEngine) { |
13 | 13 | return kLlamaRepo; |
@@ -55,55 +55,26 @@ void Engines::InstallEngine( |
55 | 55 | void Engines::ListEngine( |
56 | 56 | const HttpRequestPtr& req, |
57 | 57 | std::function<void(const HttpResponsePtr&)>&& callback) const { |
58 | | - // TODO: NamH need refactor this |
59 | | - // auto status_list = engine_service_->GetEngineInfoList(); |
60 | | - |
| 58 | + std::vector<std::string> supported_engines{kLlamaEngine, kOnnxEngine, |
| 59 | + kTrtLlmEngine}; |
61 | 60 | Json::Value ret; |
62 | | - ret["object"] = "list"; |
63 | | - // Json::Value data(Json::arrayValue); |
64 | | - // for (auto& status : status_list) { |
65 | | - // Json::Value ret; |
66 | | - // ret["name"] = status.name; |
67 | | - // ret["description"] = status.description; |
68 | | - // ret["version"] = status.version.value_or(""); |
69 | | - // ret["variant"] = status.variant.value_or(""); |
70 | | - // ret["productName"] = status.product_name; |
71 | | - // ret["status"] = status.status; |
72 | | - // ret["format"] = status.format; |
73 | | - // |
74 | | - // data.append(std::move(ret)); |
75 | | - // } |
| 61 | + for (const auto& engine : supported_engines) { |
| 62 | + std::cout << engine << std::endl; |
76 | 63 |
|
77 | | - // ret["data"] = data; |
78 | | - ret["result"] = "OK"; |
79 | | - auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); |
80 | | - resp->setStatusCode(k200OK); |
81 | | - callback(resp); |
82 | | -} |
| 64 | + auto result = engine_service_->GetInstalledEngineVariants(engine); |
| 65 | + if (result.has_error()) { |
| 66 | + continue; |
| 67 | + } |
| 68 | + Json::Value variants(Json::arrayValue); |
| 69 | + for (const auto& variant : result.value()) { |
| 70 | + variants.append(variant.ToJson()); |
| 71 | + } |
| 72 | + ret[engine] = variants; |
| 73 | + } |
83 | 74 |
|
84 | | -void Engines::GetEngine(const HttpRequestPtr& req, |
85 | | - std::function<void(const HttpResponsePtr&)>&& callback, |
86 | | - const std::string& engine) const { |
87 | | - // auto status = engine_service_->GetEngineInfo(engine); |
88 | | - Json::Value ret; |
89 | | - // if (status.has_value()) { |
90 | | - // ret["name"] = status->name; |
91 | | - // ret["description"] = status->description; |
92 | | - // ret["version"] = status->version.value_or(""); |
93 | | - // ret["variant"] = status->variant.value_or(""); |
94 | | - // ret["productName"] = status->product_name; |
95 | | - // ret["status"] = status->status; |
96 | | - // ret["format"] = status->format; |
97 | | - // |
98 | | - // auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); |
99 | | - // resp->setStatusCode(k200OK); |
100 | | - // callback(resp); |
101 | | - // } else { |
102 | | - ret["message"] = "Engine not found"; |
103 | 75 | auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); |
104 | | - resp->setStatusCode(k400BadRequest); |
| 76 | + resp->setStatusCode(k200OK); |
105 | 77 | callback(resp); |
106 | | - // } |
107 | 78 | } |
108 | 79 |
|
109 | 80 | void Engines::UninstallEngine( |
@@ -309,3 +280,42 @@ void Engines::GetDefaultEngineVariant( |
309 | 280 | callback(resp); |
310 | 281 | } |
311 | 282 | } |
| 283 | + |
| 284 | +void Engines::LoadEngine(const HttpRequestPtr& req, |
| 285 | + std::function<void(const HttpResponsePtr&)>&& callback, |
| 286 | + const std::string& engine) { |
| 287 | + auto result = engine_service_->LoadEngine(engine); |
| 288 | + if (result.has_error()) { |
| 289 | + Json::Value res; |
| 290 | + res["message"] = result.error(); |
| 291 | + auto resp = cortex_utils::CreateCortexHttpJsonResponse(res); |
| 292 | + resp->setStatusCode(k400BadRequest); |
| 293 | + callback(resp); |
| 294 | + } else { |
| 295 | + Json::Value res; |
| 296 | + res["message"] = "Engine " + engine + " loaded successfully!"; |
| 297 | + auto resp = cortex_utils::CreateCortexHttpJsonResponse(res); |
| 298 | + resp->setStatusCode(k200OK); |
| 299 | + callback(resp); |
| 300 | + } |
| 301 | +} |
| 302 | + |
| 303 | +void Engines::UnloadEngine( |
| 304 | + const HttpRequestPtr& req, |
| 305 | + std::function<void(const HttpResponsePtr&)>&& callback, |
| 306 | + const std::string& engine) { |
| 307 | + auto result = engine_service_->UnloadEngine(engine); |
| 308 | + if (result.has_error()) { |
| 309 | + Json::Value res; |
| 310 | + res["message"] = result.error(); |
| 311 | + auto resp = cortex_utils::CreateCortexHttpJsonResponse(res); |
| 312 | + resp->setStatusCode(k400BadRequest); |
| 313 | + callback(resp); |
| 314 | + } else { |
| 315 | + Json::Value res; |
| 316 | + res["message"] = "Engine " + engine + " unloaded successfully!"; |
| 317 | + auto resp = cortex_utils::CreateCortexHttpJsonResponse(res); |
| 318 | + resp->setStatusCode(k200OK); |
| 319 | + callback(resp); |
| 320 | + } |
| 321 | +} |
0 commit comments