@@ -409,6 +409,7 @@ int main(int argc, char ** argv) {
409409 base_info.tags = params.model_tags ;
410410 base_info.status = SERVER_MODEL_STATUS_LOADED;
411411 base_info.last_used = ggml_time_ms ();
412+ base_info.preset = cli_load_result.base_preset ;
412413 if (!base_info.name .empty ()) {
413414 model_manager->add_model (std::move (base_info));
414415 }
@@ -462,6 +463,7 @@ int main(int argc, char ** argv) {
462463 }
463464 }
464465
466+ info.preset = mp;
465467 SRV_INF (" registering model '%s' (status=%d)\n " , info.name .c_str (), (int )info.status );
466468 model_manager->add_model (std::move (info));
467469 }
@@ -712,6 +714,7 @@ int main(int argc, char ** argv) {
712714 }
713715 }
714716
717+ info.preset = preset;
715718 model_manager->add_model (std::move (info));
716719
717720 // Check autoload
@@ -732,6 +735,7 @@ int main(int argc, char ** argv) {
732735 base_info.tags = params.model_tags ;
733736 base_info.status = SERVER_MODEL_STATUS_LOADED;
734737 base_info.last_used = ggml_time_ms ();
738+ base_info.preset = base_preset;
735739 model_manager->add_model (std::move (base_info));
736740 }
737741
@@ -860,6 +864,12 @@ int main(int argc, char ** argv) {
860864 load_params.model .path = path;
861865 }
862866
867+ // Apply model preset (e.g. --reasoning, --chat-template-kwargs, etc.)
868+ auto preset = model_mgr->get_preset (name);
869+ if (preset.has_value ()) {
870+ preset->apply_to_params (load_params);
871+ }
872+
863873 // Load the model via model manager (handles LRU eviction)
864874 model_mgr->load (name, ctx_server, load_params);
865875 res_ok (res, {{" success" , true }});
0 commit comments