Rammohan0504 commited on
Commit
81aba32
·
verified ·
1 Parent(s): d7ffe3c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -44
app.py CHANGED
@@ -1,6 +1,6 @@
1
  import gradio as gr
2
 
3
- # Static menu data
4
  menu_data = [
5
  {"name": "Veg Burger", "category": "VEGAN",
6
  "image": "https://upload.wikimedia.org/wikipedia/commons/6/6e/Veggie_burger.jpg",
@@ -22,65 +22,65 @@ menu_data = [
22
 
23
  # Function to filter dishes based on category
24
  def filter_dishes(category):
25
- return [dish["name"] for dish in menu_data if category == "ALL" or dish["category"] == category]
 
 
26
 
27
- # Function to get dish details
28
  def get_dish_details(dish_name):
29
  fallback_image = "https://via.placeholder.com/300x200.png?text=No+Image+Available"
 
30
  for dish in menu_data:
31
  if dish["name"] == dish_name:
32
  return (
33
  dish.get("image", fallback_image),
34
- dish.get("description", "No description available."),
35
- dish.get("price", "N/A"),
36
- dish.get("spice_level", "N/A"),
37
- dish.get("portion_size", "N/A"),
38
  )
39
- return fallback_image, "Dish not found.", "N/A", "N/A", "N/A"
40
 
41
  # Main Gradio app
42
- def create_ui():
43
- with gr.Blocks() as demo:
44
- gr.HTML("<h1 style='text-align: center;'>Biryani Hub Menu</h1>")
45
 
46
- # Category Selection Buttons
47
- gr.Markdown("### Select a Category to View Available Dishes")
48
- with gr.Row():
49
- btn_all = gr.Button("ALL")
50
- btn_vegan = gr.Button("VEGAN")
51
- btn_halal = gr.Button("HALAL")
52
 
53
- # Dropdown for Dish Selection
54
- gr.Markdown("### Available Dishes")
55
- dish_dropdown = gr.Dropdown(choices=filter_dishes("ALL"), label="Select a Dish", interactive=True)
56
 
57
- # Dish Details Section
58
- gr.Markdown("### Dish Details")
59
- dish_image = gr.Image(label="Dish Image", type="pil")
60
- dish_description = gr.Textbox(label="Description", interactive=False)
61
- dish_price = gr.Textbox(label="Price", interactive=False)
62
- dish_spice = gr.Textbox(label="Spice Level", interactive=False)
63
- dish_portion = gr.Textbox(label="Portion Size", interactive=False)
64
 
65
- # Function to update dropdown list based on category
66
- def update_dropdown(category):
67
- dishes = filter_dishes(category)
68
- return gr.update(choices=dishes, value=None), "Select a dish to view details", "", "", "", ""
69
 
70
- # Connect category buttons to dropdown update
71
- btn_all.click(fn=lambda: update_dropdown("ALL"), outputs=[dish_dropdown, dish_description, dish_price, dish_spice, dish_portion, dish_image])
72
- btn_vegan.click(fn=lambda: update_dropdown("VEGAN"), outputs=[dish_dropdown, dish_description, dish_price, dish_spice, dish_portion, dish_image])
73
- btn_halal.click(fn=lambda: update_dropdown("HALAL"), outputs=[dish_dropdown, dish_description, dish_price, dish_spice, dish_portion, dish_image])
74
 
75
- # Update dish details when a dish is selected
76
- def show_dish_details(dish_name):
77
- image, description, price, spice_level, portion_size = get_dish_details(dish_name)
78
- return image, description, price, spice_level, portion_size
79
 
80
- dish_dropdown.change(fn=show_dish_details, inputs=dish_dropdown, outputs=[dish_image, dish_description, dish_price, dish_spice, dish_portion])
81
-
82
- return demo
83
 
84
  # Launch the app
85
- if __name__ == "__main__":
86
- create_ui().launch()
 
1
  import gradio as gr
2
 
3
+ # Menu data
4
  menu_data = [
5
  {"name": "Veg Burger", "category": "VEGAN",
6
  "image": "https://upload.wikimedia.org/wikipedia/commons/6/6e/Veggie_burger.jpg",
 
22
 
23
  # Function to filter dishes based on category
24
  def filter_dishes(category):
25
+ if category == "ALL":
26
+ return [dish["name"] for dish in menu_data]
27
+ return [dish["name"] for dish in menu_data if dish["category"] == category]
28
 
29
+ # Function to display dish details
30
  def get_dish_details(dish_name):
31
  fallback_image = "https://via.placeholder.com/300x200.png?text=No+Image+Available"
32
+ fallback_text = "Information not available"
33
  for dish in menu_data:
34
  if dish["name"] == dish_name:
35
  return (
36
  dish.get("image", fallback_image),
37
+ dish.get("description", fallback_text),
38
+ dish.get("price", fallback_text),
39
+ dish.get("spice_level", fallback_text),
40
+ dish.get("portion_size", fallback_text)
41
  )
42
+ return fallback_image, fallback_text, fallback_text, fallback_text, fallback_text
43
 
44
  # Main Gradio app
45
+ with gr.Blocks() as demo:
46
+ gr.HTML("<h1 style='text-align: center;'>Biryani Hub Menu</h1>")
 
47
 
48
+ # Buttons for category selection
49
+ gr.Markdown("### Select a Category")
50
+ with gr.Row():
51
+ btn_all = gr.Button("ALL")
52
+ btn_vegan = gr.Button("VEGAN")
53
+ btn_halal = gr.Button("HALAL")
54
 
55
+ # Dropdown for dish selection
56
+ gr.Markdown("### Available Dishes")
57
+ dish_dropdown = gr.Dropdown(choices=[], label="Select a Dish", interactive=True)
58
 
59
+ # Dish details
60
+ gr.Markdown("### Dish Details")
61
+ dish_image = gr.Image(label="Dish Image")
62
+ dish_description = gr.Textbox(label="Description", interactive=False)
63
+ dish_price = gr.Textbox(label="Price", interactive=False)
64
+ dish_spice_level = gr.Textbox(label="Spice Level", interactive=False)
65
+ dish_portion_size = gr.Textbox(label="Portion Size", interactive=False)
66
 
67
+ # Function to update dropdown list based on category
68
+ def update_dropdown(category):
69
+ dishes = filter_dishes(category)
70
+ return gr.update(choices=dishes, value=None)
71
 
72
+ # Function to update dish details
73
+ def update_dish_details(dish_name):
74
+ return get_dish_details(dish_name)
 
75
 
76
+ # Button events for category selection
77
+ btn_all.click(fn=lambda: update_dropdown("ALL"), outputs=dish_dropdown)
78
+ btn_vegan.click(fn=lambda: update_dropdown("VEGAN"), outputs=dish_dropdown)
79
+ btn_halal.click(fn=lambda: update_dropdown("HALAL"), outputs=dish_dropdown)
80
 
81
+ # Dish dropdown event for displaying details
82
+ dish_dropdown.change(fn=update_dish_details, inputs=dish_dropdown,
83
+ outputs=[dish_image, dish_description, dish_price, dish_spice_level, dish_portion_size])
84
 
85
  # Launch the app
86
+ demo.launch()