| 131 | } |
| 132 | |
| 133 | bool gpt_params_parse_ex(int argc, char ** argv, gpt_params & params) { |
| 134 | bool invalid_param = false; |
| 135 | std::string arg; |
| 136 | const std::string arg_prefix = "--"; |
| 137 | llama_sampling_params & sparams = params.sparams; |
| 138 | |
| 139 | for (int i = 1; i < argc; i++) { |
| 140 | arg = argv[i]; |
| 141 | if (arg.compare(0, arg_prefix.size(), arg_prefix) == 0) { |
| 142 | std::replace(arg.begin(), arg.end(), '_', '-'); |
| 143 | } |
| 144 | |
| 145 | if (arg == "-s" || arg == "--seed") { |
| 146 | if (++i >= argc) { |
| 147 | invalid_param = true; |
| 148 | break; |
| 149 | } |
| 150 | params.seed = std::stoul(argv[i]); |
| 151 | } else if (arg == "-t" || arg == "--threads") { |
| 152 | if (++i >= argc) { |
| 153 | invalid_param = true; |
| 154 | break; |
| 155 | } |
| 156 | params.n_threads = std::stoi(argv[i]); |
| 157 | if (params.n_threads <= 0) { |
| 158 | params.n_threads = std::thread::hardware_concurrency(); |
| 159 | } |
| 160 | } else if (arg == "-tb" || arg == "--threads-batch") { |
| 161 | if (++i >= argc) { |
| 162 | invalid_param = true; |
| 163 | break; |
| 164 | } |
| 165 | params.n_threads_batch = std::stoi(argv[i]); |
| 166 | if (params.n_threads_batch <= 0) { |
| 167 | params.n_threads_batch = std::thread::hardware_concurrency(); |
| 168 | } |
| 169 | } else if (arg == "-p" || arg == "--prompt") { |
| 170 | if (++i >= argc) { |
| 171 | invalid_param = true; |
| 172 | break; |
| 173 | } |
| 174 | params.prompt = argv[i]; |
| 175 | } else if (arg == "-e" || arg == "--escape") { |
| 176 | params.escape = true; |
| 177 | } else if (arg == "--prompt-cache") { |
| 178 | if (++i >= argc) { |
| 179 | invalid_param = true; |
| 180 | break; |
| 181 | } |
| 182 | params.path_prompt_cache = argv[i]; |
| 183 | } else if (arg == "--prompt-cache-all") { |
| 184 | params.prompt_cache_all = true; |
| 185 | } else if (arg == "--prompt-cache-ro") { |
| 186 | params.prompt_cache_ro = true; |
| 187 | } else if (arg == "-f" || arg == "--file") { |
| 188 | if (++i >= argc) { |
| 189 | invalid_param = true; |
| 190 | break; |
no test coverage detected