sorting-groceries
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSorting Groceries by Aisle
按过道排序购物清单
Sort a user's grocery list by aisle order so they can walk the store in one efficient pass, no backtracking.
按过道顺序对用户的购物清单排序,让用户可以一次性高效逛完超市,无需走回头路。
When Triggered
触发场景
Activate when user:
- Uploads photos of grocery store aisle signs or markers
- Provides a grocery/shopping list alongside store layout info
- Asks to sort, organize, or optimize a shopping list by aisle
- Mentions aisle numbers, store maps, or shopping routes
当用户出现以下行为时触发:
- 上传超市过道标识或标记的照片
- 提供购物清单以及门店布局信息
- 要求按过道排序、整理或优化购物清单
- 提到过道编号、门店地图或购物路线
Inputs
所需输入
Two inputs are needed. Prompt for whichever is missing:
- Aisle sign images — Photos of aisle markers, hanging signs, or endcap labels. Each typically shows an aisle number and category keywords (e.g., "Aisle 5: Coffee, Tea, Cocoa").
- Grocery list — Text, pasted note, or photo of a handwritten list. Any format.
共需要两项输入,缺失任意一项时请提示用户提供:
- 过道标识图片 — 过道标记、悬挂标识或端架标签的照片。每张照片通常会显示过道编号和分类关键词(例如:"Aisle 5: Coffee, Tea, Cocoa")。
- 购物清单 — 文本、粘贴的笔记或手写清单的照片,支持任意格式。
Core Workflow
核心工作流程
Step 1: Build the Aisle Map
步骤1:构建过道地图
Read each uploaded aisle sign image. Extract:
- Aisle number (or label like "A5", "Aisle 12")
- Category descriptions exactly as printed (e.g., "Pasta, Sauces, Canned Vegetables")
Compile into a structured map:
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
Aisle 3: Pasta, Sauces, Canned Goods
...If an image is blurry or partially unreadable, note what was legible and flag uncertainty.
读取每张上传的过道标识图片,提取以下信息:
- 过道编号(或类似"A5"、"Aisle 12"的标签)
- 分类描述,与印刷内容完全一致(例如:"Pasta, Sauces, Canned Vegetables")
整理为结构化地图:
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
Aisle 3: Pasta, Sauces, Canned Goods
...如果图片模糊或部分无法读取,请记录可辨认的内容并标注不确定性。
Step 2: Identify Perimeter Zones
步骤2:识别周边区域
Grocery stores have perimeter sections without numbered aisles. Infer these from context or common knowledge when not covered by the uploaded signs:
| Zone | Typical items |
|---|---|
| Produce | Fresh fruits, vegetables, herbs, salad mixes |
| Deli | Sliced meats, prepared foods, rotisserie chicken |
| Bakery | Fresh bread, cakes, pastries (distinct from packaged bread aisle) |
| Dairy | Milk, cheese, yogurt, butter, eggs |
| Meat & Seafood | Fresh/frozen meat, poultry, fish |
| Frozen | Frozen meals, ice cream, frozen vegetables |
Position perimeter zones in typical store flow: Produce → Deli/Bakery → Meat/Seafood → Dairy → Frozen (usually along the store's outer walls, counterclockwise from entrance).
If the user's aisle photos already include these sections, use the actual signage instead of defaults.
超市存在没有编号过道的周边区域。如果上传的标识未覆盖这些区域,可根据上下文或常识推断:
| 区域 | 典型商品 |
|---|---|
| 生鲜区 | 新鲜水果、蔬菜、香草、沙拉菜 |
| 熟食区 | 切片肉类、预制食品、烤鸡 |
| 烘焙区 | 新鲜面包、蛋糕、糕点(与包装面包过道区分) |
| 乳制品区 | 牛奶、奶酪、酸奶、黄油、鸡蛋 |
| 肉禽海鲜区 | 新鲜/冷冻肉类、家禽、鱼类 |
| 冷冻食品区 | 冷冻餐、冰淇淋、冷冻蔬菜 |
按照典型的超市动线排列周边区域:生鲜区 → 熟食/烘焙区 → 肉禽海鲜区 → 乳制品区 → 冷冻食品区(通常沿超市外墙分布,从入口开始逆时针排列)。
如果用户上传的过道照片已经包含这些区域,请使用实际标识内容而非默认值。
Step 3: Parse the Grocery List
步骤3:解析购物清单
Extract every item from the user's list. Normalize:
- "2 lbs chicken breast" → item: chicken breast, quantity: 2 lbs
- "eggs" → item: eggs, quantity: (unspecified)
- "parm" → item: parmesan cheese
Preserve the user's original wording alongside any normalized form.
从用户清单中提取所有商品,进行标准化处理:
- "2磅鸡胸肉" → 商品:鸡胸肉,数量:2磅
- "鸡蛋" → 商品:鸡蛋,数量:(未指定)
- "帕玛森" → 商品:帕玛森奶酪
保留用户的原始表述以及对应的标准化形式。
Step 4: Match Items to Aisles
步骤4:将商品匹配到对应过道
For each grocery item, find the best aisle match:
- Direct keyword match — Item name appears in or closely matches an aisle's category text (e.g., "pasta" → "Aisle 3: Pasta, Sauces")
- Category inference — Item belongs to a category listed on a sign (e.g., "marinara" → "Aisle 3: Sauces")
- Perimeter zone match — Item is a fresh/perishable product that lives on the store perimeter (e.g., "bananas" → Produce)
- Best guess with note — Item could plausibly be in multiple aisles. Assign the most likely one and add a note (e.g., "honey — Aisle 4: Baking, but may also be in Aisle 7: Condiments")
为每件购物商品匹配最合适的过道:
- 关键词直接匹配 — 商品名称出现在过道分类文本中或与之高度匹配(例如:"意面" → "3号过道:意面、酱料")
- 分类推断 — 商品属于标识上列出的某个分类(例如:" marinara番茄酱" → "3号过道:酱料")
- 周边区域匹配 — 商品属于位于超市周边区域的生鲜/易腐产品(例如:"香蕉" → 生鲜区)
- 合理猜测并标注 — 商品可能位于多个过道时,分配最可能的过道并添加备注(例如:"蜂蜜 — 4号过道:烘焙用品,也可能位于7号过道:调味品")
Step 5: Output the Sorted List
步骤5:输出排序后的清单
Present the final list grouped by aisle in store-walk order:
🛒 Sorted Shopping List — [Store Name if known]
PRODUCE
□ bananas
□ baby spinach
□ 3 avocados
AISLE 1 — Bread, Bakery Items, Tortillas
□ whole wheat bread
□ flour tortillas
AISLE 2 — Cereal, Breakfast, Granola Bars
□ oatmeal
□ granola bars
AISLE 3 — Pasta, Sauces, Canned Goods
□ spaghetti
□ marinara sauce
□ canned black beans
...
DAIRY
□ 2% milk
□ shredded mozzarella
□ eggs (1 dozen)
⚠️ COULDN'T PLACE
□ birthday candles — not enough aisle info to determine location按照逛店动线顺序,按过道分组展示最终清单:
🛒 Sorted Shopping List — [Store Name if known]
PRODUCE
□ bananas
□ baby spinach
□ 3 avocados
AISLE 1 — Bread, Bakery Items, Tortillas
□ whole wheat bread
□ flour tortillas
AISLE 2 — Cereal, Breakfast, Granola Bars
□ oatmeal
□ granola bars
AISLE 3 — Pasta, Sauces, Canned Goods
□ spaghetti
□ marinara sauce
□ canned black beans
...
DAIRY
□ 2% milk
□ shredded mozzarella
□ eggs (1 dozen)
⚠️ COULDN'T PLACE
□ birthday candles — not enough aisle info to determine locationOutput Formatting Rules
输出格式规则
- Use checkbox format () so the list is easy to use on a phone
□ - Include the aisle's category description next to the aisle number for quick reference
- Keep the user's quantities and notes attached to each item
- Perimeter zones go in logical store-walk order (Produce first, Frozen/Dairy last)
- Numbered aisles go in ascending order between the perimeter zones
- Unmatched items go at the end under a clear "couldn't place" heading
- 使用复选框格式(),方便用户在手机上使用
□ - 在过道编号旁附上过道分类描述,方便快速查阅
- 保留每件商品对应的用户备注和数量信息
- 周边区域按合理的逛店动线排序(生鲜区在前,冷冻/乳制品区在后)
- 编号过道按升序排列在周边区域之间
- 无法匹配的商品放在末尾,归类到明确的"无法定位"标题下
Multi-Aisle Items
多过道陈列商品
Some items legitimately live in multiple locations. When this occurs:
- Place the item in the most common aisle for that store's layout
- Add a parenthetical note: "(also check Aisle 7)"
- Common examples: honey (baking vs condiments), tortilla chips (snacks vs Hispanic foods), butter (dairy vs baking)
部分商品确实会在多个位置陈列,遇到这种情况时:
- 将商品放在该门店布局中最常见的过道
- 添加括号备注:"(也可查看7号过道)"
- 常见示例:蜂蜜(烘焙区/调味品区)、玉米片(零食区/拉美食品区)、黄油(乳制品区/烘焙区)
Handling Ambiguity
歧义处理
- Blurry/unreadable signs: Note which aisles had unclear text. Ask user to confirm if critical items might be affected.
- Store-brand categories: Some stores use unusual groupings ("International Foods" might contain pasta in one store). Trust the sign text over assumptions.
- Missing aisles: If user uploaded signs for aisles 1-5 and 8-12 but not 6-7, note the gap. Items that don't match any uploaded aisle go to "couldn't place" rather than being guessed into missing aisles.
- 模糊/无法读取的标识:记录哪些过道的文本不清晰,如果可能影响重要商品的匹配,请提示用户确认。
- 门店自有分类:部分超市会使用特殊的分类方式("国际食品"区在某家超市可能包含意面),请优先以标识文本为准,而非默认假设。
- 缺失过道信息:如果用户上传了1-5号和8-12号过道的标识,但缺少6-7号过道的信息,请记录该缺口。无法匹配到已上传过道的商品将归入"无法定位"分类,而非猜测其属于缺失的过道。
Store Layout Reuse
门店布局复用
If the user mentions they shop at this store regularly:
- Present the aisle map as a clean reference they can save
- Suggest they can reuse it in future conversations by pasting just the map text instead of re-uploading photos
- Format the reusable map clearly:
📍 [Store Name] Aisle Map
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
...
Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen如果用户提到他们经常光顾该门店:
- 整理出清晰的过道地图供用户保存参考
- 建议用户后续对话时只需粘贴地图文本即可复用,无需重新上传照片
- 清晰格式化可复用的地图:
📍 [Store Name] Aisle Map
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
...
Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen