@@ -162,7 +162,6 @@ void Models::GetModel(const HttpRequestPtr& req,
162162 config::YamlHandler yaml_handler;
163163 auto model_entry = modellist_handler.GetModelInfo (model_id);
164164 if (model_entry.has_error ()) {
165- // CLI_LOG("Error: " + model_entry.error());
166165 ret[" id" ] = model_id;
167166 ret[" object" ] = " model" ;
168167 ret[" result" ] = " Fail to get model information" ;
@@ -348,6 +347,34 @@ void Models::StartModel(
348347 auto model_handle = (*(req->getJsonObject ())).get (" model" , " " ).asString ();
349348 auto custom_prompt_template =
350349 (*(req->getJsonObject ())).get (" prompt_template" , " " ).asString ();
350+ auto model_entry = model_service_->GetDownloadedModel (model_handle);
351+ if (!model_entry.has_value ()) {
352+ Json::Value ret;
353+ ret[" message" ] = " Cannot find model: " + model_handle;
354+ auto resp = cortex_utils::CreateCortexHttpJsonResponse (ret);
355+ resp->setStatusCode (drogon::k400BadRequest);
356+ callback (resp);
357+ return ;
358+ }
359+ auto engine_name = model_entry.value ().engine ;
360+ auto engine_entry = engine_service_->GetEngineInfo (engine_name);
361+ if (engine_entry.has_error ()) {
362+ Json::Value ret;
363+ ret[" message" ] = " Cannot find engine: " + engine_name;
364+ auto resp = cortex_utils::CreateCortexHttpJsonResponse (ret);
365+ resp->setStatusCode (drogon::k400BadRequest);
366+ callback (resp);
367+ return ;
368+ }
369+ if (engine_entry->status != " Ready" ) {
370+ Json::Value ret;
371+ ret[" message" ] = " Engine is not ready! Please install first!" ;
372+ auto resp = cortex_utils::CreateCortexHttpJsonResponse (ret);
373+ resp->setStatusCode (drogon::k400BadRequest);
374+ callback (resp);
375+ return ;
376+ }
377+
351378 auto result = model_service_->StartModel (
352379 config.apiServerHost , std::stoi (config.apiServerPort ), model_handle,
353380 custom_prompt_template);
0 commit comments