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()