diff --git a/common/common.cpp b/common/common.cpp index 62e922a9..4c835771 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -1102,6 +1102,9 @@ struct llama_model_params common_model_params_to_llama(common_params & params) { mparams.tensor_buft_overrides = params.tensor_buft_overrides.data(); } + mparams.progress_callback = params.load_progress_callback; + mparams.progress_callback_user_data = params.load_progress_callback_user_data; + return mparams; } diff --git a/common/common.h b/common/common.h index da525dd4..f3cb00be 100644 --- a/common/common.h +++ b/common/common.h @@ -428,6 +428,11 @@ struct common_params { // common params std::string out_file; // output filename for all example programs + // optional callback for model loading progress and cancellation: + // called with a progress value between 0.0 and 1.0. + // return false from callback to abort model loading or true to continue + llama_progress_callback load_progress_callback = NULL; + void * load_progress_callback_user_data = NULL; }; // call once at the start of a program if it uses libcommon