Spaces:
Running
Running
| import gradio as gr | |
| import random | |
| from huggingface_hub import HfApi | |
| def get_models(author: str, library: str, model_name: str): | |
| # filter out based on above | |
| api = HfApi() | |
| filtered_models = api.list_models( | |
| author=None if author == "" else author, | |
| library=None if library == "" else library, | |
| model_name=None if model_name == "" else model_name, | |
| ) | |
| filtered_models_list = list(filtered_models) | |
| random_model = filtered_models_list[random.randrange(0, len(filtered_models_list))].id | |
| return gr.Textbox(value=random_model, info=f"Chosen from {len(filtered_models_list)} possible models based on your selection", label="Random Model", interactive=False) | |
| def get_pipeline_template(model: str) -> str: | |
| return f""" | |
| # Use a pipeline as a high-level helper | |
| from transformers import pipeline | |
| pipe = pipeline(model="{model}") | |
| """ | |
| def create_code_block(chosen: str): | |
| return gr.Code( | |
| label="Python", | |
| value=get_pipeline_template(chosen), | |
| language="python", | |
| visible=True | |
| ) | |
| with gr.Blocks() as demo: | |
| author = gr.Textbox(label="Author", info="A string which identify the author (user or organization) of the returned models", interactive=True) | |
| library = gr.Textbox(label="Library", info="A string or list of strings of foundational libraries models were originally trained from", interactive=True) | |
| model_name = gr.Textbox(label="Model Name", info="A string that contain complete or partial names for models on the Hub", interactive=True) | |
| gr.Examples( | |
| examples=[ | |
| ["google", "pytorch", "flan"], | |
| ["meta-llama", "transformers", "Llama-2"] | |
| ], | |
| inputs=[author, library, model_name], | |
| run_on_click=True, | |
| fn=get_models | |
| ) | |
| submit = gr.Button(value="Generate Random Model") | |
| with gr.Row(equal_height=True): | |
| chosen = gr.Textbox(label="Random Model", interactive=False) | |
| # open_model = gr.Button(value="Open Model Card", link="https://www.google.com") | |
| open_model = gr.Button(value="Open Model Card") | |
| generate_code = gr.Button(value="Generate code") | |
| submit.click( | |
| get_models, | |
| [author, library, model_name], | |
| chosen | |
| ) | |
| open_model.click( | |
| fn=None, | |
| inputs=chosen, | |
| js=f"(chosen) => {{ window.open('https://huggingface.co/' + chosen, '_blank') }}", | |
| ) | |
| code_block = gr.Code(language="python", visible=False) | |
| generate_code.click( | |
| create_code_block, | |
| inputs=chosen, | |
| outputs=code_block | |
| ) | |
| demo.launch() |