用 Python 构建一个家人过敏食材管理与菜谱自动规避提醒系统,用于说明「如何让饮食数据变成家庭健康安全的保护机制」。

 

一、实际应用场景描述

 

在慢病管理、家庭健康管理以及健康管理课程中,过敏食材管理常用于:

 

- 家庭日常备餐(尤其是儿童、老人)

- 学校、托育机构的配餐安全

- 餐饮企业的过敏原标注

- 健康管理课程中的食品安全与数据建模教学

 

典型数据包括:

 

- 家庭成员姓名

- 过敏食材清单

- 每日菜谱(含食材列表)

 

但在现实中:

 

- 过敏信息靠“口头提醒”

- 菜谱与过敏清单是两张皮

- 容易在复杂备餐场景中遗漏

 

二、引入痛点

 

当前常见问题:

 

1. 记忆不可靠:家人多、过敏食材多,容易忘

2. 无系统化校验:菜谱不会自动检查过敏原

3. 风险滞后:吃完才发现不合适

 

痛点总结:

 

缺少一个可配置、可复用、非医疗诊断性的过敏食材自动规避与提醒工具。

 

三、核心逻辑讲解(工程建模视角)

 

⚠️ 说明:以下为工程规则模型,不等同于临床过敏诊疗标准。

 

核心输入

 

字段 含义

family_member 家庭成员

allergens 过敏食材集合

daily_menu 当日菜谱(食材列表)

 

核心逻辑

 

1. 匹配检查:

   - 遍历菜谱中每个食材

   - 判断是否在家庭成员的过敏原集合中

2. 冲突标记:

   - 若存在交集 → 标记为“存在风险”

3. 提醒生成:

   - 列出具体冲突食材

   - 给出替代建议(工程层面)

 

四、Python 核心代码(模块化 + 清晰注释)

 

1️⃣ 数据结构定义 

"models.py"

 

"""

过敏食材与菜谱数据结构

"""

 

class FamilyMember:

    def __init__(self, name, allergens):

        """

        allergens: set,例如 {"花生", "虾"}

        """

        self.name = name

        self.allergens = allergens

 

 

class DailyMenu:

    def __init__(self, date, ingredients):

        """

        ingredients: list,例如 ["鸡肉", "花生", "青菜"]

        """

        self.date = date

        self.ingredients = ingredients

 

2️⃣ 过敏校验模块 

"checker.py"

 

"""

过敏食材自动校验

"""

 

def check_allergen_conflicts(member, menu):

    conflicts = set(menu.ingredients) & member.allergens

    return conflicts

 

3️⃣ 提醒生成模块 

"advisor.py"

 

"""

过敏规避提醒生成

"""

 

def allergy_advice(member, conflicts):

    if not conflicts:

        return f"{member.name}:今日菜谱安全,无过敏风险。"

 

    conflict_str = "、".join(conflicts)

    return (

        f"{member.name}:菜谱中含过敏食材({conflict_str}),"

        "建议替换为其他安全食材。"

    )

 

4️⃣ 主程序 

"main.py"

 

from models import FamilyMember, DailyMenu

from checker import check_allergen_conflicts

from advisor import allergy_advice

 

if __name__ == "__main__":

    member = FamilyMember("小明", {"花生", "虾"})

    menu = DailyMenu("2026-06-11", ["鸡肉", "花生", "西兰花"])

 

    conflicts = check_allergen_conflicts(member, menu)

    advice = allergy_advice(member, conflicts)

 

    print(advice)

 

五、README.md

 

# Family Allergy Guard(家庭过敏食材规避工具)

 

## 项目定位

本工具用于教学与技术演示,展示如何基于家人过敏食材清单,

自动校验每日菜谱并生成规避提醒。

 

⚠️ 本项目不构成医疗或营养建议,仅用于工程建模练习。

 

## 功能

- 家庭成员过敏信息管理

- 菜谱食材自动校验

- 过敏风险提醒生成

 

## 使用方式

 

bash

 

python main.py

 

 

## 依赖

- Python 3.8+

 

## 适用人群

- 全栈开发者

- 家庭健康管理实践者

- 健康管理课程讲师

 

六、使用说明(User Guide)

 

1. 构造 

"FamilyMember" 与 

"DailyMenu" 数据

2. 使用 

"check_allergen_conflicts" 检测冲突

3. 调用 

"allergy_advice" 获取提醒

4. 可扩展为:

   - 多成员批量校验

   - 一周菜谱自动扫描

   - 与购物清单联动

 

七、核心知识点卡片(去营销化)

 

📌 知识点 1:过敏管理本质是规则匹配问题

工程上用集合(set)是最优解。

📌 知识点 2:系统目标是“防错”,不是治疗

永远不要替代专业医生。

📌 知识点 3:家庭健康系统强调可解释性

用户需要知道“为什么不能吃”。

 

八、总结(中立立场)

 

✅ 本程序展示了一个通用、可扩展的家庭饮食安全模型

 

✅ 强调数据录入 → 规则校验 → 可解释提醒的工程闭环

 

✅ 非常适合用于家庭健康管理、课程案例、技术博客。

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐