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 with gr.Blocks(fill_height=True) as demo: with gr.Tab("Meta Llama"): with gr.Row(): llama_model = gr.Dropdown( choices=[ 'Meta-Llama-3.2-1B-Instruct', # Llama 3.2 1B 'Meta-Llama-3.2-3B-Instruct', # Llama 3.2 3B 'Llama-3.2-11B-Vision-Instruct', # Llama 3.2 11B 'Llama-3.2-90B-Vision-Instruct', # Llama 3.2 90B 'Meta-Llama-3.1-8B-Instruct', # Llama 3.1 8B 'Meta-Llama-3.1-70B-Instruct', # Llama 3.1 70B 'Meta-Llama-3.1-405B-Instruct' # Llama 3.1 405B ], value='Llama-3.2-90B-Vision-Instruct', # Default to the most advanced model label="Select Llama Model", interactive=True ) llama_interface = gr.load( name=llama_model.value, src=sambanova_gradio.registry, multimodal=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) def update_llama_model(new_model): return gr.load( name=new_model, src=sambanova_gradio.registry, multimodal=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) llama_model.change( fn=update_llama_model, inputs=[llama_model], outputs=[llama_interface] ) gr.Markdown("**Note:** You need to use a SambaNova API key from [SambaNova Cloud](https://cloud.sambanova.ai/).") with gr.Tab("Gemini"): with gr.Row(): gemini_model = gr.Dropdown( choices=[ 'gemini-1.5-flash', # Fast and versatile performance 'gemini-1.5-flash-8b', # High volume, lower intelligence tasks 'gemini-1.5-pro', # Complex reasoning tasks 'gemini-exp-1114' # Quality improvements ], value='gemini-1.5-pro', # Default to the most advanced model label="Select Gemini Model", interactive=True ) gemini_interface = gr.load( name=gemini_model.value, src=gemini_gradio.registry, fill_height=True, chatbot=gr.Chatbot(height=600) ) def update_gemini_model(new_model): return gr.load( name=new_model, src=gemini_gradio.registry, fill_height=True, chatbot=gr.Chatbot(height=600) ) gemini_model.change( fn=update_gemini_model, inputs=[gemini_model], outputs=[gemini_interface] ) with gr.Tab("ChatGPT"): with gr.Row(): model_choice = gr.Dropdown( choices=[ 'gpt-4o', # Most advanced model 'gpt-4o-2024-08-06', # Latest snapshot 'gpt-4o-2024-05-13', # Original snapshot 'chatgpt-4o-latest', # Latest ChatGPT version 'gpt-4o-mini', # Small model 'gpt-4o-mini-2024-07-18', # Latest mini version 'o1-preview', # Reasoning model 'o1-preview-2024-09-12', # Latest o1 model snapshot 'o1-mini', # Faster reasoning model 'o1-mini-2024-09-12', # Latest o1-mini model snapshot 'gpt-4-turbo', # Latest GPT-4 Turbo model 'gpt-4-turbo-2024-04-09', # Latest GPT-4 Turbo snapshot 'gpt-4-turbo-preview', # GPT-4 Turbo preview model 'gpt-4-0125-preview', # GPT-4 Turbo preview model for laziness 'gpt-4-1106-preview', # Improved instruction following model 'gpt-4', # Standard GPT-4 model 'gpt-4-0613' # Snapshot of GPT-4 from June 2023 ], value='gpt-4o', # Default to the most advanced model label="Select Model", interactive=True ) chatgpt_interface = gr.load( name=model_choice.value, src=openai_gradio.registry, accept_token=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) def update_model(new_model): return gr.load( name=new_model, src=openai_gradio.registry, accept_token=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) model_choice.change( fn=update_model, inputs=[model_choice], outputs=[chatgpt_interface] ) with gr.Tab("Claude"): with gr.Row(): claude_model = gr.Dropdown( choices=[ 'claude-3-5-sonnet-20241022', # Latest Sonnet 'claude-3-5-haiku-20241022', # Latest Haiku 'claude-3-opus-20240229', # Opus 'claude-3-sonnet-20240229', # Previous Sonnet 'claude-3-haiku-20240307' # Previous Haiku ], value='claude-3-5-sonnet-20241022', # Default to latest Sonnet label="Select Model", interactive=True ) claude_interface = gr.load( name=claude_model.value, src=anthropic_gradio.registry, accept_token=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) def update_claude_model(new_model): return gr.load( name=new_model, src=anthropic_gradio.registry, accept_token=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) claude_model.change( fn=update_claude_model, inputs=[claude_model], outputs=[claude_interface] ) with gr.Tab("Grok"): gr.load( name='grok-beta', src=xai_gradio.registry, accept_token=True, fill_height=True, chatbot=gr.Chatbot(height=600) ) with gr.Tab("Qwen"): with gr.Row(): qwen_model = gr.Dropdown( choices=[ 'Qwen/Qwen2.5-72B-Instruct', 'Qwen/Qwen2.5-Coder-32B-Instruct' ], value='Qwen/Qwen2.5-72B-Instruct', label="Select Qwen Model", interactive=True ) qwen_interface = gr.load( name=qwen_model.value, src=hyperbolic_gradio.registry, fill_height=True, chatbot=gr.Chatbot(height=600) ) def update_qwen_model(new_model): return gr.load( name=new_model, src=hyperbolic_gradio.registry, fill_height=True, chatbot=gr.Chatbot(height=600) ) qwen_model.change( fn=update_qwen_model, inputs=[qwen_model], outputs=[qwen_interface] ) gr.Markdown("""