How srivardhxn/harmonysense-scheinder works
HarmonySense is an offline industrial HMI copilot. Operators inject or encounter alarm bursts; the backend correlates alarms, retrieves grounded SOP guidance, generates a local explanation, and applies a deterministic safety guardrail before presenting advice. Separate workflows cover live PLC-tag streaming, what-if safety checks, and shift handover summaries. The excerpts show the core correlation, retrieval, LLM, guardrail, and sandbox responsibilities; some endpoint wiring and data-flow details are documented only in the README, so uncertain links are omitted or marked unverified.
Main entry points: main.py FastAPI Runtime · retrieval.py SOP Retrieval · guardrail.py Safety Guardrail · frontend HMI Copilot
Components 18
Operator Experience
- HMI Copilot
copilot_app/frontend
Backend Runtime
- FastAPI Runtime
copilot_app/backend/main.py - Live Tag Stream
copilot_app/backend/main.py - Alarm Storm
copilot_app/backend/main.py - SOP Explanation
copilot_app/backend/main.py - Local Edge SLM
copilot_app/backend/llm_service.py - Shift Handover
copilot_app/backend/main.py
Safety and Analysis
- Alarm Correlator
copilot_app/backend/correlation.py - Safety Guardrail
copilot_app/backend/guardrail.py - What-If Checks
copilot_app/backend/main.py - Trajectory Sandbox
copilot_app/backend/chaos_sandbox.py
Plant Knowledge
- SOP Retrieval
copilot_app/backend/retrieval.py - Knowledge Database
copilot_app/data/knowledge_base.db - SOP Procedures
copilot_app/data/sops.json - Machine Context
copilot_app/data/machine_context.json - Shift Event Logs
copilot_app/data/synthetic_logs.json
Other components
- Operator
- Local Ollama
Connections 24
- Operator → HMI Copilot: uses
README.md - HMI Copilot → FastAPI Runtime: requests
- FastAPI Runtime → Live Tag Stream: streams tags
README.md - Operator → Alarm Storm: injects alarms
README.md - FastAPI Runtime → Alarm Storm: serves endpoints
copilot_app/backend/main.py - FastAPI Runtime → Alarm Correlator: correlates alarms
copilot_app/backend/main.py - Alarm Storm → Alarm Correlator: submits alarms
copilot_app/backend/main.py - FastAPI Runtime → SOP Explanation: serves explanation
copilot_app/backend/main.py - SOP Explanation → SOP Retrieval: retrieves SOPs
copilot_app/backend/main.py - SOP Retrieval → Knowledge Database: queries
copilot_app/backend/retrieval.py - SOP Retrieval → SOP Procedures: indexes procedures
copilot_app/backend/retrieval.py - SOP Retrieval → Machine Context: indexes tags
copilot_app/backend/retrieval.py - SOP Explanation → Local Edge SLM: generates guidance
copilot_app/backend/main.py - Local Edge SLM → Local Ollama: calls locally
copilot_app/backend/llm_service.py - FastAPI Runtime → Safety Guardrail: filters responses
copilot_app/backend/main.py - Safety Guardrail → Machine Context: checks identifiers
copilot_app/backend/guardrail.py - Operator → What-If Checks: proposes action
README.md - FastAPI Runtime → What-If Checks: serves checks
copilot_app/backend/main.py - What-If Checks → Safety Guardrail: checks restrictions
copilot_app/backend/main.py - Operator → Trajectory Sandbox: tests scenario
README.md - FastAPI Runtime → Trajectory Sandbox: registers router
copilot_app/backend/main.py - Operator → Shift Handover: requests report
README.md - FastAPI Runtime → Shift Handover: serves report
copilot_app/backend/main.py - Shift Handover → Shift Event Logs: reconciles events