Spaces:
Build error
Build error
import gradio as gr | |
# Function that handles the user input and provides responses | |
def chatbot(input_text, state): | |
# Initializing state if None | |
if state is None: | |
state = {"step": 1} | |
# Step 1: Ask what the user wants to customize | |
if state["step"] == 1: | |
state["step"] = 2 | |
return "Hey, what would you like to customize?", state | |
# Step 2: Ask if the user wants veg or nonveg | |
if state["step"] == 2: | |
state["step"] = 3 | |
return "Would you like to customize a veg or nonveg dish?", state | |
# Step 3: Ask for nutritional selection (based on veg or nonveg) | |
if state["step"] == 3: | |
if input_text.lower() in ["veg", "nonveg"]: | |
state["step"] = 4 | |
return f"Great! You've selected {input_text}. Now, what are your nutritional preferences?", state | |
return "Please select either 'veg' or 'nonveg'.", state | |
# Step 4: Show ingredients based on veg or nonveg | |
if state["step"] == 4: | |
if input_text.lower() == "veg": | |
state["step"] = 5 | |
return "Please choose an ingredient: Paneer, Gobi, Babycorn, Spinach, Mushroom, Tofu, Corn, Peas, Broccoli, Cauliflower", state | |
elif input_text.lower() == "nonveg": | |
state["step"] = 6 | |
return "Please choose an ingredient: Fish, Chicken, Mutton, Prawns, Duck, Turkey, Crab, Lobster, Shrimp, Squid", state | |
return "Please select either 'veg' or 'nonveg'.", state | |
# Step 5: Show dish items based on ingredient selection for veg | |
if state["step"] == 5: | |
veg_items = { | |
"paneer": ["Paneer Tikka", "Paneer Butter Masala", "Paneer Lababdar", "Paneer Makhani", "Palak Paneer", "Paneer Pakora", "Paneer Bhurji", "Shahi Paneer", "Kadai Paneer", "Paneer Kofta"], | |
"gobi": ["Gobi Manchurian", "Aloo Gobi", "Gobi Paratha", "Gobi Fry", "Gobi Masala", "Gobi Do Pyaza", "Gobi Curry", "Gobi Pulao", "Gobi Pakora", "Gobi Stir Fry"], | |
"babycorn": ["Babycorn Fry", "Babycorn Manchurian", "Babycorn Pakora", "Babycorn Masala", "Babycorn Pulao", "Babycorn Stir Fry", "Babycorn Biryani", "Babycorn Curry", "Babycorn Tikka", "Babycorn Chutney"], | |
"spinach": ["Palak Paneer", "Spinach Soup", "Spinach Paratha", "Palak Chaat", "Spinach Curry", "Spinach Pulao", "Spinach Biryani", "Spinach and Cheese Toast", "Spinach Frittata", "Spinach Pakora"], | |
"mushroom": ["Mushroom Masala", "Mushroom Soup", "Mushroom Biryani", "Mushroom Curry", "Mushroom Stir Fry", "Mushroom Tikka", "Mushroom Paratha", "Mushroom Pulao", "Mushroom Manchurian", "Mushroom Pakora"], | |
"tofu": ["Tofu Stir Fry", "Tofu Curry", "Tofu Tikka", "Tofu Soup", "Tofu Salad", "Tofu Stir Fried Rice", "Tofu Pulao", "Tofu Pakora", "Tofu Biryani", "Tofu Wrap"], | |
"corn": ["Sweet Corn Soup", "Corn Pakora", "Corn Stir Fry", "Corn Tikki", "Corn Pulao", "Corn Biryani", "Corn Masala", "Corn Fritters", "Corn Salad", "Corn and Peas Curry"], | |
"peas": ["Matar Paneer", "Matar Masala", "Matar Pulao", "Matar Tikki", "Matar Paratha", "Matar Pakora", "Matar Chaat", "Matar Biryani", "Matar Curry", "Matar Stir Fry"], | |
"broccoli": ["Broccoli Stir Fry", "Broccoli Soup", "Broccoli Salad", "Broccoli Pakora", "Broccoli Tikki", "Broccoli Curry", "Broccoli Pulao", "Broccoli Frittata", "Broccoli Manchurian", "Broccoli Cheese Bake"], | |
"cauliflower": ["Gobi Manchurian", "Aloo Gobi", "Gobi Pakora", "Gobi Tikka", "Gobi Masala", "Gobi Pulao", "Aloo Gobi Paratha", "Gobi Curry", "Gobi Stir Fry", "Gobi Cheese Bake"] | |
} | |
ingredient = input_text.lower() | |
if ingredient in veg_items: | |
return f"Here are some {ingredient} dishes: {', '.join(veg_items[ingredient])}", state | |
return "Please select a valid ingredient from the list.", state | |
# Step 6: Show dish items based on ingredient selection for nonveg | |
if state["step"] == 6: | |
nonveg_items = { | |
"fish": ["Fish Curry", "Grilled Fish", "Fish Fry", "Fish Tikka", "Fish Biryani", "Fish Korma", "Fish Masala", "Fish Soup", "Fish and Chips", "Fish Amritsari"], | |
"chicken": ["Chicken Curry", "Chicken Biryani", "Grilled Chicken", "Chicken Tikka", "Chicken Pakora", "Chicken Fry", "Chicken Korma", "Chicken Masala", "Chicken Shawarma", "Chicken Pulao"], | |
"mutton": ["Mutton Rogan Josh", "Mutton Biryani", "Mutton Curry", "Mutton Korma", "Mutton Fry", "Mutton Seekh Kebab", "Mutton Nihari", "Mutton Do Pyaza", "Mutton Masala", "Mutton Kofta"], | |
"prawns": ["Prawn Curry", "Prawn Masala", "Prawn Biryani", "Prawn Fry", "Prawn Tikka", "Prawn Soup", "Prawn Pulao", "Prawn Korma", "Prawn Grill", "Prawn Prawn Pakora"], | |
"duck": ["Duck Curry", "Duck Roast", "Duck Biryani", "Duck Korma", "Duck Fry", "Duck Soup", "Duck Stir Fry", "Duck Tikka", "Duck Pulao", "Duck Shawarma"], | |
"turkey": ["Turkey Roast", "Turkey Biryani", "Turkey Soup", "Turkey Masala", "Turkey Korma", "Turkey Stir Fry", "Turkey Tikka", "Turkey Grill", "Turkey Pulao", "Turkey Tacos"], | |
"crab": ["Crab Curry", "Crab Fry", "Crab Soup", "Crab Masala", "Crab Biryani", "Crab Pulao", "Crab Cakes", "Crab Tikka", "Crab Stir Fry", "Crab Roast"], | |
"lobster": ["Lobster Curry", "Lobster Grilled", "Lobster Soup", "Lobster Biryani", "Lobster Masala", "Lobster Tikka", "Lobster Stir Fry", "Lobster Pulao", "Lobster Shawarma", "Lobster Pakora"], | |
"shrimp": ["Shrimp Biryani", "Shrimp Curry", "Shrimp Tikka", "Shrimp Masala", "Shrimp Fry", "Shrimp Pulao", "Shrimp Soup", "Shrimp Grill", "Shrimp Korma", "Shrimp Pakora"], | |
"squid": ["Squid Curry", "Squid Masala", "Grilled Squid", "Squid Soup", "Squid Stir Fry", "Squid Biryani", "Squid Tikka", "Squid Pakora", "Squid Pulao", "Squid Korma"] | |
} | |
ingredient = input_text.lower() | |
if ingredient in nonveg_items: | |
return f"Here are some {ingredient} dishes: {', '.join(nonveg_items[ingredient])}", state | |
return "Please select a valid ingredient from the list.", state | |
# Set up the Gradio interface | |
iface = gr.Interface(fn=chatbot, | |
inputs=["text", "state"], | |
outputs=["text", "state"], | |
live=True, | |
allow_flagging="never") | |
iface.launch() | |