model-explorer / app.py
Omnibus's picture
Update app.py
6adfb24 verified
raw
history blame contribute delete
No virus
3.33 kB
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()