Spaces:
Sleeping
Sleeping
File size: 4,070 Bytes
d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 3ae9ffc d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 f71aca9 d640518 9f31db6 f71aca9 | 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | import gradio as gr
# Menu Data
menu = {
"breads": ["Roti", "Butter Naan", "Plain Naan", "Garlic Naan", "Chilly Naan"],
"veg_curries": ["Paneer Butter Masala", "Kadai Paneer", "Dum Ka Paneer", "Mixed Veg Curry", "Dal Makhani"],
"non_veg_curries": ["Chicken Curry", "Mutton Curry", "Fish Curry", "Prawns Curry"],
"biryani": ["Veg Biryani", "Paneer Biryani", "Chicken Biryani", "Mutton Biryani", "Fish Biryani", "Prawns Biryani"]
}
# Pairing Logic: Generate Suggestions Dynamically
def suggest_pairings(selected_breads, selected_curries, selected_biryani):
remaining_suggestions = {
"veg_curries": [],
"non_veg_curries": [],
"biryani": [],
"breads": []
}
# Avoid suggesting already selected categories
if not selected_breads:
remaining_suggestions["breads"] = menu["breads"]
if not selected_curries:
remaining_suggestions["veg_curries"] = menu["veg_curries"]
remaining_suggestions["non_veg_curries"] = menu["non_veg_curries"]
if not selected_biryani:
remaining_suggestions["biryani"] = menu["biryani"]
suggestions = []
if remaining_suggestions["veg_curries"]:
suggestions.append(f"Veg Curries: {', '.join(remaining_suggestions['veg_curries'])}")
if remaining_suggestions["non_veg_curries"]:
suggestions.append(f"Non-Veg Curries: {', '.join(remaining_suggestions['non_veg_curries'])}")
if remaining_suggestions["biryani"]:
suggestions.append(f"Biryani: {', '.join(remaining_suggestions['biryani'])}")
if remaining_suggestions["breads"]:
suggestions.append(f"Breads: {', '.join(remaining_suggestions['breads'])}")
return "\n".join(suggestions)
# Show Summary on Next Page
def show_summary(selected_breads, selected_curries, selected_biryani, custom_ingredients, custom_text):
result = "### Your Selected Items:\n\n"
if "Butter Naan" in selected_breads:
suggestions.append("Most People Selected: Paneer Butter Masala")
if selected_breads:
result += f"**Breads:** {', '.join(selected_breads)}\n"
if selected_curries:
result += f"**Curries:** {', '.join(selected_curries)}\n"
if selected_biryani:
result += f"**Biryani:** {', '.join(selected_biryani)}\n"
if custom_ingredients:
result += f"**Custom Ingredients:** {', '.join(custom_ingredients)}\n"
if custom_text:
result += f"**Custom Dish Preferences:** {custom_text}\n"
return result
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# Dish Pairing App")
# Selections
with gr.Row():
bread_input = gr.CheckboxGroup(menu["breads"], label="Select Breads")
curry_input = gr.CheckboxGroup(menu["veg_curries"] + menu["non_veg_curries"], label="Select Curries")
biryani_input = gr.CheckboxGroup(menu["biryani"], label="Select Biryani")
# Suggestions
suggestions_output = gr.Textbox(label="Dynamic Pairing Suggestions", interactive=False)
# Customization Options
gr.Markdown("### Customize Your Dish")
custom_ingredients = gr.CheckboxGroup(
["Extra Cheese", "Extra Spicy", "Less Oil", "No Onions", "No Garlic"], label="Select Ingredients"
)
custom_text = gr.Textbox(label="Write Your Custom Dish Preference")
# Next Button and Summary Page
next_btn = gr.Button("Next")
summary_output = gr.Textbox(label="Summary", interactive=False)
# Dynamic Suggestions
bread_input.change(suggest_pairings, inputs=[bread_input, curry_input, biryani_input], outputs=suggestions_output)
curry_input.change(suggest_pairings, inputs=[bread_input, curry_input, biryani_input], outputs=suggestions_output)
biryani_input.change(suggest_pairings, inputs=[bread_input, curry_input, biryani_input], outputs=suggestions_output)
# Navigate to Summary Page
next_btn.click(
show_summary,
inputs=[bread_input, curry_input, biryani_input, custom_ingredients, custom_text],
outputs=summary_output
)
gr.Markdown("### Your Final Selections:")
demo.launch()
|