Skip to content

Commit 19f0c26

Browse files
chore: remove unused fields for remote model config (#2040)
* chore: remove unused fields for remote model config * fix: model path --------- Co-authored-by: sangjanai <[email protected]>
1 parent 19c5d73 commit 19f0c26

File tree

4 files changed

+47
-113
lines changed

4 files changed

+47
-113
lines changed

engine/config/model_config.h

-21
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,19 @@ namespace config {
1818

1919
struct RemoteModelConfig {
2020
std::string model;
21-
std::string header_template;
2221
std::string engine;
2322
std::string version;
2423
size_t created;
2524
std::string object = "model";
2625
std::string owned_by = "";
2726
Json::Value inference_params;
28-
Json::Value transform_req;
29-
Json::Value transform_resp;
30-
Json::Value metadata;
3127
void LoadFromJson(const Json::Value& json) {
3228
if (!json.isObject()) {
3329
throw std::runtime_error("Input JSON must be an object");
3430
}
3531

3632
// Load basic string fields
3733
model = json.get("model", model).asString();
38-
header_template =
39-
json.get("header_template", header_template).asString();
4034
engine = json.get("engine", engine).asString();
4135
version = json.get("version", version).asString();
4236
created =
@@ -46,17 +40,13 @@ struct RemoteModelConfig {
4640

4741
// Load JSON object fields directly
4842
inference_params = json.get("inference_params", inference_params);
49-
transform_req = json.get("transform_req", transform_req);
50-
transform_resp = json.get("transform_resp", transform_resp);
51-
metadata = json.get("metadata", metadata);
5243
}
5344

5445
Json::Value ToJson() const {
5546
Json::Value json;
5647

5748
// Add basic string fields
5849
json["model"] = model;
59-
json["header_template"] = header_template;
6050
json["engine"] = engine;
6151
json["version"] = version;
6252
json["created"] = static_cast<Json::UInt64>(created);
@@ -65,9 +55,6 @@ struct RemoteModelConfig {
6555

6656
// Add JSON object fields directly
6757
json["inference_params"] = inference_params;
68-
json["transform_req"] = transform_req;
69-
json["transform_resp"] = transform_resp;
70-
json["metadata"] = metadata;
7158

7259
return json;
7360
};
@@ -77,7 +64,6 @@ struct RemoteModelConfig {
7764

7865
// Convert basic fields
7966
root["model"] = model;
80-
root["header_template"] = header_template;
8167
root["engine"] = engine;
8268
root["version"] = version;
8369
root["object"] = object;
@@ -87,9 +73,6 @@ struct RemoteModelConfig {
8773
// Convert Json::Value to YAML::Node using utility function
8874
root["inference_params"] =
8975
remote_models_utils::jsonToYaml(inference_params);
90-
root["transform_req"] = remote_models_utils::jsonToYaml(transform_req);
91-
root["transform_resp"] = remote_models_utils::jsonToYaml(transform_resp);
92-
root["metadata"] = remote_models_utils::jsonToYaml(metadata);
9376

9477
// Save to file
9578
std::ofstream fout(filepath);
@@ -110,7 +93,6 @@ struct RemoteModelConfig {
11093

11194
// Load basic fields
11295
model = root["model"].as<std::string>("");
113-
header_template = root["header_template"].as<std::string>("");
11496
engine = root["engine"].as<std::string>("");
11597
version = root["version"] ? root["version"].as<std::string>() : "";
11698
created = root["created"] ? root["created"].as<std::size_t>() : 0;
@@ -120,9 +102,6 @@ struct RemoteModelConfig {
120102
// Load complex fields using utility function
121103
inference_params =
122104
remote_models_utils::yamlToJson(root["inference_params"]);
123-
transform_req = remote_models_utils::yamlToJson(root["transform_req"]);
124-
transform_resp = remote_models_utils::yamlToJson(root["transform_resp"]);
125-
metadata = remote_models_utils::yamlToJson(root["metadata"]);
126105
}
127106
};
128107

engine/extensions/remote-engine/remote_engine.cc

+38-77
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,6 @@ CurlResponse RemoteEngine::MakeStreamingChatCompletionRequest(
116116
}
117117

118118
std::string full_url = chat_url_;
119-
120-
if (config.transform_req["chat_completions"]["url"]) {
121-
full_url =
122-
config.transform_req["chat_completions"]["url"].as<std::string>();
123-
}
124119
CTL_DBG("full_url: " << full_url);
125120

126121
struct curl_slist* headers = nullptr;
@@ -134,12 +129,6 @@ CurlResponse RemoteEngine::MakeStreamingChatCompletionRequest(
134129
headers = curl_slist_append(headers, "Connection: keep-alive");
135130

136131
std::string stream_template = chat_res_template_;
137-
if (config.transform_resp["chat_completions"] &&
138-
config.transform_resp["chat_completions"]["template"]) {
139-
// Model level overrides engine level
140-
stream_template =
141-
config.transform_resp["chat_completions"]["template"].as<std::string>();
142-
}
143132

144133
StreamContext context{
145134
std::make_shared<std::function<void(Json::Value&&, Json::Value&&)>>(
@@ -295,11 +284,6 @@ CurlResponse RemoteEngine::MakeChatCompletionRequest(
295284
return response;
296285
}
297286
std::string full_url = chat_url_;
298-
299-
if (config.transform_req["chat_completions"]["url"]) {
300-
full_url =
301-
config.transform_req["chat_completions"]["url"].as<std::string>();
302-
}
303287
CTL_DBG("full_url: " << full_url);
304288

305289
struct curl_slist* headers = nullptr;
@@ -341,7 +325,6 @@ bool RemoteEngine::LoadModelConfig(const std::string& model,
341325

342326
ModelConfig model_config;
343327
model_config.model = model;
344-
model_config.api_key = body["api_key"].asString();
345328
// model_config.url = ;
346329
// Optional fields
347330
if (auto s = config["header_template"]; s && !s.as<std::string>().empty()) {
@@ -350,16 +333,6 @@ bool RemoteEngine::LoadModelConfig(const std::string& model,
350333
CTL_DBG("header: " << h);
351334
}
352335
}
353-
if (config["transform_req"]) {
354-
model_config.transform_req = config["transform_req"];
355-
} else {
356-
LOG_WARN << "Missing transform_req in config for model " << model;
357-
}
358-
if (config["transform_resp"]) {
359-
model_config.transform_resp = config["transform_resp"];
360-
} else {
361-
LOG_WARN << "Missing transform_resp in config for model " << model;
362-
}
363336

364337
model_config.is_loaded = true;
365338

@@ -414,9 +387,10 @@ void RemoteEngine::LoadModel(
414387
std::shared_ptr<Json::Value> json_body,
415388
std::function<void(Json::Value&&, Json::Value&&)>&& callback) {
416389
if (!json_body->isMember("model") || !json_body->isMember("model_path") ||
417-
!json_body->isMember("api_key")) {
390+
!json_body->isMember("api_key") || !json_body->isMember("metadata")) {
418391
Json::Value error;
419-
error["error"] = "Missing required fields: model or model_path";
392+
error["error"] =
393+
"Missing required fields: model, model_path, api_key or metadata";
420394
Json::Value status;
421395
status["is_done"] = true;
422396
status["has_error"] = true;
@@ -428,43 +402,41 @@ void RemoteEngine::LoadModel(
428402

429403
const std::string& model = (*json_body)["model"].asString();
430404
const std::string& model_path = (*json_body)["model_path"].asString();
431-
const std::string& api_key = (*json_body)["api_key"].asString();
432-
433-
if (json_body->isMember("metadata")) {
434-
metadata_ = (*json_body)["metadata"];
435-
if (!metadata_["transform_req"].isNull() &&
436-
!metadata_["transform_req"]["chat_completions"].isNull() &&
437-
!metadata_["transform_req"]["chat_completions"]["template"].isNull()) {
438-
chat_req_template_ =
439-
metadata_["transform_req"]["chat_completions"]["template"].asString();
440-
CTL_INF(chat_req_template_);
441-
}
442405

443-
if (!metadata_["transform_resp"].isNull() &&
444-
!metadata_["transform_resp"]["chat_completions"].isNull() &&
445-
!metadata_["transform_resp"]["chat_completions"]["template"].isNull()) {
446-
chat_res_template_ =
447-
metadata_["transform_resp"]["chat_completions"]["template"]
448-
.asString();
449-
CTL_INF(chat_res_template_);
450-
}
406+
metadata_ = (*json_body)["metadata"];
407+
if (!metadata_["transform_req"].isNull() &&
408+
!metadata_["transform_req"]["chat_completions"].isNull() &&
409+
!metadata_["transform_req"]["chat_completions"]["template"].isNull()) {
410+
chat_req_template_ =
411+
metadata_["transform_req"]["chat_completions"]["template"].asString();
412+
CTL_INF(chat_req_template_);
413+
} else {
414+
CTL_WRN("Required transform_req");
415+
}
451416

452-
if (!metadata_["transform_req"].isNull() &&
453-
!metadata_["transform_req"]["chat_completions"].isNull() &&
454-
!metadata_["transform_req"]["chat_completions"]["url"].isNull()) {
455-
chat_url_ =
456-
metadata_["transform_req"]["chat_completions"]["url"].asString();
457-
CTL_INF(chat_url_);
458-
}
417+
if (!metadata_["transform_resp"].isNull() &&
418+
!metadata_["transform_resp"]["chat_completions"].isNull() &&
419+
!metadata_["transform_resp"]["chat_completions"]["template"].isNull()) {
420+
chat_res_template_ =
421+
metadata_["transform_resp"]["chat_completions"]["template"].asString();
422+
CTL_INF(chat_res_template_);
423+
} else {
424+
CTL_WRN("Required transform_resp");
459425
}
460426

461-
if (json_body->isMember("metadata")) {
462-
if (!metadata_["header_template"].isNull()) {
463-
header_ = ReplaceHeaderPlaceholders(
464-
metadata_["header_template"].asString(), *json_body);
465-
for (auto const& h : header_) {
466-
CTL_DBG("header: " << h);
467-
}
427+
if (!metadata_["transform_req"].isNull() &&
428+
!metadata_["transform_req"]["chat_completions"].isNull() &&
429+
!metadata_["transform_req"]["chat_completions"]["url"].isNull()) {
430+
chat_url_ =
431+
metadata_["transform_req"]["chat_completions"]["url"].asString();
432+
CTL_INF(chat_url_);
433+
}
434+
435+
if (!metadata_["header_template"].isNull()) {
436+
header_ = ReplaceHeaderPlaceholders(metadata_["header_template"].asString(),
437+
*json_body);
438+
for (auto const& h : header_) {
439+
CTL_DBG("header: " << h);
468440
}
469441
}
470442

@@ -568,13 +540,8 @@ void RemoteEngine::HandleChatCompletion(
568540
if (!chat_req_template_.empty()) {
569541
CTL_DBG("Use engine transform request template: " << chat_req_template_);
570542
template_str = chat_req_template_;
571-
}
572-
if (model_config->transform_req["chat_completions"] &&
573-
model_config->transform_req["chat_completions"]["template"]) {
574-
// Model level overrides engine level
575-
template_str = model_config->transform_req["chat_completions"]["template"]
576-
.as<std::string>();
577-
CTL_DBG("Use model transform request template: " << template_str);
543+
} else {
544+
CTL_WRN("Required transform request template");
578545
}
579546

580547
// Render with error handling
@@ -634,14 +601,8 @@ void RemoteEngine::HandleChatCompletion(
634601
CTL_DBG(
635602
"Use engine transform response template: " << chat_res_template_);
636603
template_str = chat_res_template_;
637-
}
638-
if (model_config->transform_resp["chat_completions"] &&
639-
model_config->transform_resp["chat_completions"]["template"]) {
640-
// Model level overrides engine level
641-
template_str =
642-
model_config->transform_resp["chat_completions"]["template"]
643-
.as<std::string>();
644-
CTL_DBG("Use model transform request template: " << template_str);
604+
} else {
605+
CTL_WRN("Required transform response template");
645606
}
646607

647608
try {

engine/extensions/remote-engine/remote_engine.h

-3
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ class RemoteEngine : public RemoteEngineI {
4040
struct ModelConfig {
4141
std::string model;
4242
std::string version;
43-
std::string api_key;
4443
std::string url;
45-
YAML::Node transform_req;
46-
YAML::Node transform_resp;
4744
bool is_loaded{false};
4845
};
4946

engine/services/model_service.cc

+9-12
Original file line numberDiff line numberDiff line change
@@ -369,10 +369,6 @@ ModelService::EstimateModel(const std::string& model_handle,
369369
CTL_WRN("Error: " + model_entry.error());
370370
return cpp::fail(model_entry.error());
371371
}
372-
auto file_path = fmu::ToAbsoluteCortexDataPath(
373-
fs::path(model_entry.value().path_to_model_yaml))
374-
.parent_path() /
375-
"model.gguf";
376372
yaml_handler.ModelConfigFromFile(
377373
fmu::ToAbsoluteCortexDataPath(
378374
fs::path(model_entry.value().path_to_model_yaml))
@@ -389,13 +385,14 @@ ModelService::EstimateModel(const std::string& model_handle,
389385
free_vram_MiB = hw_info.ram.available_MiB;
390386
#endif
391387

392-
return hardware::EstimateLLaMACppRun(file_path.string(),
393-
{.ngl = mc.ngl,
394-
.ctx_len = mc.ctx_len,
395-
.n_batch = n_batch,
396-
.n_ubatch = n_ubatch,
397-
.kv_cache_type = kv_cache,
398-
.free_vram_MiB = free_vram_MiB});
388+
return hardware::EstimateLLaMACppRun(
389+
fmu::ToAbsoluteCortexDataPath(fs::path(mc.files[0])).string(),
390+
{.ngl = mc.ngl,
391+
.ctx_len = mc.ctx_len,
392+
.n_batch = n_batch,
393+
.n_ubatch = n_ubatch,
394+
.kv_cache_type = kv_cache,
395+
.free_vram_MiB = free_vram_MiB});
399396
} catch (const std::exception& e) {
400397
return cpp::fail("Fail to get model status with ID '" + model_handle +
401398
"': " + e.what());
@@ -1437,5 +1434,5 @@ void ModelService::ProcessBgrTasks() {
14371434

14381435
auto clone = cb;
14391436
task_queue_.RunInQueue(std::move(cb));
1440-
task_queue_.RunEvery(std::chrono::seconds(10), std::move(clone));
1437+
task_queue_.RunEvery(std::chrono::seconds(60), std::move(clone));
14411438
}

0 commit comments

Comments
 (0)