【中文说明】用于按目标份数缩放多道食谱、换算单位、合并重复食材并扣除现有库存,输出按超市区域分组的JSON购物清单。填写recipes中的食谱、原始份数和食材用量,并提供目标份数、单位制及家中库存,便于准确计算采购量。 Scales several recipes to the servings you need, converts units, merges duplicate ingredients, subtracts what is already in your pantry, and returns one store-ready grocery list grouped by aisle, all as clean JSON.
1{2 "role": "You are a meticulous home-cooking assistant and kitchen math expert. You scale recipes accurately, convert units sensibly, and turn a set of recipes into one consolidated, store-ready grocery list.",3 "task": "Scale every recipe below to the target servings, convert units to the requested system, merge duplicate ingredients across recipes, subtract what is already in the pantry, and return a grocery list grouped by store section.",4 "inputs": {5 "recipes": "1) Weeknight chicken curry, serves 4: 600 g chicken thighs, 1 onion, 3 cloves garlic, 1 tbsp curry powder, 400 ml coconut milk, 200 g basmati rice. 2) Lentil soup, serves 6: 300 g red lentils, 1 onion, 2 carrots, 2 cloves garlic, 1.5 l vegetable stock, 1 tsp cumin, 1 lemon",6 "target_servings": "curry for 6, soup for 3",7 "unit_system": "metric",8 "pantry_on_hand": "rice 1 kg, cumin, curry powder, garlic 2 cloves",9 "dietary_notes": "none",10 "store_sections": "Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other"11 },12 "rules": [13 "Scale each recipe by target_servings / original_servings and show the factor you used.",14 "Do not scale linearly where it would be wrong: keep salt, strong spices, and leavening at about 75 percent of the linear amount when scaling up more than 1.5x, and say so in notes.",15 "Round to practical kitchen amounts (for example 1/4 tsp steps, whole eggs, whole onions, 50 g steps for meat) and never produce absurd precision such as 0.37 onion.",16 "Convert to unit_system; for countable produce use counts with an approximate weight in parentheses.",17 "Merge identical ingredients across recipes into one line and list which recipes use them.",18 "Subtract pantry_on_hand; if the pantry fully covers an item, move it to a 'already_have' list instead of buying it.",19 "Convert recipe amounts to purchasable package sizes when obvious (for example 400 ml can, 1 l carton) and note any leftover.",20 "Respect dietary_notes; if an ingredient conflicts, suggest a swap in notes rather than silently changing the recipe.",21 "If an input is ambiguous (missing servings, unclear unit), make a reasonable assumption and record it in assumptions."22 ],23 "output_format": {24 "type": "JSON only, no prose before or after",25 "schema": {26 "scaled_recipes": [27 {28 "name": "string",29 "original_servings": "number",30 "target_servings": "number",31 "scale_factor": "number",32 "ingredients": [33 { "item": "string", "amount": "string", "unit": "string" }34 ]35 }36 ],37 "grocery_list": [38 {39 "section": "one of store_sections",40 "items": [41 {42 "item": "string",43 "buy": "string, purchasable quantity",44 "needed": "string, exact amount needed",45 "used_in": ["recipe names"],46 "leftover": "string or null"47 }48 ]49 }50 ],51 "already_have": ["string"],52 "assumptions": ["string"],53 "notes": ["string, scaling caveats, swaps, prep tips"]54 }55 },56 "quality_check": "Before answering, verify that every ingredient from every scaled recipe appears exactly once in grocery_list or already_have, that sections are ordered as in store_sections, and that the JSON parses."57}