Wanswan's picture
Update app.py
a2f633d verified
Raw
History Blame Contribute Delete
7.71 kB
import gradio as gr
import re # For regex operations
from functools import partial
import pandas as pd
# The menu definition with corrected commas and extras.
menu = {
"Starters": [
{
"name": "A111 - Summer Rolls (Vegan)",
"description": (
"Rice paper, fresh carrots, cucumbers, with mint, cilantro rolled with rice noodles and tofu."
" Served with Hoisin and peanut butter sauce."
),
"price": "💰5.50 €/ 2 rolls",
"image": "https://i.pinimg.com/736x/4f/98/cc/4f98cc73eb9574447adafa4473465bcd.jpg",
},
{
"name": "A2 - Papaya Salad (Vegan)",
"description": (
"Green papaya salad mixed with crunchy raw veggies, roasted peanuts, fried shallots "
"and tossed with a bright and citrusy lime dressing."
),
"price": "💰8.90 €",
"image": "https://product.hstatic.net/200000294248/product/xoai_du_du_tom_kho_9db38fcb08024d3ebb4933a92a8e7728_1024x1024.jpg",
},
{
"name": "A3 - Pork & Shrimp Summer Rolls",
"description": (
"Rice paper wrappers, rice vermicelli noodles, cooked pork and shrimp, rolled with fresh "
"lettuce, mint, cilantro, and cucumbers. Served with Hoisin peanut sauce or fish sauce."
),
"price": "💰7.50 €/ 3 rolls",
"image": "https://cdn.netspace.edu.vn/images/2020/04/25/cach-lam-goi-cuon-tom-thit-cuc-ki-hap-dan-245587-800.jpg",
},
{
"name": "A4 - Chicken Spring Rolls",
"description": (
"Vietnamese deep-fried spring roll filled with ground chicken, vermicelli noodles, and "
"minced wood ear mushroom. Served with fish sauce"
),
"price": "💰6.50 €/ 3 sticks",
"image": "https://i-giadinh.vnecdn.net/2024/12/05/Thnhphm11-1733391139-5608-1733391142.jpg",
},
{
"name": "A5 - Rare Beef Salad",
"description": (
"Vietnamese rare beef salad - typically features thinly sliced rare beef, mixed with fish "
"sauce, lime juice, sugar, and a variety of fresh herbs, vegetables, spices and served "
"together with prawn crackers."
),
"price": "💰10.50 €",
"image": "https://i.ytimg.com/vi/KWpZc0f9smI/maxresdefault.jpg",
},
],
"Main Courses": [
{
"name": "B1 - Bun Tron Chay Tofu (Vegan)",
"description": (
"Pan-fried Tofu with lemongrass, leeks, and bean sprouts on lukewarm rice noodles, "
"served with fresh herbs and sweet and sour fish sauce"
),
"price": "💰13.90 €",
"image": "https://img-global.cpcdn.com/recipes/e7b6be2dd3c9aa41/680x781cq80/bun-g%E1%BA%A1o-l%E1%BB%A9t-tr%E1%BB%99n-chay-recipe-main-photo.jpg",
},
{
"name": "B2 - Bun Dau (Vegan)",
"description": (
"Rice vermicelli, served with deep-fried tofu, fresh herbs, cucumber, fried vegan "
"spring rolls, dipped with vegan fish sauce, chili, and lime juice."
),
"price": "💰13.90 €",
"image": "https://i.ytimg.com/vi/TJJ6aHIXoT8/hq720.jpg?sqp=-oaymwEhCK4FEIIDSFryq4qpAxMIARUAAAAAGAElAADIQj0AgKJD&rs=AOn4CLCx4BA_0ht5p02grA8ieWohFiBByQ",
},
{
"name": "B3 - Bun Cha Ha Noi",
"description": (
"Northern Vietnamese dish features charred pork patties and pork belly slices bathed in "
"a steaming dipping sauce served alongside tender rice noodles, fresh herbs, and "
"crunchy pickles."
),
"price": "💰15.90 €",
"image": "https://daiductai.vn/upload/filemanager/B%C3%BAn%20ch%E1%BA%A3/bun-cha.jpg",
},
{
"name": "B4 - Hoi An Chicken Rice",
"description": (
"Free-range chicken, jasmine rice, fresh herbs, crispy fried shallots, chili satay. "
"Served with shredded green papaya, carrots, daikon, and Vietnamese mint, accompanied "
"by a sweet and sour fish sauce and a side bowl of chicken broth."
),
"price": "💰14.90 €",
"image": "https://i-giadinh.vnecdn.net/2023/04/22/Buoc-11-thanh-pham-1-11-9981-1682135995.jpg",
},
{
"name": "B5 - Pho Bo",
"description": "Rice noodles in beef broth with rare beef and herbs on top.",
"price": "💰15.90 €",
"image": "https://phothaihung.com/wp-content/uploads/2023/11/pho-nha-lam.jpg",
},
],
"Coffee & tea": [
{
"name": "C1 - Peach & Orange Lemongrass Iced Tea",
"description": "",
"price": "💰5.50 €",
"image": "https://data.thefeedfeed.com/static/2019/09/10/15681428875d77f627a3522.jpg",
},
{
"name": "C2 - Jasmine Lime-Lychee Iced Tea",
"description": "",
"price": "💰5.50 €",
"image": "https://goodfoodbaddie.com/wp-content/uploads/2023/06/lychee-iced-tea.jpg",
},
{
"name": "C3 - Ice Vietnamese Coffee With Condensed Milk",
"description": "",
"price": "💰5.90 €",
"image": "https://www.pho9co.com/wp-content/uploads/2024/01/vietnamese-condensed-milk-1024x800.jpg",
},
{
"name": "C4 - Cola/Cola Zero/Fanta/Sprite or Mineral Water/Sparking Water (0.2L)",
"description": "",
"price": "💰2.50 €",
"image": "https://burgernj.com/wp-content/uploads/2021/05/Soft-Drinks_result.jpg",
},
{
"name": "C5 - Gaffel Kölnsch (0.33L)",
"description": "",
"price": "💰2.60 €",
"image": "https://beertasting.app/storage/media/1ad9abc052554acb358f99be359a05ec/b3zjsb81ofhgioz7mnaa.jpeg",
},
],
}
# 强制 Tabs 横向滚动不换行的 CSS
css = """
<style>
footer, .svelte-1ipelgc { display: none !important; }
.tabs.svelte-1ipelgc {
flex-wrap: nowrap !important;
overflow-x: auto !important;
white-space: nowrap !important;
}
.tabitem.svelte-1ipelgc {
font-size: 15px !important;
flex: 0 0 auto !important;
padding: 8px 16px !important;
}
</style>
"""
with gr.Blocks() as demo:
gr.Markdown("# 🍜🥢 EAT EAT Cafe & Bistro")
gr.HTML(css)
gr.Markdown(
"Your task: One starter containing mushroom, One main course containing beef; One drink that is the cheapest on the menu."
)
with gr.Tabs():
for category, items in menu.items():
with gr.TabItem(category):
for item in items:
with gr.Row():
with gr.Column(scale=1):
gr.HTML(
f"<img src='{item.get('image', '')}' style='height:90px;width:120px;border-radius:8px;'/>"
)
with gr.Column(scale=4):
name = item["name"]
desc = item["description"]
price = item["price"]
gr.Markdown(
f"**{name}**\n\n{desc}\n\n<span style='color:green;font-weight:bold'>{price}</span>",
show_label=False,
)
if __name__ == "__main__":
demo.launch()