mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into jinja
This commit is contained in:
		
							
								
								
									
										112
									
								
								scripts/hf.sh
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								scripts/hf.sh
									
									
									
									
									
								
							| @@ -1,112 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Shortcut for downloading HF models | ||||
| # | ||||
| # Usage: | ||||
| #   ./llama-cli -m $(./scripts/hf.sh https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/resolve/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) | ||||
| #   ./llama-cli -m $(./scripts/hf.sh --url https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/blob/main/mixtral-8x7b-v0.1.Q4_K_M.gguf) | ||||
| #   ./llama-cli -m $(./scripts/hf.sh --repo TheBloke/Mixtral-8x7B-v0.1-GGUF --file mixtral-8x7b-v0.1.Q4_K_M.gguf) | ||||
| # | ||||
|  | ||||
| # all logs go to stderr | ||||
| function log { | ||||
|     echo "$@" 1>&2 | ||||
| } | ||||
|  | ||||
| function usage { | ||||
|     log "Usage: $0 [[--url] <url>] [--repo <repo>] [--file <file>] [--outdir <dir> [-h|--help]" | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| # check for curl or wget | ||||
| function has_cmd { | ||||
|     if ! [ -x "$(command -v $1)" ]; then | ||||
|         return 1 | ||||
|     fi | ||||
| } | ||||
|  | ||||
| if has_cmd wget; then | ||||
|     cmd="wget -q -c -O %s/%s %s" | ||||
| elif has_cmd curl; then | ||||
|     cmd="curl -C - -f --output-dir %s -o %s -L %s" | ||||
| else | ||||
|     log "[E] curl or wget not found" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| url="" | ||||
| repo="" | ||||
| file="" | ||||
| outdir="." | ||||
|  | ||||
| # parse args | ||||
| while [[ $# -gt 0 ]]; do | ||||
|     case "$1" in | ||||
|         --url) | ||||
|             url="$2" | ||||
|             shift 2 | ||||
|             ;; | ||||
|         --repo) | ||||
|             repo="$2" | ||||
|             shift 2 | ||||
|             ;; | ||||
|         --file) | ||||
|             file="$2" | ||||
|             shift 2 | ||||
|             ;; | ||||
|         --outdir) | ||||
|             outdir="$2" | ||||
|             shift 2 | ||||
|             ;; | ||||
|         -h|--help) | ||||
|             usage | ||||
|             ;; | ||||
|         *) | ||||
|             url="$1" | ||||
|             shift | ||||
|             ;; | ||||
|     esac | ||||
| done | ||||
|  | ||||
| if [ -n "$repo" ] && [ -n "$file" ]; then | ||||
|     url="https://huggingface.co/$repo/resolve/main/$file" | ||||
| fi | ||||
|  | ||||
| if [ -z "$url" ]; then | ||||
|     log "[E] missing --url" | ||||
|     usage | ||||
| fi | ||||
|  | ||||
| # check if the URL is a HuggingFace model, and if so, try to download it | ||||
| is_url=false | ||||
|  | ||||
| if [[ ${#url} -gt 22 ]]; then | ||||
|     if [[ ${url:0:22} == "https://huggingface.co" ]]; then | ||||
|         is_url=true | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| if [ "$is_url" = false ]; then | ||||
|     log "[E] invalid URL, must start with https://huggingface.co" | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| # replace "blob/main" with "resolve/main" | ||||
| url=${url/blob\/main/resolve\/main} | ||||
|  | ||||
| basename=$(basename $url) | ||||
|  | ||||
| log "[+] attempting to download $basename" | ||||
|  | ||||
| if [ -n "$cmd" ]; then | ||||
|     cmd=$(printf "$cmd" "$outdir" "$basename" "$url") | ||||
|     log "[+] $cmd" | ||||
|     if $cmd; then | ||||
|         echo $outdir/$basename | ||||
|         exit 0 | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| log "[-] failed to download" | ||||
|  | ||||
| exit 1 | ||||
		Reference in New Issue
	
	Block a user
	 ochafik
					ochafik