|
|
@@ -103,9 +103,24 @@ void process_escapes(std::string& input) {
|
|
|
}
|
|
|
|
|
|
bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|
|
+ bool result = true;
|
|
|
+ try {
|
|
|
+ if (!gpt_params_parse_ex(argc, argv, params)) {
|
|
|
+ gpt_print_usage(argc, argv, gpt_params());
|
|
|
+ exit(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (const std::invalid_argument& ex) {
|
|
|
+ fprintf(stderr, ex.what());
|
|
|
+ gpt_print_usage(argc, argv, gpt_params());
|
|
|
+ exit(1);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+bool gpt_params_parse_ex(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;
|
|
|
|
|
|
@@ -554,11 +569,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") {
|
|
|
@@ -617,22 +629,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) {
|
|
|
@@ -651,6 +658,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|
|
void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) {
|
|
|
const llama_sampling_params & sparams = params.sparams;
|
|
|
|
|
|
+ printf("\n");
|
|
|
printf("usage: %s [options]\n", argv[0]);
|
|
|
printf("\n");
|
|
|
printf("options:\n");
|
|
|
@@ -762,6 +770,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) {
|