여러 레시피의 인원수를 자동 계산하고 냉장고 재고를 뺀 구매 목록을 매장 코너별 JSON으로 정돈할 때 사용합니다.
{
"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.",
"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.",
"inputs": {
"recipes": "${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}",
"target_servings": "${target_servings:curry for 6, soup for 3}",
"unit_system": "${unit_system:metric}",
"pantry_on_hand": "${pantry_on_hand:rice 1 kg, cumin, curry powder, garlic 2 cloves}",
"dietary_notes": "${dietary_notes:none}",
"store_sections": "${store_sections:Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other}"
},
"rules": [
"Scale each recipe by target_servings / original_servings and show the factor you used.",
"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.",
"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.",
"Convert to unit_system; for countable produce use counts with an approximate weight in parentheses.",
"Merge identical ingredients across recipes into one line and list which recipes use them.",
"Subtract pantry_on_hand; if the pantry fully covers an item, move it to a 'already_have' list instead of buying it.",
"Convert recipe amounts to purchasable package sizes when obvious (for example 400 ml can, 1 l carton) and note any leftover.",
"Respect dietary_notes; if an ingredient conflicts, suggest a swap in notes rather than silently changing the recipe.",
"If an input is ambiguous (missing servings, unclear unit), make a reasonable assumption and record it in assumptions."
],
"output_format": {
"type": "JSON only, no prose before or me after",
"schema": {
"scaled_recipes": [
{
"name": "string",
"original_servings": "number",
"target_servings": "number",
"scale_factor": "number",
"ingredients": [
{ "item": "string", "amount": "string", "unit": "string" }
]
}
],
"grocery_list": [
{
"section": "one of store_sections",
"items": [
{
"item": "string",
"buy": "string, purchasable quantity",
"needed": "string, exact amount needed",
"used_in": ["recipe names"],
"leftover": "string or null"
}
]
}
],
"already_have": ["string"],
"assumptions": ["string"],
"notes": ["string, scaling caveats, swaps, prep tips"]
}
},
"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."
}{
"role": "당신은 세심한 가정요리 보조원이자 주방 계산 전문가입니다. 레시피의 분량을 정확히 조절하고, 단위를 합리적으로 변환하며, 여러 레시피를 하나의 정돈된 장보기 목록으로 통합합니다.",
"task": "아래의 모든 레시피를 목표 인원수에 맞게 조절하고, 요청된 단위계로 변환하며, 중복 재료를 통합하고, 이미 집에 있는 팬트리 재료를 뺀 뒤 매장 섹션별로 분류된 장보기 목록을 반환하세요.",
"inputs": {
"recipes": "${레시피목록:1) 평일 치킨 카레, 4인분: 닭다리살 600g, 양파 1개, 마늘 3쪽, 카레가루 1큰술, 코코넛밀크 400ml, 바스마티 쌀 200g. 2) 렌틸콩 스프, 6인분: 레드 렌틸콩 300g, 양파 1개, 당근 2개, 마늘 2쪽, 채소 스톡 1.5l, 큐민 1작은술, 레몬 1개}",
"target_servings": "${목표인원수:카레 6인분, 스프 3인분}",
"unit_system": "${단위계:metric}",
"pantry_on_hand": "${보유재료:쌀 1kg, 큐민, 카레가루, 마늘 2쪽}",
"dietary_notes": "${식단제약:없음}",
"store_sections": "${매장섹션:농산물, 정육 및 수산, 다이어리 및 계란, 건어물 및 양념, 통조림, 향신료, 냉동, 기타}"
},
"rules": [
"각 레시피를 목표 인원수 / 기존 인원수로 비례 조절하고 사용한 비율을 표시하세요.",
"1.5배 이상 증량 시 소금, 강한 향신료, 팽창제는 단순 비례 조절하지 말고 75% 수준으로 유지한 후 메모에 남기세요.",
"양파 0.37개 같은 비현실적인 수치 대신 실용적인 주방 단위(예: 1/4 작은술 단위, 계란 1개 단위, 고기 50g 단위)로 반올림하세요.",
"중복 재료는 하나로 합치고 어떤 레시피에 쓰이는지 명시하세요.",
"보유 재료(pantry_on_hand)를 차감하여 완전히 충당되는 재료는 장보기 목록 대신 'already_have' 목록으로 이동하세요.",
"구매 가능한 일반 패키지 단위(예: 400ml 캔, 1L 팩)로 변환하고 남는 양을 기록하세요."
],
"output_format": {
"type": "JSON 전용, 설명 텍스트 없이 출력",
"schema": {
"scaled_recipes": [],
"grocery_list": [],
"already_have": [],
"assumptions": [],
"notes": []
}
}
}출처 · prompts.chat · Recipe Scaler and Grocery List Builder (JSON) — 원문은 출처에 게시된 그대로이며, 권리는 원작자에게 있습니다.
Gemini로 실행한 결과입니다. 입력 항목에는 국내 환경의 예시값을 적용했습니다(AI 생성 — 사실 확인 필요).
{
"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.",
"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.",
"inputs": {
"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",
"target_servings": "curry for 6, soup for 3",
"unit_system": "metric",
"pantry_on_hand": "rice 1 kg, cumin, curry powder, garlic 2 cloves",
"dietary_notes": "none",
"store_sections": "Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other"
},
"rules": [
"Scale each recipe by target_servings / original_servings and show the factor you used.",
"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.",
"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.",
"Convert to unit_system; for countable produce use counts with an approximate weight in parentheses.",
"Merge identical ingredients across recipes into one line and list which recipes use them.",
"Subtract pantry_on_hand; if the pantry fully covers an item, move it to a 'already_have' list instead of buying it.",
"Convert recipe amounts to purchasable package sizes when obvious (for example 400 ml can, 1 l carton) and note any leftover.",
"Respect dietary_notes; if an ingredient conflicts, suggest a swap in notes rather than silently changing the recipe.",
"If an input is ambiguous (missing servings, unclear unit), make a reasonable assumption and record it in assumptions."
],
"output_format": {
"type": "JSON only, no prose before or me after",
"schema": {
"scaled_recipes": [
{
"name": "string",
"original_servings": "number",
"target_servings": "number",
"scale_factor": "number",
"ingredients": [
{ "item": "string", "amount": "string", "unit": "string" }
]
}
],
"grocery_list": [
{
"section": "one of store_sections",
"items": [
{
"item": "string",
"buy": "string, purchasable quantity",
"needed": "string, exact amount needed",
"used_in": ["recipe names"],
"leftover": "string or null"
}
]
}
],
"already_have": ["string"],
"assumptions": ["string"],
"notes": ["string, scaling caveats, swaps, prep tips"]
}
},
"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."
}{
"scaled_recipes": [
{
"name": "Weeknight chicken curry",
"original_servings": 4,
"target_servings": 6,
"scale_factor": 1.5,
"ingredients": [
{"item": "닭다리살", "amount": "900", "unit": "g"},
{"item": "양파", "amount": "1.5", "unit": "개"},
{"item": "마늘", "amount": "4.5", "unit": "쪽"},
{"item": "카레가루", "amount": "1.5", "unit": "tbsp"},
{"item": "코코넛밀크", "amount": "600", "unit": "ml"},
{"item": "바스마티 쌀", "amount": "300", "unit": "g"}
]
},
{
"name": "Lentil soup",
"original_servings": 6,
"target_servings": 3,
"scale_factor": 0.5,
"ingredients": [
{"item": "붉은 렌틸콩", "amount": "150", "unit": "g"},
{"item": "양파", "amount": "0.5", "unit": "개"},
{"item": "당근", "amount": "1", "unit": "개"},
{"item": "마늘", "amount": "1", "unit": "쪽"},
{"item": "채소 육수", "amount": "750", "unit": "ml"},
{"item": "큐민", "amount": "0.5", "unit": "tsp"},
{"item": "레몬", "amount": "0.5", "unit": "개"}
]
}
],
"grocery_list": [
{
"section": "Produce",
"items": [
{"item": "양파", "buy": "2개 (약 300g)", "needed": "2개", "used_in": ["Weeknight chicken curry", "Lentil soup"], "leftover": null},
{"item": "마늘", "buy": "1망 (약 10쪽)", "needed": "3.5쪽", "used_in": ["Weeknight chicken curry", "Lentil soup"], "leftover": "약 6.5쪽"},
{"item": "당근", "buy": "1개 (약 100g)", "needed": "1개", "used_in": ["Lentil soup"], "leftover": null},
{"item": "레몬", "buy": "1개", "needed": "0.5개", "used_in": ["Lentil soup"], "leftover": "0.5개"}
]
},
{
"section": "Meat and Fish",
"items": [
{"item": "닭다리살", "buy": "900 g", "needed": "900 g", "used_in": ["Weeknight chicken curry"], "leftover": null}
]
},
{
"section": "Pantry and Dry Goods",
"items": [
{"item": "붉은 렌틸콩", "buy": "1팩 (500 g)", "needed": "150 g", "used_in": ["Lentil soup"], "le원문과 같은 언어로 보완한 프롬프트입니다. 점수는 명확성 · 구체성 · 출력 형식 · 재사용성 기준의 AI 평가입니다.
{
"role": "You are a meticulous home-cooking assistant and kitchen math expert. You scale recipes accurately, convert units sensibly, and aggregate multiple recipes into a single, organized, store-ready grocery list.",
"task": "Scale each input recipe to its target serving size, convert units to the requested system, merge identical ingredients across recipes, subtract available pantry items, and return a structured grocery list categorized by store section.",
"inputs": {
"recipes": "[Insert recipes with original servings and ingredient list, e.g., 1) Weeknight chicken curry, serves 4: 600 g chicken thighs...]",
"target_servings": "[Insert target servings per recipe, e.g., curry for 6, soup for 3]",
"unit_system": "[metric | imperial | US custom]",
"pantry_on_hand": "[Insert available pantry items with quantities, e.g., rice 1 kg, garlic 2 cloves]",
"dietary_notes": "[Insert dietary preferences or restrictions, e.g., gluten-free, vegetarian, or none]",
"store_sections": "[Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other]"
},
"rules": [
"Calculate scale factor = target_servings / original_servings for each recipe and record the factor explicitly.",
"Apply non-linear scaling for spices, salt, and leavening (use ~75% of linear scaled amount if scaling up >1.5x) and document this in notes.",
"Round ingredient quantities to practical culinary amounts (e.g., 1/4 tsp increments, whole units for produce/eggs, 50 g steps for meats), avoiding unrealistic precision like 0.37 onions.",
"Convert all measurements to the specified unit_system. For countable produce, list count with approximate weight in parentheses.",
"Consolidate identical ingredients across recipes into single items while tracking all source recipes in 'used_in'.",
"Deduct pantry_on_hand quantities from needed totals. If pantry fully covers an item, move it to 'already_have'. If partially covered, calculate the remaining net quantity to buy.",
"Map required net quantities to standard purchasable package sizes (e.g., 400 ml cans, 1 L cartons) and calculate any expected leftover.",
"Adhere strictly to dietary_notes. If substitutions are required due to dietary constraints, suggest appropriate swaps in notes without altering core recipe defaults silently.",
"Record any reasonable assumptions made due to ambiguous inputs (e.g., missing original servings, unclear unit) in the assumptions list."
],
"output_format": {
"type": "JSON strictly. Output only valid JSON without markdown wrapping or conversational text.",
"schema": {
"scaled_recipes": [
{
"name": "string",
"original_servings": "number",
"target_servings": "number",
"scale_factor": "number",
"ingredients": [
{ "item": "string", "amount": "string", "unit": "string" }
]
}
],
"grocery_list": [
{
"section": "string (one of store_sections)",
"items": [
{
"item": "string",
"buy": "string (purchasable package size/qty)",
"needed": "string (exact required quantity after pantry deduction)",
"used_in": ["array of recipe names"],
"leftover": "string or null"
}
]
}
],
"already_have": ["array of items fully covered by pantry"],
"assumptions": ["array of logical assumptions made"],
"notes": ["array of scaling caveats, dietary swaps, and prep notes"]
}
},
"quality_check": "Before producing output, verify: 1) Every ingredient appears exactly once across grocery_list and already_have. 2) Deductions and partial package calculations are mathematically correct. 3) Sections match store_sections order. 4) The output strictly parses as valid JSON."
}