File size: 1,512 Bytes
7329846
 
 
f1f0756
7329846
 
f1f0756
7329846
 
 
 
 
 
 
 
f1f0756
 
b75207e
 
f1f0756
7329846
 
f1f0756
 
 
 
 
 
7329846
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import gradio as gr
import requests

def search_huggingface_datasets(query, type):
    if not query:  # If the query is empty, return an empty list
        return []
    url = f"https://huggingface.co/api/quicksearch?q={query}&type={type}&limit=20"
    response = requests.get(url)
    if response.status_code == 200:
        data = response.json()
        dataset_names = [d['id'] for d in data['datasets']]
        return dataset_names
    else:
        return ["Error fetching datasets"]

def update_dropdown(query, type, key_up_data: gr.KeyUpData):
    datasets = search_huggingface_datasets(key_up_data.input_value, type)
    return gr.update(choices=datasets, visible=True)



with gr.Blocks() as demo:
    model_dropdown = gr.Dropdown(label="Models Auto-Complete", choices=[""], allow_custom_value=True)        
    dataset_dropdown = gr.Dropdown(label="Datasets Auto-Complete", choices=[""], allow_custom_value=True)
    spaces_dropdown = gr.Dropdown(label="Spaces Auto-Complete", choices=[""], allow_custom_value=True)
    model_dropdown.key_up(fn=update_dropdown, inputs=[dataset_dropdown, gr.State("model")], outputs=dataset_dropdown, queue=False, show_progress="hidden")
    dataset_dropdown.key_up(fn=update_dropdown, inputs=[dataset_dropdown, gr.State("dataset")], outputs=dataset_dropdown, queue=False, show_progress="hidden")
    spaces_dropdown.key_up(fn=update_dropdown, inputs=[dataset_dropdown, gr.State("space")], outputs=dataset_dropdown, queue=False, show_progress="hidden")
demo.launch()