Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from llm_handler import generate_response | |
| # Predefined system prompts | |
| SYSTEM_PROMPTS = [ | |
| "You are a professional coding assistant", | |
| "You are a professional teaching assistant", | |
| "You are professional email writer", | |
| "Other" | |
| ] | |
| # Available models | |
| MODELS = [ | |
| "Claude Haiku", | |
| "DeepSeek", | |
| "Claude Premium", | |
| "GPT Pro" | |
| ] | |
| def handle_system_prompt_change(choice): | |
| if choice == "Other": | |
| return gr.Textbox(visible=True) | |
| return gr.Textbox(visible=False) | |
| def process_input(user_prompt, model_choice, system_prompt_choice, custom_system_prompt): | |
| # Use custom system prompt if "Other" is selected | |
| final_system_prompt = custom_system_prompt if system_prompt_choice == "Other" else system_prompt_choice | |
| if not user_prompt: | |
| return "Please enter a prompt" | |
| # Generate response using llmhandler | |
| response = generate_response(user_prompt, model_choice, final_system_prompt) | |
| return response | |
| # Create Gradio interface | |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| gr.Markdown("# LLM Interface") | |
| with gr.Row(): | |
| with gr.Column(): | |
| user_prompt = gr.Textbox( | |
| label="Your Prompt", | |
| placeholder="Enter your prompt here...", | |
| lines=5 | |
| ) | |
| model_choice = gr.Dropdown( | |
| choices=MODELS, | |
| label="Select Model", | |
| value=MODELS[0] | |
| ) | |
| system_prompt_choice = gr.Dropdown( | |
| choices=SYSTEM_PROMPTS, | |
| label="Select System Prompt", | |
| value=SYSTEM_PROMPTS[0] | |
| ) | |
| custom_system_prompt = gr.Textbox( | |
| label="Custom System Prompt", | |
| placeholder="Enter your custom system prompt...", | |
| visible=False | |
| ) | |
| submit_btn = gr.Button("Generate Response") | |
| with gr.Column(): | |
| output = gr.Textbox( | |
| label="Response", | |
| lines=10, | |
| show_copy_button=True # Adding copy button to the output | |
| ) | |
| # Handle system prompt change | |
| system_prompt_choice.change( | |
| fn=handle_system_prompt_change, | |
| inputs=[system_prompt_choice], | |
| outputs=[custom_system_prompt] | |
| ) | |
| # Handle submit button click | |
| submit_btn.click( | |
| fn=process_input, | |
| inputs=[ | |
| user_prompt, | |
| model_choice, | |
| system_prompt_choice, | |
| custom_system_prompt | |
| ], | |
| outputs=[output] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |