HACCP AI (Hazard Analysis and Critical Control Points)
HACCP (Hazard Analysis and Critical Control Points) is a mandatory food safety management system (CU TR 021/2011). AI automates the monitoring of critical control points and the generation of mandatory documentation.
Monitoring of critical control points (CCP)
Automated monitoring of CCPs:
Each CCP has Critical Limits. AI monitors their compliance in real time:
import pandas as pd
import numpy as np
from dataclasses import dataclass
from datetime import datetime
@dataclass
class CriticalControlPoint:
"""Описание критической контрольной точки HACCP"""
ccp_id: str
description: str
hazard: str # биологическая / химическая / физическая
critical_limit_min: float
critical_limit_max: float
monitoring_frequency_min: int # минимальная частота мониторинга (мин.)
corrective_action: str
class HACCPMonitor:
"""Мониторинг CCP с автоматической регистрацией отклонений"""
def __init__(self, ccps: list[CriticalControlPoint]):
self.ccps = {ccp.ccp_id: ccp for ccp in ccps}
self.monitoring_log = []
self.deviations = []
def record_measurement(self, ccp_id, value, operator_id, timestamp=None):
"""Зарегистрировать измерение CCP"""
ts = timestamp or datetime.now()
ccp = self.ccps[ccp_id]
is_compliant = ccp.critical_limit_min <= value <= ccp.critical_limit_max
record = {
'ccp_id': ccp_id,
'timestamp': ts.isoformat(),
'value': value,
'unit': 'celsius' if 'temp' in ccp_id.lower() else 'generic',
'operator_id': operator_id,
'is_compliant': is_compliant,
'critical_limit_min': ccp.critical_limit_min,
'critical_limit_max': ccp.critical_limit_max,
}
self.monitoring_log.append(record)
if not is_compliant:
deviation = {
**record,
'deviation_magnitude': abs(value - (ccp.critical_limit_max
if value > ccp.critical_limit_max
else ccp.critical_limit_min)),
'corrective_action_required': ccp.corrective_action,
'status': 'open',
'product_held': True # продукт задержан до устранения
}
self.deviations.append(deviation)
self._trigger_alert(deviation)
return is_compliant
def _trigger_alert(self, deviation):
"""Уведомление ответственного за HACCP"""
print(f"HACCP DEVIATION: CCP {deviation['ccp_id']} - "
f"value {deviation['value']} out of range "
f"[{deviation['critical_limit_min']}, {deviation['critical_limit_max']}]")
Typical CCPs in food production
Heat treatment (pasteurization/sterilization): - CL: temperature ≥72°C with HTST of milk pasteurization ≥15 seconds - Monitoring: thermometer every 30 seconds - Corrective action: reprocessing or disposal
Cooling: - CL: Cooling from 60°C to 4°C in ≤6 hours - Monitoring: Continuous temperature logger in product
Metal detection/fluoroscopy: - CL: no metal inclusions ≥3mm (test samples: Fe 2.0mm, NFe 2.5mm, SS 3.0mm) - Monitoring: every 30 minutes with test pieces
Automatic documentation
Generating HACCP records:
21 CFR Part 11 and ISO 22000 require: - Electronically signed records - Impossibility of modification without an audit trail
AI automation: - Sensor data → automatic filling of CCP monitoring forms - If the operator has not confirmed within 30 minutes → alert the manager - End of shift → automatic generation of HACCP report for the shift
def generate_haccp_shift_report(monitoring_log, deviations, date, shift):
"""Формирование ежесменного HACCP-отчёта"""
total_measurements = len(monitoring_log)
compliant_pct = sum(1 for r in monitoring_log if r['is_compliant']) / total_measurements * 100
report = {
'date': str(date),
'shift': shift,
'generated_at': datetime.now().isoformat(),
'summary': {
'total_measurements': total_measurements,
'compliance_rate': f'{compliant_pct:.1f}%',
'deviations_count': len(deviations),
'open_deviations': sum(1 for d in deviations if d['status'] == 'open')
},
'ccp_summary': {},
'deviations': deviations
}
# CCP-детализация
for ccp_id in {r['ccp_id'] for r in monitoring_log}:
ccp_records = [r for r in monitoring_log if r['ccp_id'] == ccp_id]
values = [r['value'] for r in ccp_records]
report['ccp_summary'][ccp_id] = {
'measurements': len(ccp_records),
'min': min(values),
'max': max(values),
'mean': np.mean(values)
}
return report
Internal audits and verification
AI audit assistant:
NLP system for conducting internal HACCP audits: - ISO 22000, FSSC 22000 checklist - standardized questions - Automatic assessment of responses: compliant / non-compliant / partially compliant - Generation of a non-conformity report with recommended corrective actions
Development time: 2–4 months for a HACCP AI system with CCP monitoring, automatic documentation and report generation.







