diff --git a/common/common.cpp b/common/common.cpp index 2ef902bd5..5aa689db6 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -105,7 +105,6 @@ void process_escapes(std::string& input) { bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { bool invalid_param = false; std::string arg; - gpt_params default_params; const std::string arg_prefix = "--"; llama_sampling_params & sparams = params.sparams; @@ -547,11 +546,8 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { break; } } else if (arg == "-h" || arg == "--help") { - gpt_print_usage(argc, argv, default_params); -#ifndef LOG_DISABLE_LOGS - log_print_usage(); -#endif // LOG_DISABLE_LOGS - exit(0); + return false; + } else if (arg == "--random-prompt") { params.random_prompt = true; } else if (arg == "--in-prefix-bos") { @@ -610,22 +606,17 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { // End of Parse args for logging parameters #endif // LOG_DISABLE_LOGS } else { - fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); - gpt_print_usage(argc, argv, default_params); - exit(1); + throw std::invalid_argument("error: unknown argument: " + arg); } } if (invalid_param) { - fprintf(stderr, "error: invalid parameter for argument: %s\n", arg.c_str()); - gpt_print_usage(argc, argv, default_params); - exit(1); + throw std::invalid_argument("error: invalid parameter for argument: " + arg); } if (params.prompt_cache_all && (params.interactive || params.interactive_first || params.instruct)) { - fprintf(stderr, "error: --prompt-cache-all not supported in interactive mode yet\n"); - gpt_print_usage(argc, argv, default_params); - exit(1); + + throw std::invalid_argument("error: --prompt-cache-all not supported in interactive mode yet\n"); } if (params.escape) { @@ -753,6 +744,9 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) { printf(" -ld LOGDIR, --logdir LOGDIR\n"); printf(" path under which to save YAML logs (no logging if unset)\n"); printf("\n"); +#ifndef LOG_DISABLE_LOGS + log_print_usage(); +#endif // LOG_DISABLE_LOGS } std::string get_system_info(const gpt_params & params) { diff --git a/examples/embedding/embedding.cpp b/examples/embedding/embedding.cpp index 14075609e..5dac3bd06 100644 --- a/examples/embedding/embedding.cpp +++ b/examples/embedding/embedding.cpp @@ -11,7 +11,15 @@ int main(int argc, char ** argv) { gpt_params params; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } diff --git a/examples/infill/infill.cpp b/examples/infill/infill.cpp index 6331335e3..74d41783e 100644 --- a/examples/infill/infill.cpp +++ b/examples/infill/infill.cpp @@ -107,7 +107,15 @@ int main(int argc, char ** argv) { llama_sampling_params & sparams = params.sparams; g_params = ¶ms; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } diff --git a/examples/llava/llava.cpp b/examples/llava/llava.cpp index f0974d5bc..d298bb28e 100644 --- a/examples/llava/llava.cpp +++ b/examples/llava/llava.cpp @@ -17,7 +17,16 @@ int main(int argc, char ** argv) { gpt_params params; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + show_additional_info(argc, argv); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); show_additional_info(argc, argv); return 1; } diff --git a/examples/main/main.cpp b/examples/main/main.cpp index db5309afe..282a4898c 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -105,9 +105,18 @@ int main(int argc, char ** argv) { gpt_params params; g_params = ¶ms; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } + llama_sampling_params & sparams = params.sparams; #ifndef LOG_DISABLE_LOGS diff --git a/examples/parallel/parallel.cpp b/examples/parallel/parallel.cpp index eb64adef8..18343b2fa 100644 --- a/examples/parallel/parallel.cpp +++ b/examples/parallel/parallel.cpp @@ -102,7 +102,15 @@ int main(int argc, char ** argv) { gpt_params params; - if (gpt_params_parse(argc, argv, params) == false) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } diff --git a/examples/perplexity/perplexity.cpp b/examples/perplexity/perplexity.cpp index 7d0038bd4..a4dbad95d 100644 --- a/examples/perplexity/perplexity.cpp +++ b/examples/perplexity/perplexity.cpp @@ -682,7 +682,15 @@ int main(int argc, char ** argv) { gpt_params params; params.n_batch = 512; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } diff --git a/examples/save-load-state/save-load-state.cpp b/examples/save-load-state/save-load-state.cpp index 38d05f4d3..34896772d 100644 --- a/examples/save-load-state/save-load-state.cpp +++ b/examples/save-load-state/save-load-state.cpp @@ -11,7 +11,15 @@ int main(int argc, char ** argv) { params.prompt = "The quick brown fox"; - if (!gpt_params_parse(argc, argv, params)) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; } diff --git a/examples/speculative/speculative.cpp b/examples/speculative/speculative.cpp index 894321ce9..d66f88ce1 100644 --- a/examples/speculative/speculative.cpp +++ b/examples/speculative/speculative.cpp @@ -24,7 +24,15 @@ struct seq_draft { int main(int argc, char ** argv) { gpt_params params; - if (gpt_params_parse(argc, argv, params) == false) { + try { + if (!gpt_params_parse(argc, argv, params)) { + gpt_print_usage(argc, argv, gpt_params()); + return 1; + } + } + catch (const std::invalid_argument& ex) { + fprintf(stderr, ex.what()); + gpt_print_usage(argc, argv, gpt_params()); return 1; }