import os import gradio as gr from utils import get_model_summary, install_flash_attn, authenticate_hf # Install required package install_flash_attn() # Authenticate with Hugging Face HF_TOKEN = os.getenv("HF_TOKEN") authenticate_hf(HF_TOKEN) # Create the Gradio Blocks interface with gr.Blocks(theme="sudeepshouche/minimalist") as demo: with gr.Row(): with gr.Column(): textbox = gr.Textbox(label="Model Name", placeholder="Enter the model name here OR select an example below...", lines=1) gr.Markdown("### Vision Models") vision_examples = gr.Examples( examples=[ ["google/paligemma-3b-mix-224"], ["google/paligemma-3b-ft-refcoco-seg-224"], ["llava-hf/llava-v1.6-mistral-7b-hf"], ["xtuner/llava-phi-3-mini-hf"], ["xtuner/llava-llama-3-8b-v1_1-transformers"], ["vikhyatk/moondream2"], ["openbmb/MiniCPM-Llama3-V-2_5"], ["microsoft/Phi-3-vision-128k-instruct"], ["HuggingFaceM4/idefics2-8b-chatty"], ["microsoft/llava-med-v1.5-mistral-7b"] ], inputs=textbox ) gr.Markdown("### Other Models") other_examples = gr.Examples( examples=[ ["dwb2023/mistral-7b-instruct-quantized"], ["mistralai/Mistral-7B-Instruct-v0.2"], ["mistralai/Mistral-7B-Instruct-v0.3"], ["google/gemma-7b"], ["microsoft/Phi-3-mini-4k-instruct"], ["meta-llama/Meta-Llama-3-8B"] ], inputs=textbox ) submit_button = gr.Button("Submit") gr.Markdown(""" Where to get started with Vision Language Models: - [Hugging Face overview of VLMs](https://huggingface.co/blog/vlms#overview-of-open-source-vision-language-models) - [Blog Post on PaliGemma Model Capabilities and Use Cases](https://huggingface.co/blog/paligemma#model-capabilities) Keep an eye on the evolution of the [Model Explorer from Google](https://ai.google.dev/edge/model-explorer#two_ways_to_use_model_explorer). It didn't work initially for some of the VLM "fusion" model types I was initially looking at, but certainly a great tool for the right model. """) with gr.Column(): output = gr.Textbox(label="Model Architecture", lines=20, placeholder="Model architecture will appear here...", show_copy_button=True) error_output = gr.Textbox(label="Error", lines=10, placeholder="Exceptions will appear here...", show_copy_button=True) def handle_click(model_name): model_summary, error_message = get_model_summary(model_name) return model_summary, error_message submit_button.click(fn=handle_click, inputs=textbox, outputs=[output, error_output]) # Launch the interface demo.launch()