@@ -400,6 +400,7 @@ int main(int argc, char ** argv) {
400400 base_info.tags = params.model_tags ;
401401 base_info.status = SERVER_MODEL_STATUS_LOADED;
402402 base_info.last_used = ggml_time_ms ();
403+ base_info.preset = cli_load_result.base_preset ;
403404 if (!base_info.name .empty ()) {
404405 model_manager->add_model (std::move (base_info));
405406 }
@@ -453,6 +454,7 @@ int main(int argc, char ** argv) {
453454 }
454455 }
455456
457+ info.preset = mp;
456458 SRV_INF (" registering model '%s' (status=%d)\n " , info.name .c_str (), (int )info.status );
457459 model_manager->add_model (std::move (info));
458460 }
@@ -703,6 +705,7 @@ int main(int argc, char ** argv) {
703705 }
704706 }
705707
708+ info.preset = preset;
706709 model_manager->add_model (std::move (info));
707710
708711 // Check autoload
@@ -723,6 +726,7 @@ int main(int argc, char ** argv) {
723726 base_info.tags = params.model_tags ;
724727 base_info.status = SERVER_MODEL_STATUS_LOADED;
725728 base_info.last_used = ggml_time_ms ();
729+ base_info.preset = base_preset;
726730 model_manager->add_model (std::move (base_info));
727731 }
728732
@@ -851,6 +855,12 @@ int main(int argc, char ** argv) {
851855 load_params.model .path = path;
852856 }
853857
858+ // Apply model preset (e.g. --reasoning, --chat-template-kwargs, etc.)
859+ auto preset = model_mgr->get_preset (name);
860+ if (preset.has_value ()) {
861+ preset->apply_to_params (load_params);
862+ }
863+
854864 // Load the model via model manager (handles LRU eviction)
855865 model_mgr->load (name, ctx_server, load_params);
856866 res_ok (res, {{" success" , true }});
0 commit comments