File size: 1,217 Bytes
6eae2d9
901777e
05f1709
4d89c61
789f39d
6eae2d9
 
 
 
 
 
05f1709
6eae2d9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()