import gradio as gr import json from huggingface_hub import HfApi, ModelFilter, list_models api = HfApi() def model_explorer(search,task,limit=100): # List all models if limit==0: limit=None if not search: search=None out_box=[] out_box1=[] name_box=[] if task: filt = ModelFilter(task=task) this = api.list_models(search=search,limit=limit,filter=filt,cardData=True) else: this = api.list_models(search=search,limit=limit,cardData=True) cnt=0 for i,mod in enumerate(this): print(mod.__dict__) print(dir(mod)) cnt+=1 #if mod.gated=='manual': out_box.append(mod) loaded=mod.__dict__ loaded['DOWNLOAD_LINK']=f'https://huggingface.co/models/{mod.id}' out_box1.append(loaded) name_box.append(mod.id) ''' print(dir(mod)) print(mod.id) print(mod.downloads) print(mod.likes) print(mod.pipeline_tag) out = mod.id ''' print(cnt) return out_box1,name_box def tasks_json(): with open("tasks.json", "r") as read_file: print("Read JSON file") tasks = json.load(read_file) print("Before Pretty Printing JSON Data") print(tasks) def fix_json(): new_json=[] with open("tasks.json", "r") as fix_file: for i, line in enumerate(fix_file.readlines()): #print (line) if "name:" in line: out = line.replace("name:",'"name":') new_json.append(out) print (out) elif "modality:" in line: out = line.replace("modality:",'"modality":') new_json.append(out) print (out) elif "type:" in line: out = line.replace("type:",'"type":') new_json.append(out) print (out) elif "subtasks:" in line: out = line.replace("subtasks:",'"subtasks":') new_json.append(out) print (out) elif "color:" in line: out = line.replace("color:",'"color":') new_json.append(out) print (out) elif "hideInModels:" in line: out = line.replace("hideInModels:",'"hideInModels":') new_json.append(out) print (out) elif "hideInDatasets:" in line: out = line.replace("hideInDatasets:",'"hideInDatasets":') new_json.append(out) print (out) else: new_json.append(line) print(line) #print (json.dumps(new_json)) #new_out=new_json.decode("utf-8") for i,line in enumerate(new_json): try: line.decode("utf-8") except Exception: pass if line.strip(): print (line) with gr.Blocks() as app: with gr.Row(): search=gr.Textbox(label="query") task=gr.Textbox(label="task") limit=gr.Slider(minimum=0,maximum=10000,value=100) btn=gr.Button() names_json=gr.JSON() models_json=gr.JSON() btn.click(model_explorer,[search,task,limit],[models_json,names_json]) app.launch()