import os import gradio as gr import spaces from agent import generate_response user_preferences = { "diet": [], "goal": "", "weeks": 1 } @spaces.GPU def process_input(message, history): return generate_response(message, history, user_preferences) def update_preferences(diet, goal, weeks): user_preferences["diet"] = diet user_preferences["goal"] = goal user_preferences["weeks"] = weeks return gr.update(visible=True) with gr.Blocks() as demo: gr.Markdown("## 🥗 Smart Meal Plan Assistant") with gr.Row(): diet = gr.CheckboxGroup(["Low-carb", "High-protein", "Vegetarian", "Vegan", "Keto"], label="Diet Preferences") goal = gr.Radio(["Weight Loss", "Muscle Gain", "Maintenance"], label="Health Goal") weeks = gr.Slider(1, 12, value=1, step=1, label="Plan Duration (weeks)") confirm_btn = gr.Button("Start Chat") chatbot = gr.Chatbot(visible=False) msg = gr.Textbox(visible=False) clear = gr.Button("Clear", visible=False) confirm_btn.click(update_preferences, inputs=[diet, goal, weeks], outputs=[chatbot]) msg.submit(process_input, [msg, chatbot], chatbot) clear.click(lambda: None, None, chatbot) demo.launch()