Spaces:
Running on Zero
Running on Zero
| static void print_usage(int /*argc*/, char ** argv) { | |
| printf( | |
| "\nexamples:\n" | |
| " %s -hf ggml-org/gemma-3-4b-it-qat-GGUF\n" | |
| " %s -hf ggml-org/gemma-3-4b-it-qat-GGUF:Q4_K_M\n" | |
| " %s -hf ggml-org/models -hff model.gguf\n" | |
| " %s -mu https://example.com/model.gguf -m model.gguf\n" | |
| "\n", | |
| argv[0], argv[0], argv[0], argv[0] | |
| ); | |
| } | |
| int llama_download(int argc, char ** argv); | |
| int llama_download(int argc, char ** argv) { | |
| common_init(); | |
| common_params params; | |
| params.verbosity = LOG_LEVEL_ERROR; | |
| if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_DOWNLOAD, print_usage)) { | |
| return 1; | |
| } | |
| const bool has_source = !params.model.hf_repo.empty() || !params.model.url.empty() || | |
| !params.model.path.empty() || !params.model.docker_repo.empty(); | |
| if (!has_source) { | |
| fprintf(stderr, "error: no model source specified (use --hf-repo, --model-url, --model or --docker-repo)\n"); | |
| return 1; | |
| } | |
| try { | |
| common_models_handler handler = common_models_handler_init(params, LLAMA_EXAMPLE_DOWNLOAD); | |
| common_models_handler_apply(handler, params); | |
| } catch (const std::exception & e) { | |
| fprintf(stderr, "error: %s\n", e.what()); | |
| return 1; | |
| } | |
| if (!params.models_preset.empty()) { | |
| // -hf pointed at a preset repo: print the preset path and stop | |
| printf("%s\n", params.models_preset.c_str()); | |
| return 0; | |
| } | |
| if (params.model.path.empty()) { | |
| fprintf(stderr, "error: model download failed\n"); | |
| return 1; | |
| } | |
| if (!std::filesystem::exists(params.model.path)) { | |
| fprintf(stderr, "error: model file does not exist: %s\n", params.model.path.c_str()); | |
| return 1; | |
| } | |
| printf("%s\n", params.model.path.c_str()); | |
| if (!params.mmproj.path.empty()) { | |
| printf("%s\n", params.mmproj.path.c_str()); | |
| } | |
| if (!params.speculative.draft.mparams.path.empty()) { | |
| printf("%s\n", params.speculative.draft.mparams.path.c_str()); | |
| } | |
| return 0; | |
| } | |