diff --git a/common/arg.cpp b/common/arg.cpp index fa22e86c..96facce6 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -656,9 +656,13 @@ static void common_params_handle_model( } } - // TODO: allow custom host - model.url = "https://huggingface.co/" + model.hf_repo + "/resolve/main/" + model.hf_file; - + std::string hf_endpoint = "https://huggingface.co/"; + const char * hf_endpoint_env = getenv("HF_ENDPOINT"); + if (hf_endpoint_env) { + hf_endpoint = hf_endpoint_env; + if (hf_endpoint.back() != '/') hf_endpoint += '/'; + } + model.url = hf_endpoint + model.hf_repo + "/resolve/main/" + model.hf_file; // make sure model path is present (for caching purposes) if (model.path.empty()) { // this is to avoid different repo having same file name, or same file name in different subdirs