import gradio as gr from transformers import pipeline # Load model dari Hugging Face tanpa device_map untuk menghindari error di Spaces generator = pipeline( "text-generation", model="tiiuae/Falcon-H1-1.5B-Instruct", trust_remote_code=True # boleh dihapus jika pakai transformers terbaru ) def generate_meal_plan(preferensi, durasi, kalori, hari): prompt = f""" Saya ingin membuat rencana makan selama {hari} hari. Preferensi makanan saya adalah: {preferensi}. Saya hanya punya waktu {durasi} menit untuk memasak per hari. Jumlah kalori maksimal per hari: {kalori}. Tolong buatkan rencana makan yang mencakup sarapan, makan siang, dan makan malam setiap hari. Format output per hari: - Hari ke-X: - Sarapan: - Makan Siang: - Makan Malam: """ result = generator(prompt, max_new_tokens=700, do_sample=True, temperature=0.7)[0]['generated_text'] return result.split(prompt)[-1] # Hilangkan prompt dari output # Gradio Interface with gr.Blocks() as demo: gr.Markdown("## 🥗 AI Meal Planner") with gr.Row(): preferensi = gr.Textbox(label="Preferensi Makanan", placeholder="Contoh: vegetarian, halal, rendah karbo, dll") durasi = gr.Number(label="Durasi Masak per Hari (menit)", value=30) with gr.Row(): kalori = gr.Number(label="Batas Kalori per Hari", value=2000) hari = gr.Number(label="Jumlah Hari", value=5) tombol = gr.Button("Buat Rencana Makan") output = gr.Textbox(label="Rencana Makan AI", lines=20) tombol.click(fn=generate_meal_plan, inputs=[preferensi, durasi, kalori, hari], outputs=output) demo.launch()