@@ -76,21 +76,23 @@ def main():
7676
7777 # Arguments
7878 parser .add_argument ('-v' , '--version' , type = int , default = 0x0003 ,
79- help = 'an integer for the version to be used ' )
79+ help = 'hexadecimal version number of ggml file ' )
8080 parser .add_argument ('-a' , '--author' , type = str , default = 'TheBloke' ,
81- help = 'an author to be filtered ' )
82- parser .add_argument ('-t' , '--tags ' , type = str , default = 'llama' ,
83- help = 'tags for the content ' )
81+ help = 'HuggingFace author filter ' )
82+ parser .add_argument ('-t' , '--tag ' , type = str , default = 'llama' ,
83+ help = 'HuggingFace tag filter ' )
8484 parser .add_argument ('-s' , '--search' , type = str , default = '' ,
85- help = 'search term' )
85+ help = 'HuggingFace search filter' )
86+ parser .add_argument ('-f' , '--filename' , type = str , default = 'q5_1' ,
87+ help = 'HuggingFace model repository filename substring match' )
8688
8789 # Parse the arguments
8890 args = parser .parse_args ()
8991
9092 # Define the parameters
9193 params = {
9294 "author" : args .author ,
93- "tags" : args .tags ,
95+ "tags" : args .tag ,
9496 "search" : args .search
9597 }
9698
@@ -108,25 +110,30 @@ def main():
108110
109111 for sibling in model_info .get ('siblings' , []):
110112 rfilename = sibling .get ('rfilename' )
111- if rfilename and 'q5_1' in rfilename :
113+ if rfilename and args . filename in rfilename :
112114 model_list .append ((model_id , rfilename ))
113115
114116 # Choose the model
115- if len (model_list ) == 1 :
117+ model_list .sort (key = lambda x : x [0 ])
118+ if len (model_list ) == 0 :
119+ print ("No models found" )
120+ exit (1 )
121+ elif len (model_list ) == 1 :
116122 model_choice = model_list [0 ]
117123 else :
118124 model_choice = get_user_choice (model_list )
119125
120126 if model_choice is not None :
121127 model_id , rfilename = model_choice
122128 url = f"https://huggingface.co/{ model_id } /resolve/main/{ rfilename } "
123- download_file (url , rfilename )
124- _ , version = check_magic_and_version (rfilename )
129+ dest = f"{ model_id .replace ('/' , '_' )} _{ rfilename } "
130+ download_file (url , dest )
131+ _ , version = check_magic_and_version (dest )
125132 if version != args .version :
126133 print (f"Warning: Expected version { args .version } , but found different version in the file." )
127134 else :
128135 print ("Error - model choice was None" )
129- exit (1 )
136+ exit (2 )
130137
131138if __name__ == '__main__' :
132139 main ()
0 commit comments