运行时依赖
安装命令
点击复制技能文档
Mercadona API - 代理技能参考 基地址:https://mercaapi.sgn.space/api 交互文档:https://mercaapi.sgn.space/api/docs OpenAPI 模式:https://mercaapi.sgn.space/openapi.json
概述 非官方的 Mercadona(西班牙超市)产品 REST API,包含营养信息。除非特别说明,所有产品数据均为每100g。非食品项的营养信息可能为 null。
端点 GET /api/products/ 列出所有产品,支持分页。 参数:
- skip(int,默认 0)- 偏移量
- limit(int,默认 100,最大约 5000)- 结果数量
GET /api/products/?skip=0&limit=50 返回:ProductPublic 对象数组。
GET /api/products/{product_id} 通过产品 ID 获取单个产品。
GET /api/products/24511 返回:ProductPublic 对象。
GET /api/products/closest 模糊匹配产品名称和/或单位价格。适合搜索食材或产品的 human-readable 名称。 参数:
- name(str)- 产品名称(URL 编码)
- unit_price(float,选项)- 按单位价格过滤
- limit(int,默认 10)- 最大结果数
GET /api/products/closest?name=salmon+congelado&limit=5 GET /api/products/closest?name=pechuga+pollo&limit=3 GET /api/products/closest?name=avena+copos&limit=2 返回:ProductMatch 对象数组,按模糊匹配分数排名。
GET /api/categories/ 列出所有产品类别。
GET /api/categories/ 返回:CategoryPublic 对象数组,包含 id、name、parent_id。
POST /api/ticket/ 上传 Mercadona 收据(图像或 PDF)并获取 AI 提取的产品匹配和营养统计。 表单数据(multipart):
- file(file,选项)- 图像或 PDF 文件
- url(str,选项)- 收据 URL
POST /api/reports/wrong-match 报告产品匹配错误。 正文:{ "ticket_item_id": int }
POST /api/reports/wrong-nutrition 报告营养数据错误。 正文:{ "product_id": str }
数据模型 ProductPublic { "id": "24511", "ean": "8480000245113", "slug": "lomos-salmon-hacendado", "brand": "Hacendado", "name": "Lomos de salmón sin piel y sin espinas Hacendado congelado", "price": 6.40, "category_id": 42, "description": "...", "origin": null, "packaging": "Paquete", "unit_name": "ud.", "unit_size": 0.25, "is_variable_weight": false, "is_pack": false, "is_food": true, "category": { "id": 42, "name": "Pescados congelados", "parent_id": 5 }, "images": [ { "zoom_url": "https://prod-mercadona.imgix.net/...", "regular_url": "...", "thumbnail_url": "...", "perspective": 1, "id": 123, "product_id": "24511" } ], "nutritional_information": { "calories": 224.0, "total_fat": 16.0, "saturated_fat": 3.5, "polyunsaturated_fat": null, "monounsaturated_fat": null, "trans_fat": null, "total_carbohydrate": 0.0, "dietary_fiber": 0.0, "total_sugars": 0.0, "protein": 20.0, "salt": 0.3, "id": 999, "product_id": "24511" }, "price_history": [] }
所有营养值均为每 100g。字段可能为 null 如果不可用。is_food:true 表示产品有营养信息。unit_size 为 kg(或 L,用于液体)。
示例: 0.25 = 250g 包(例如一块鲑鱼片) 1.0 = 1kg(例如一袋西兰花) 6.0 = 6L(例如一盒牛奶)
对于包装产品(is_pack:true),unit_size 为包装总重量。
营养计算 所有 nutritional_information 值均为每 100g 产品。要计算给定份量(以克为单位)的营养值: nutrient_amount = (nutrient_per_100g / 100) portion_grams
示例:250g 鲑鱼片(224 kcal/100g,20g 蛋白质/100g): 热量:(224 / 100) 250 = 560 kcal 蛋白质:(20 / 100)* 250 = 50g
常见搜索查询(西班牙产品名称) 蛋白质:salmon congelado 或 lomos salmon pechuga pollo 或 tiras pechuga pollo carne picada vacuno 或 carne picada filetes lomo cerdo secreto iberico jamon serrano atun natural huevos
乳制品/蛋白质:queso fresco batido yogur griego kefir natural leche semidesnatada
碳水化合物:arroz redondo pan molde integral pasta copos avena
蔬菜:brocoli congelado edamame tomate frito
其他:aguacate semillas chia chocolate negro 85
AI 代理提示 始终使用 /api/products/closest 进行食材搜索 - 它处理西班牙和部分匹配的模糊匹配。 在计算宏量营养素之前检查 nutritional_information 是否为 null。 一些产品(非食品,新品)可能没有营养数据。 is_food:true 由服务器计算,基于是否存在营养信息和值。 使用它来过滤食品产品,当分页所有产品时。 对于餐计划,计算 unit_size 的份数: 一包鲑鱼(unit_size=0.25)=