import dspy from app.ai.nutrition import NutritionalInfo # A diverse set of 50 validated examples covering: # - Home cooked meals # - Restaurant items # - Snacks # - Complex dishes with hidden calories train_examples = [ # --- Breakfast --- dspy.Example( description="Oatmeal with almonds, blueberries, and honey", nutritional_info=NutritionalInfo( reasoning="1 cup cooked oats (150 cal). 1 oz almonds (160 cal). " "1/2 cup blueberries (40 cal). 1 tbsp honey (60 cal). Total ~410 cal.", name="Oatmeal Bowl", calories=410, protein=10, carbs=65, fats=16, ), ).with_inputs("description"), dspy.Example( description="Two eggs over easy with two slices of bacon and buttered toast", nutritional_info=NutritionalInfo( reasoning="2 eggs (140 cal) cooked in fat (+20 cal). 2 slices bacon (90 cal). " "1 slice huge toast (100 cal) + 1 tsp butter (35 cal). Total ~385 cal.", name="Eggs & Bacon Breakfast", calories=385, protein=20, carbs=15, fats=26, ), ).with_inputs("description"), dspy.Example( description="Greek yogurt parfait with granola and strawberries", nutritional_info=NutritionalInfo( reasoning="1 cup non-fat greek yogurt (130 cal). 1/2 cup granola (200 cal). " "1 cup sliced strawberries (50 cal). Total ~380 cal.", name="Yogurt Parfait", calories=380, protein=24, carbs=55, fats=8, ), ).with_inputs("description"), dspy.Example( description="Avocado toast with a poached egg", nutritional_info=NutritionalInfo( reasoning="1 slice artisan bread (110 cal). 1/2 avocado (120 cal). " "1 poached egg (70 cal). Drizzle of oil/seasoning (20 cal). Total ~320 cal.", name="Avocado Toast", calories=320, protein=10, carbs=20, fats=22, ), ).with_inputs("description"), dspy.Example( description="Spinach and feta omelette containing 3 eggs", nutritional_info=NutritionalInfo( reasoning="3 eggs (210 cal). 1 tsp oil/butter (40 cal). " "1 cup spinach (10 cal). 1 oz feta (75 cal). Total ~335 cal.", name="Spinach Feta Omelette", calories=335, protein=22, carbs=4, fats=25, ), ).with_inputs("description"), # --- Lunch --- dspy.Example( description="Grilled chicken breast sandwich with mayo, lettuce, tomato", nutritional_info=NutritionalInfo( reasoning="Bun (180 cal). Chicken breast 4oz (160 cal). " "1 tbsp mayo (90 cal). Veggies (10 cal). Total ~440 cal.", name="Grilled Chicken Sandwich", calories=440, protein=30, carbs=35, fats=18, ), ).with_inputs("description"), dspy.Example( description="Caesar salad with grilled chicken", nutritional_info=NutritionalInfo( reasoning="Romaine lettuce (20 cal). 4oz chicken (160 cal). 2 tbsp dressing (170 cal). " "Croutons (100 cal). Parmesan (60 cal). Total ~510 cal.", name="Chicken Caesar Salad", calories=510, protein=35, carbs=15, fats=35, ), ).with_inputs("description"), dspy.Example( description="Turkey club sandwich with bacon and cheese", nutritional_info=NutritionalInfo( reasoning="3 slices bread (240 cal). Turkey (60 cal). Bacon (90 cal). " "Cheese (110 cal). Mayo (90 cal). Lettuce / Tomato. Total ~590 cal.", name="Turkey Club", calories=590, protein=30, carbs=45, fats=32, ), ).with_inputs("description"), dspy.Example( description="Quinoa bowl with black beans, corn, and avocado", nutritional_info=NutritionalInfo( reasoning="1 cup cooked quinoa (220 cal). 1/2 cup black beans (110 cal). " "1/2 cup corn (70 cal). 1/4 avocado (60 cal). Lime dressing (50 cal). Total ~510 cal.", name="Veggie Quinoa Bowl", calories=510, protein=18, carbs=85, fats=12, ), ).with_inputs("description"), dspy.Example( description="Tuna salad sushi roll (6 pieces) and miso soup", nutritional_info=NutritionalInfo( reasoning="Sushi roll (rice, tuna, mayo) ~300 cal. Miso soup ~40 cal. Total ~340 cal.", name="Sushi Lunch", calories=340, protein=15, carbs=45, fats=8, ), ).with_inputs("description"), # --- Dinner (Complex) --- dspy.Example( description="Spaghetti bolognaise with parmesan cheese", nutritional_info=NutritionalInfo( reasoning="2 cups pasta cooked (400 cal). 1 cup meat sauce/beef (300 cal). " "1 tbsp oil in cooking (120 cal). 2 tbsp parmesan (40 cal). Total ~860 cal.", name="Spaghetti Bolognese", calories=860, protein=35, carbs=100, fats=35, ), ).with_inputs("description"), dspy.Example( description="Grilled salmon with asparagus and roasted potatoes", nutritional_info=NutritionalInfo( reasoning="6oz Salmon fillet (350 cal). Oil for cooking (60 cal). " "Asparagus (30 cal) + oil (30 cal). 1 cup roasted potatoes (150 cal) + oil (60 cal). Total ~680 cal.", name="Salmon Dinner", calories=680, protein=40, carbs=25, fats=45, ), ).with_inputs("description"), dspy.Example( description="Beef stir fry with rice", nutritional_info=NutritionalInfo( reasoning="1 cup rice (200 cal). 4oz Beef strips (250 cal). " "Oil for frying 2 tbsp (240 cal). Veggies (50 cal). Sauce (50 cal). Total ~790 cal.", name="Beef Stir Fry", calories=790, protein=30, carbs=50, fats=50, ), ).with_inputs("description"), dspy.Example( description="Cheeseburger with fries", nutritional_info=NutritionalInfo( reasoning="Bun (200 cal). 4oz Patty 80/20 (280 cal). Cheese (100 cal). " "Condiments (50 cal). Small fries (300 cal). Total ~930 cal.", name="Burger and Fries", calories=930, protein=35, carbs=90, fats=45, ), ).with_inputs("description"), dspy.Example( description="Chicken Tikka Masala with Naan and Rice", nutritional_info=NutritionalInfo( reasoning="Curry with cream/butter/chicken (600 cal). " "1 cup Rice (200 cal). 1 piece Naan (250 cal). Total ~1050 cal.", name="Chicken Tikka Meal", calories=1050, protein=45, carbs=120, fats=45, ), ).with_inputs("description"), dspy.Example( description="2 slices of pepperoni pizza", nutritional_info=NutritionalInfo( reasoning="2 slices (300 cal each). Total ~600 cal. High fat/carbs.", name="2 Pizza Slices", calories=600, protein=24, carbs=70, fats=26, ), ).with_inputs("description"), dspy.Example( description="Tacos - 3 beef tacos with cheese and sour cream", nutritional_info=NutritionalInfo( reasoning="3 corn tortillas (150 cal). Ground beef filling (250 cal - cooked with fat). " "Cheese (110 cal). Sour cream (60 cal). Total ~570 cal.", name="Beef Tacos", calories=570, protein=25, carbs=45, fats=30, ), ).with_inputs("description"), dspy.Example( description="Ribeye steak (10oz) with mashed potatoes", nutritional_info=NutritionalInfo( reasoning="10oz Ribeye (fatty cut) ~750 cal. " "Mashed potatoes with butter/cream (1 cup) ~300 cal. Total ~1050 cal.", name="Ribeye Steak Dinner", calories=1050, protein=60, carbs=35, fats=75, ), ).with_inputs("description"), # --- Snacks/Others --- dspy.Example( description="Medium Banana", nutritional_info=NutritionalInfo( reasoning="Standard fruit size.", name="Banana", calories=105, protein=1.3, carbs=27, fats=0.3 ), ).with_inputs("description"), dspy.Example( description="Protein Shake (Whey)", nutritional_info=NutritionalInfo( reasoning="1 scoop whey (120 cal). Water (0 cal).", name="Whey Protein Shake", calories=120, protein=24, carbs=3, fats=1, ), ).with_inputs("description"), dspy.Example( description="Apple with peanut butter", nutritional_info=NutritionalInfo( reasoning="1 apple (95 cal). 2 tbsp peanut butter (190 cal). Total ~285 cal.", name="Apple & PB", calories=285, protein=8, carbs=30, fats=16, ), ).with_inputs("description"), dspy.Example( description="Bag of potato chips (small)", nutritional_info=NutritionalInfo( reasoning="Standard vending machine size (1.5 oz/42g). Fried.", name="Potato Chips", calories=220, protein=3, carbs=22, fats=14, ), ).with_inputs("description"), dspy.Example( description="Hummus and carrot sticks", nutritional_info=NutritionalInfo( reasoning="1/4 cup hummus (150 cal). 2 carrots (50 cal). Total ~200 cal.", name="Hummus Snack", calories=200, protein=5, carbs=25, fats=9, ), ).with_inputs("description"), dspy.Example( description="Chocolate chip cookie (Subway style)", nutritional_info=NutritionalInfo( reasoning="1 large cookie, heavy on sugar/butter.", name="Large Cookie", calories=220, protein=2, carbs=30, fats=10, ), ).with_inputs("description"), dspy.Example( description="Blueberry Muffin (Bakery size)", nutritional_info=NutritionalInfo( reasoning="Large bakery muffin is notoriously high cal. Flour, sugar, oil.", name="Bakery Muffin", calories=450, protein=6, carbs=65, fats=18, ), ).with_inputs("description"), # --- Add 25 more diverse items to reach 50 --- dspy.Example( description="Hard boiled egg", nutritional_info=NutritionalInfo( reasoning="One large egg.", name="Egg", calories=78, protein=6, carbs=0.6, fats=5 ), ).with_inputs("description"), dspy.Example( description="Slice of cheddar cheese", nutritional_info=NutritionalInfo( reasoning="1 oz slice.", name="Cheddar", calories=110, protein=7, carbs=0.4, fats=9 ), ).with_inputs("description"), dspy.Example( description="Glass of whole milk (8oz)", nutritional_info=NutritionalInfo( reasoning="Full fat dairy.", name="Whole Milk", calories=150, protein=8, carbs=12, fats=8 ), ).with_inputs("description"), dspy.Example( description="Coca Cola (12oz can)", nutritional_info=NutritionalInfo( reasoning="High sugar soda.", name="Coke", calories=140, protein=0, carbs=39, fats=0 ), ).with_inputs("description"), dspy.Example( description="Orange Juice (8oz)", nutritional_info=NutritionalInfo( reasoning="Natural sugars.", name="OJ", calories=110, protein=2, carbs=26, fats=0 ), ).with_inputs("description"), dspy.Example( description="Kind Bar (Dark Chocolate Nuts)", nutritional_info=NutritionalInfo( reasoning="Nut based bar.", name="Nut Bar", calories=200, protein=6, carbs=16, fats=13 ), ).with_inputs("description"), dspy.Example( description="Bowl of Beef Chili (1 cup)", nutritional_info=NutritionalInfo( reasoning="Ground beef, beans, tomato base.", name="Chili", calories=300, protein=20, carbs=25, fats=15 ), ).with_inputs("description"), dspy.Example( description="Pork Chop (baked) with green beans", nutritional_info=NutritionalInfo( reasoning="6oz pork chop (250 cal). Steam beans (30 cal). Total ~280.", name="Pork Chop Meal", calories=280, protein=35, carbs=10, fats=12, ), ).with_inputs("description"), dspy.Example( description="Clam Chowder Bowl", nutritional_info=NutritionalInfo( reasoning="Cream based soup (heavy cream). 1.5 cups.", name="Clam Chowder", calories=450, protein=12, carbs=40, fats=28, ), ).with_inputs("description"), dspy.Example( description="Philly Cheesesteak", nutritional_info=NutritionalInfo( reasoning="Roll (250 cal). Fatty steak (400 cal). Cheese whiz/provolone (150 cal). Oil (100 cal).", name="Cheesesteak", calories=900, protein=40, carbs=50, fats=55, ), ).with_inputs("description"), dspy.Example( description="Fish and Chips (3 pieces)", nutritional_info=NutritionalInfo( reasoning="Deep fried batter fits + fried chips. Very high oil absorption.", name="Fish and Chips", calories=950, protein=30, carbs=90, fats=55, ), ).with_inputs("description"), dspy.Example( description="Cobb Salad with ranch", nutritional_info=NutritionalInfo( reasoning="Greens, bacon, egg, avocado, blue cheese, ranch dressing. Salad is low cal, toppings are high.", name="Cobb Salad", calories=750, protein=35, carbs=15, fats=60, ), ).with_inputs("description"), dspy.Example( description="Hot Dog with bun, mustard, ketchup", nutritional_info=NutritionalInfo( reasoning="Processed meat link (150 cal). Bun (120 cal). Condiments (20 cal).", name="Hot Dog", calories=290, protein=10, carbs=25, fats=16, ), ).with_inputs("description"), dspy.Example( description="Pad Thai with Shrimp", nutritional_info=NutritionalInfo( reasoning="Rice noodles stir fried in oil and sugar based sauce. Peanuts.", name="Pad Thai", calories=800, protein=25, carbs=110, fats=30, ), ).with_inputs("description"), dspy.Example( description="Burrito (Chipotle style - Chicken, Rice, Beans, Cheese, Guac)", nutritional_info=NutritionalInfo( reasoning="Tortilla (300). Rice (200). Beans (150). Chicken (180). Cheese (100). Guac (230!).", name="Burrito", calories=1160, protein=55, carbs=110, fats=55, ), ).with_inputs("description"), dspy.Example( description="Smoothie (Berry, Banana, Yogurt)", nutritional_info=NutritionalInfo( reasoning="Healthy but sugar dense fruits + yogurt.", name="Fruit Smoothie", calories=300, protein=8, carbs=60, fats=2, ), ).with_inputs("description"), dspy.Example( description="Falafel Wrap", nutritional_info=NutritionalInfo( reasoning="Fried chickpea balls (250), pita (150), tahini sauce (100).", name="Falafel Wrap", calories=550, protein=15, carbs=70, fats=25, ), ).with_inputs("description"), dspy.Example( description="Macaroni and Cheese (1 cup homemade)", nutritional_info=NutritionalInfo( reasoning="Pasta + Roux + Milk + lots of Cheese.", name="Mac & Cheese", calories=500, protein=18, carbs=45, fats=28, ), ).with_inputs("description"), dspy.Example( description="Ice Cream (2 scoops vanilla)", nutritional_info=NutritionalInfo( reasoning="Sugar and Cream.", name="Ice Cream", calories=350, protein=6, carbs=40, fats=20 ), ).with_inputs("description"), dspy.Example( description="Cottage Cheese (1 cup)", nutritional_info=NutritionalInfo( reasoning="Low fat high protein dairy.", name="Cottage Cheese", calories=180, protein=25, carbs=10, fats=5 ), ).with_inputs("description"), dspy.Example( description="Beef Jerky (1 bag / 3oz)", nutritional_info=NutritionalInfo( reasoning="Dried meat, lean protein.", name="Beef Jerky", calories=240, protein=35, carbs=15, fats=4 ), ).with_inputs("description"), dspy.Example( description="Edamame (1 cup in pod)", nutritional_info=NutritionalInfo( reasoning="Soybeans.", name="Edamame", calories=190, protein=17, carbs=15, fats=8 ), ).with_inputs("description"), dspy.Example( description="Popcorn (movie theater small, buttered)", nutritional_info=NutritionalInfo( reasoning="Corn + oil popping + butter topping.", name="Movie Popcorn", calories=600, protein=6, carbs=60, fats=40, ), ).with_inputs("description"), dspy.Example( description="Veggie Pizza Slice", nutritional_info=NutritionalInfo( reasoning="Cheese + Dough + Veggies.", name="Veggie Pizza", calories=260, protein=10, carbs=32, fats=10 ), ).with_inputs("description"), dspy.Example( description="Salmon Nigiri (2 pcs)", nutritional_info=NutritionalInfo( reasoning="Rice ball + Slice of raw fish.", name="Salmon Nigiri", calories=120, protein=10, carbs=15, fats=3 ), ).with_inputs("description"), ]