前情提要:2025年算是我的AI學習元年,請多指教!
2025.07開始學習Python、Gradio、MySQL、Line Bot...等等。
也感謝楊宏文老師鼓勵學員要寫部落格、經營社群媒體,因此我重拾了寫部落格的習慣,順便記錄我的學習歷程。
沒想到有挑戰寫作連續30天這種艱鉅的任務,版上高手好多,我會加油的!
為什麼會想要練習做營養午餐菜單呢?
因為要減脂,我都盡量自己煮午餐,要有三菜一湯或是一杯咖啡。
最近最常出現的菜色就是:鹹蛋炒苦瓜,因為在傳統市場買到三條只要 $50,驚!
這是 Grok 版的鹹蛋炒苦瓜,我一直跟它說請補上鹹蛋,但它可能不知道鹹蛋是什麼…🥲
不知道大家覺得國小營養午餐好吃嗎?
我是還蠻懷念的,可能我不太挑食吧,三色豆我也可以(?)
所以我決定動手用Gradio來做看看 「營養午餐生成器」,順便練習一下 Gradio 的各種功能(輸入框、勾選框、滑桿等等,真的是蠻好用的)。
因為 Gradio 跟 Python 都才剛學沒多久,所以兩樣東西攪和在一起,就有點卡關。
重點是:要把邏輯都想清楚,再開始寫程式碼!
我原本超貪心,想要讓使用者能夠勾選:
還想要一次生成七天的完整菜單!
雖然菜單資料庫是請 ChatGPT 一次吐出 50 道(我還有刪改,它偶爾會吐出避風塘炒蟹或酸菜魚這種奇葩),但後來我崩潰了🤣
我發現光是處理這件事:
讓使用者勾選是否接受重複菜色,但湯品和澱粉類可以重複
我就快要邏輯陣亡 🤯
再加上素食選項與過敏源的處理,整個 if 判斷式寫得又臭又長,果斷先放棄。
等我以後刀磨利一點再來挑戰 🥲
我還偷偷加了:
究竟會不會抽到這些彩蛋呢?
with gr.Blocks() as demo:
gr.Markdown("# 營養午餐菜單生成小幫手")
name = gr.Textbox(label="姓名")
days = gr.Slider(minimum=1, maximum=7, step=1, label="選擇天數", value=1)
allow_repeat = gr.Radio(["可", "不可"], label="是否接受重複菜色 (主餐跟湯品仍可能重複)", value="可")
submit = gr.Button("送出")
output = gr.Textbox(label="您的專屬菜單")
submit.click(
fn=generate_menu,
inputs=[name, days, allow_repeat],
outputs=output
)
demo.launch(sharing=True)
最近 Colab 好像壞掉了,完全跑不出東西。
我有求助一下 ChatGPT,它說可以在 VS Code 裝 Gradio。我就叫出終端機操作一番,好險最後有搞定!
不過就只能在本機顯示,沒辦法用雲端網址分享(暫時忍耐~)。
我已經忘光 CSS 怎麼寫了,所以完全沒加,陽春陽春的,但還好可以跑!
Lucky~第 2 天就出現紅白小湯圓了!
還抽到納豆拌山藥!🤣
之後我想來分享我做「三門理論」練習的痛苦過程(?)
三門理論真的超有趣,拿來問身邊的家人朋友都被自己的直覺給騙倒了🤣