Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import gemini_gradio | |
| import openai_gradio | |
| import anthropic_gradio | |
| import sambanova_gradio | |
| import xai_gradio | |
| import hyperbolic_gradio | |
| import perplexity_gradio | |
| import mistral_gradio | |
| import fireworks_gradio | |
| import cerebras_gradio | |
| import groq_gradio | |
| import together_gradio | |
| import nvidia_gradio | |
| import dashscope_gradio | |
| # Common helper functions for all tabs | |
| def create_interface(model_name, src_registry, **kwargs): | |
| return gr.load( | |
| name=model_name, | |
| src=src_registry, | |
| fill_height=True, | |
| **kwargs | |
| ) | |
| def update_model(new_model, container, src_registry, **kwargs): | |
| with container: | |
| # Clear existing content first | |
| container.clear() | |
| # Create and render new interface | |
| new_interface = create_interface(new_model, src_registry, **kwargs) | |
| new_interface.render() | |
| with gr.Blocks(fill_height=True) as demo: | |
| # Meta Llama Tab | |
| with gr.Tab("Meta Llama"): | |
| with gr.Row(): | |
| llama_model = gr.Dropdown( | |
| choices=[ | |
| 'Meta-Llama-3.2-1B-Instruct', | |
| 'Meta-Llama-3.2-3B-Instruct', | |
| 'Llama-3.2-11B-Vision-Instruct', | |
| 'Llama-3.2-90B-Vision-Instruct', | |
| 'Meta-Llama-3.1-8B-Instruct', | |
| 'Meta-Llama-3.1-70B-Instruct', | |
| 'Meta-Llama-3.1-405B-Instruct' | |
| ], | |
| value='Llama-3.2-90B-Vision-Instruct', | |
| label="Select Llama Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as llama_container: | |
| llama_interface = create_interface(llama_model.value, sambanova_gradio.registry, multimodal=True) | |
| llama_model.change( | |
| fn=lambda new_model: update_model(new_model, llama_container, sambanova_gradio.registry, multimodal=True), | |
| inputs=[llama_model], | |
| outputs=[] | |
| ) | |
| gr.Markdown("**Note:** You need to use a SambaNova API key from [SambaNova Cloud](https://cloud.sambanova.ai/).") | |
| # Gemini Tab | |
| with gr.Tab("Gemini"): | |
| with gr.Row(): | |
| gemini_model = gr.Dropdown( | |
| choices=[ | |
| 'gemini-1.5-flash', | |
| 'gemini-1.5-flash-8b', | |
| 'gemini-1.5-pro', | |
| 'gemini-exp-1114' | |
| ], | |
| value='gemini-1.5-pro', | |
| label="Select Gemini Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as gemini_container: | |
| gemini_interface = create_interface(gemini_model.value, gemini_gradio.registry) | |
| gemini_model.change( | |
| fn=lambda new_model: update_model(new_model, gemini_container, gemini_gradio.registry), | |
| inputs=[gemini_model], | |
| outputs=[] | |
| ) | |
| # ChatGPT Tab | |
| with gr.Tab("ChatGPT"): | |
| with gr.Row(): | |
| model_choice = gr.Dropdown( | |
| choices=[ | |
| 'gpt-4o-2024-11-20', | |
| 'gpt-4o', | |
| 'gpt-4o-2024-08-06', | |
| 'gpt-4o-2024-05-13', | |
| 'chatgpt-4o-latest', | |
| 'gpt-4o-mini', | |
| 'gpt-4o-mini-2024-07-18', | |
| 'o1-preview', | |
| 'o1-preview-2024-09-12', | |
| 'o1-mini', | |
| 'o1-mini-2024-09-12', | |
| 'gpt-4-turbo', | |
| 'gpt-4-turbo-2024-04-09', | |
| 'gpt-4-turbo-preview', | |
| 'gpt-4-0125-preview', | |
| 'gpt-4-1106-preview', | |
| 'gpt-4', | |
| 'gpt-4-0613' | |
| ], | |
| value='gpt-4o-2024-11-20', | |
| label="Select Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as chatgpt_container: | |
| chatgpt_interface = create_interface(model_choice.value, openai_gradio.registry) | |
| model_choice.change( | |
| fn=lambda new_model: update_model(new_model, chatgpt_container, openai_gradio.registry), | |
| inputs=[model_choice], | |
| outputs=[] | |
| ) | |
| # Claude Tab | |
| with gr.Tab("Claude"): | |
| with gr.Row(): | |
| claude_model = gr.Dropdown( | |
| choices=[ | |
| 'claude-3-5-sonnet-20241022', | |
| 'claude-3-5-haiku-20241022', | |
| 'claude-3-opus-20240229', | |
| 'claude-3-sonnet-20240229', | |
| 'claude-3-haiku-20240307' | |
| ], | |
| value='claude-3-5-sonnet-20241022', | |
| label="Select Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as claude_container: | |
| claude_interface = create_interface(claude_model.value, anthropic_gradio.registry, accept_token=True) | |
| claude_model.change( | |
| fn=lambda new_model: update_model(new_model, claude_container, anthropic_gradio.registry, accept_token=True), | |
| inputs=[claude_model], | |
| outputs=[] | |
| ) | |
| # Grok Tab | |
| with gr.Tab("Grok"): | |
| with gr.Row(): | |
| grok_model = gr.Dropdown( | |
| choices=[ | |
| 'grok-beta', | |
| 'grok-vision-beta' | |
| ], | |
| value='grok-vision-beta', | |
| label="Select Grok Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as grok_container: | |
| grok_interface = create_interface(grok_model.value, xai_gradio.registry) | |
| grok_model.change( | |
| fn=lambda new_model: update_model(new_model, grok_container, xai_gradio.registry), | |
| inputs=[grok_model], | |
| outputs=[] | |
| ) | |
| # Hugging Face Tab | |
| with gr.Tab("Hugging Face"): | |
| with gr.Row(): | |
| hf_model = gr.Dropdown( | |
| choices=[ | |
| 'Qwen/Qwen2.5-Coder-32B-Instruct', | |
| 'Qwen/Qwen2.5-72B-Instruct', | |
| 'meta-llama/Llama-3.1-70B-Instruct', | |
| 'mistralai/Mixtral-8x7B-Instruct-v0.1', | |
| 'meta-llama/Llama-3.1-8B-Instruct', | |
| 'google/gemma-2-9b-it', | |
| 'mistralai/Mistral-7B-v0.1', | |
| 'meta-llama/Llama-2-7b-chat-hf', | |
| 'meta-llama/Llama-3.2-3B-Instruct', | |
| 'meta-llama/Llama-3.2-1B-Instruct', | |
| 'Qwen/Qwen2.5-1.5B-Instruct', | |
| 'microsoft/Phi-3.5-mini-instruct', | |
| 'HuggingFaceTB/SmolLM2-1.7B-Instruct', | |
| 'google/gemma-2-2b-it', | |
| 'meta-llama/Llama-3.2-3B', | |
| 'meta-llama/Llama-3.2-1B', | |
| 'openai-community/gpt2' | |
| ], | |
| value='HuggingFaceTB/SmolLM2-1.7B-Instruct', | |
| label="Select Hugging Face Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as hf_container: | |
| hf_interface = create_interface(hf_model.value, "models") | |
| hf_model.change( | |
| fn=lambda new_model: update_model(new_model, hf_container, "models"), | |
| inputs=[hf_model], | |
| outputs=[] | |
| ) | |
| gr.Markdown(""" | |
| **Note:** These models are loaded directly from Hugging Face Hub. Some models may require authentication. | |
| """) | |
| # Groq Tab | |
| with gr.Tab("Groq"): | |
| with gr.Row(): | |
| groq_model = gr.Dropdown( | |
| choices=[ | |
| 'llama3-groq-8b-8192-tool-use-preview', | |
| 'llama3-groq-70b-8192-tool-use-preview', | |
| 'llama-3.2-1b-preview', | |
| 'llama-3.2-3b-preview', | |
| 'llama-3.2-11b-text-preview', | |
| 'llama-3.2-90b-text-preview', | |
| 'mixtral-8x7b-32768', | |
| 'gemma2-9b-it', | |
| 'gemma-7b-it' | |
| ], | |
| value='llama3-groq-70b-8192-tool-use-preview', | |
| label="Select Groq Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as groq_container: | |
| groq_interface = create_interface(groq_model.value, groq_gradio.registry) | |
| groq_model.change( | |
| fn=lambda new_model: update_model(new_model, groq_container, groq_gradio.registry), | |
| inputs=[groq_model], | |
| outputs=[] | |
| ) | |
| # Hyperbolic Tab | |
| with gr.Tab("Hyperbolic"): | |
| with gr.Row(): | |
| hyperbolic_model = gr.Dropdown( | |
| choices=[ | |
| 'Qwen/Qwen2.5-Coder-32B-Instruct', | |
| 'meta-llama/Llama-3.2-3B-Instruct', | |
| 'meta-llama/Meta-Llama-3.1-8B-Instruct', | |
| 'meta-llama/Meta-Llama-3.1-70B-Instruct', | |
| 'meta-llama/Meta-Llama-3-70B-Instruct', | |
| 'NousResearch/Hermes-3-Llama-3.1-70B', | |
| 'Qwen/Qwen2.5-72B-Instruct', | |
| 'deepseek-ai/DeepSeek-V2.5', | |
| 'meta-llama/Meta-Llama-3.1-405B-Instruct' | |
| ], | |
| value='Qwen/Qwen2.5-Coder-32B-Instruct', | |
| label="Select Hyperbolic Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as hyperbolic_container: | |
| hyperbolic_interface = create_interface(hyperbolic_model.value, hyperbolic_gradio.registry) | |
| hyperbolic_model.change( | |
| fn=lambda new_model: update_model(new_model, hyperbolic_container, hyperbolic_gradio.registry), | |
| inputs=[hyperbolic_model], | |
| outputs=[] | |
| ) | |
| # Qwen Tab | |
| with gr.Tab("Qwen"): | |
| with gr.Row(): | |
| qwen_model = gr.Dropdown( | |
| choices=[ | |
| 'qwen-turbo-latest', | |
| 'qwen-turbo', | |
| 'qwen-plus', | |
| 'qwen-max', | |
| 'qwen1.5-110b-chat', | |
| 'qwen1.5-72b-chat', | |
| 'qwen1.5-32b-chat', | |
| 'qwen1.5-14b-chat', | |
| 'qwen1.5-7b-chat' | |
| ], | |
| value='qwen-turbo-latest', | |
| label="Select Qwen Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as qwen_container: | |
| qwen_interface = create_interface(qwen_model.value, dashscope_gradio.registry) | |
| qwen_model.change( | |
| fn=lambda new_model: update_model(new_model, qwen_container, dashscope_gradio.registry), | |
| inputs=[qwen_model], | |
| outputs=[] | |
| ) | |
| # Perplexity Tab | |
| with gr.Tab("Perplexity"): | |
| with gr.Row(): | |
| perplexity_model = gr.Dropdown( | |
| choices=[ | |
| 'llama-3.1-sonar-small-128k-online', | |
| 'llama-3.1-sonar-large-128k-online', | |
| 'llama-3.1-sonar-huge-128k-online', | |
| 'llama-3.1-sonar-small-128k-chat', | |
| 'llama-3.1-sonar-large-128k-chat', | |
| 'llama-3.1-8b-instruct', | |
| 'llama-3.1-70b-instruct' | |
| ], | |
| value='llama-3.1-sonar-large-128k-online', | |
| label="Select Perplexity Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as perplexity_container: | |
| perplexity_interface = create_interface(perplexity_model.value, perplexity_gradio.registry, accept_token=True) | |
| perplexity_model.change( | |
| fn=lambda new_model: update_model(new_model, perplexity_container, perplexity_gradio.registry, accept_token=True), | |
| inputs=[perplexity_model], | |
| outputs=[] | |
| ) | |
| # Mistral Tab | |
| with gr.Tab("Mistral"): | |
| with gr.Row(): | |
| mistral_model = gr.Dropdown( | |
| choices=[ | |
| 'mistral-large-latest', | |
| 'pixtral-large-latest', | |
| 'ministral-3b-latest', | |
| 'ministral-8b-latest', | |
| 'mistral-small-latest', | |
| 'codestral-latest', | |
| 'mistral-embed', | |
| 'mistral-moderation-latest', | |
| 'pixtral-12b-2409', | |
| 'open-mistral-nemo', | |
| 'open-codestral-mamba' | |
| ], | |
| value='pixtral-large-latest', | |
| label="Select Mistral Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as mistral_container: | |
| mistral_interface = create_interface(mistral_model.value, mistral_gradio.registry) | |
| mistral_model.change( | |
| fn=lambda new_model: update_model(new_model, mistral_container, mistral_gradio.registry), | |
| inputs=[mistral_model], | |
| outputs=[] | |
| ) | |
| # Fireworks Tab | |
| with gr.Tab("Fireworks"): | |
| with gr.Row(): | |
| fireworks_model = gr.Dropdown( | |
| choices=[ | |
| 'f1-preview', | |
| 'f1-mini-preview' | |
| ], | |
| value='f1-preview', | |
| label="Select Fireworks Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as fireworks_container: | |
| fireworks_interface = create_interface(fireworks_model.value, fireworks_gradio.registry) | |
| fireworks_model.change( | |
| fn=lambda new_model: update_model(new_model, fireworks_container, fireworks_gradio.registry), | |
| inputs=[fireworks_model], | |
| outputs=[] | |
| ) | |
| # Cerebras Tab | |
| with gr.Tab("Cerebras"): | |
| with gr.Row(): | |
| cerebras_model = gr.Dropdown( | |
| choices=[ | |
| 'llama3.1-8b', | |
| 'llama3.1-70b', | |
| 'llama3.1-405b' | |
| ], | |
| value='llama3.1-70b', | |
| label="Select Cerebras Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as cerebras_container: | |
| cerebras_interface = create_interface(cerebras_model.value, cerebras_gradio.registry, accept_token=True) | |
| cerebras_model.change( | |
| fn=lambda new_model: update_model(new_model, cerebras_container, cerebras_gradio.registry, accept_token=True), | |
| inputs=[cerebras_model], | |
| outputs=[] | |
| ) | |
| # Together Tab | |
| with gr.Tab("Together"): | |
| with gr.Row(): | |
| together_model = gr.Dropdown( | |
| choices=[ | |
| 'meta-llama/Llama-Vision-Free', | |
| 'meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo', | |
| 'meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3-8B-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3-70B-Instruct-Turbo', | |
| 'meta-llama/Llama-3.2-3B-Instruct-Turbo', | |
| 'meta-llama/Meta-Llama-3-8B-Instruct-Lite', | |
| 'meta-llama/Meta-Llama-3-70B-Instruct-Lite', | |
| 'meta-llama/Llama-3-8b-chat-hf', | |
| 'meta-llama/Llama-3-70b-chat-hf', | |
| 'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF', | |
| 'Qwen/Qwen2.5-Coder-32B-Instruct', | |
| 'microsoft/WizardLM-2-8x22B', | |
| 'google/gemma-2-27b-it', | |
| 'google/gemma-2-9b-it', | |
| 'databricks/dbrx-instruct', | |
| 'mistralai/Mixtral-8x7B-Instruct-v0.1', | |
| 'mistralai/Mixtral-8x22B-Instruct-v0.1', | |
| 'Qwen/Qwen2.5-7B-Instruct-Turbo', | |
| 'Qwen/Qwen2.5-72B-Instruct-Turbo', | |
| 'Qwen/Qwen2-72B-Instruct', | |
| 'deepseek-ai/deepseek-llm-67b-chat', | |
| 'google/gemma-2b-it', | |
| 'Gryphe/MythoMax-L2-13b', | |
| 'meta-llama/Llama-2-13b-chat-hf', | |
| 'mistralai/Mistral-7B-Instruct-v0.1', | |
| 'mistralai/Mistral-7B-Instruct-v0.2', | |
| 'mistralai/Mistral-7B-Instruct-v0.3', | |
| 'NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO', | |
| 'togethercomputer/StripedHyena-Nous-7B', | |
| 'upstage/SOLAR-10.7B-Instruct-v1.0' | |
| ], | |
| value='meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo', | |
| label="Select Together Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as together_container: | |
| together_interface = create_interface(together_model.value, together_gradio.registry, multimodal=True) | |
| together_model.change( | |
| fn=lambda new_model: update_model(new_model, together_container, together_gradio.registry, multimodal=True), | |
| inputs=[together_model], | |
| outputs=[] | |
| ) | |
| # NVIDIA Tab | |
| with gr.Tab("NVIDIA"): | |
| with gr.Row(): | |
| nvidia_model = gr.Dropdown( | |
| choices=[ | |
| 'nvidia/llama3-chatqa-1.5-70b', | |
| 'nvidia/llama3-chatqa-1.5-8b', | |
| 'nvidia-nemotron-4-340b-instruct', | |
| 'meta/llama-3.1-70b-instruct', | |
| 'meta/codellama-70b', | |
| 'meta/llama2-70b', | |
| 'meta/llama3-8b', | |
| 'meta/llama3-70b', | |
| 'mistralai/codestral-22b-instruct-v0.1', | |
| 'mistralai/mathstral-7b-v0.1', | |
| 'mistralai/mistral-large-2-instruct', | |
| 'mistralai/mistral-7b-instruct', | |
| 'mistralai/mistral-7b-instruct-v0.3', | |
| 'mistralai/mixtral-8x7b-instruct', | |
| 'mistralai/mixtral-8x22b-instruct', | |
| 'mistralai/mistral-large', | |
| 'google/gemma-2b', | |
| 'google/gemma-7b', | |
| 'google/gemma-2-2b-it', | |
| 'google/gemma-2-9b-it', | |
| 'google/gemma-2-27b-it', | |
| 'google/codegemma-1.1-7b', | |
| 'google/codegemma-7b', | |
| 'google/recurrentgemma-2b', | |
| 'google/shieldgemma-9b', | |
| 'microsoft/phi-3-medium-128k-instruct', | |
| 'microsoft/phi-3-medium-4k-instruct', | |
| 'microsoft/phi-3-mini-128k-instruct', | |
| 'microsoft/phi-3-mini-4k-instruct', | |
| 'microsoft/phi-3-small-128k-instruct', | |
| 'microsoft/phi-3-small-8k-instruct', | |
| 'qwen/qwen2-7b-instruct', | |
| 'databricks/dbrx-instruct', | |
| 'deepseek-ai/deepseek-coder-6.7b-instruct', | |
| 'upstage/solar-10.7b-instruct', | |
| 'snowflake/arctic' | |
| ], | |
| value='meta/llama-3.1-70b-instruct', | |
| label="Select NVIDIA Model", | |
| interactive=True | |
| ) | |
| with gr.Column() as nvidia_container: | |
| nvidia_interface = create_interface(nvidia_model.value, nvidia_gradio.registry, accept_token=True) | |
| nvidia_model.change( | |
| fn=lambda new_model: update_model(new_model, nvidia_container, nvidia_gradio.registry, accept_token=True), | |
| inputs=[nvidia_model], | |
| outputs=[] | |
| ) | |
| demo.launch(ssr_mode=False) | |