Skip to content

EmreCelenli/SyncOpsAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SyncOpsAI β€” AI-Powered Equipment Monitoring

IBM Hackathon POC | Multi-Agent System | watsonx.ai | watsonx Orchestrate | RAG

Overview

SyncOpsAI monitors manufacturing equipment in real time and automatically detects anomalies, diagnoses root causes, and generates maintenance work orders. Three specialized AI agents replace a manual process that previously took hours.

How It Works

graph TB
    A[IoT Sensors] -->|Real-time Data| B[Agent 1: Telemetry Listener]
    B -->|Anomaly Detected| C[Agent 2: Diagnostic Expert]
    C -->|Query| D[RAG System]
    D -->|Context| E[Equipment Manuals]
    C -->|Generate| F[watsonx.ai Granite]
    F -->|Diagnosis| C
    C -->|Report| G[Agent 3: Orchestrator]
    G -->|Create| H[Work Order]
    G -->|Check| I[Inventory]

    style C fill:#4CAF50
    style F fill:#FF9800
    style D fill:#2196F3
Loading
Agent Role
Agent 1 β€” Telemetry Listener Monitors sensor data, detects anomalies, classifies severity
Agent 2 β€” Diagnostic Expert Queries equipment manuals via RAG, generates AI diagnosis using IBM Granite
Agent 3 β€” Orchestrator Checks inventory, creates prioritized work order

Quick Start

# 1. Install dependencies
pip install -r requirements.txt

# 2. Configure environment
cp .env.example .env
# Add your WATSONX_API_KEY, WATSONX_URL, WATSONX_PROJECT_ID

# 3. Start the Mock API
python mock_apis/app.py
# Runs on http://localhost:8787

# 4. Run the dashboard
streamlit run dashboard/app.py
# Opens at http://localhost:8501

Startup Commands

# Option 1: Start everything at once
cd dashboard && ./run_dashboard.sh

# Option 2: Start separately

# Terminal 1 β€” Mock API
cd mock_apis && python app.py

# Terminal 2 β€” Dashboard
cd dashboard && streamlit run app.py

Project Structure

SyncOpsAI/
β”œβ”€β”€ poc/                              # Core agent logic (POC)
β”‚   β”œβ”€β”€ agents.py                     # Agent 1, 2, 3 implementations
β”‚   β”œβ”€β”€ main.py                       # LangGraph workflow orchestration
β”‚   β”œβ”€β”€ state.py                      # Shared state schema
β”‚   β”œβ”€β”€ data.py                       # Demo scenarios & thresholds
β”‚   β”œβ”€β”€ dashboard.py                  # POC Streamlit interface
β”‚   β”œβ”€β”€ integration.py                # POC integration layer
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ dashboard/                        # Production dashboard
β”‚   β”œβ”€β”€ app.py                        # Streamlit app (4 tabs, live gauges)
β”‚   β”œβ”€β”€ run_dashboard.sh              # One-command startup script
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ mock_apis/                        # Mock REST API servers
β”‚   β”œβ”€β”€ app.py                        # Main Flask API
β”‚   β”œβ”€β”€ work_order_api.py             # Work order endpoints
β”‚   β”œβ”€β”€ inventory_api.py              # Inventory endpoints
β”‚   β”œβ”€β”€ technician_api.py             # Technician endpoints
β”‚   β”œβ”€β”€ test_api.py                   # API tests
β”‚   β”œβ”€β”€ start_all.sh                  # Start all API servers
β”‚   └── stop_all.sh                   # Stop all API servers
β”‚
β”œβ”€β”€ orchestrate/                      # watsonx Orchestrate
β”‚   β”œβ”€β”€ agents/
β”‚   β”‚   β”œβ”€β”€ telemetry_agent.yaml      # Agent 1 config
β”‚   β”‚   β”œβ”€β”€ diagnostic_agent.yaml     # Agent 2 config
β”‚   β”‚   └── orchestrator_agent.yaml   # Agent 3 config
β”‚   β”œβ”€β”€ tools/
β”‚   β”‚   β”œβ”€β”€ detect_anomaly.py         # Anomaly detection tool
β”‚   β”‚   β”œβ”€β”€ generate_diagnosis.py     # Diagnosis generation tool
β”‚   β”‚   β”œβ”€β”€ create_work_order.py      # Work order tool
β”‚   β”‚   └── check_inventory.py        # Inventory check tool
β”‚   └── import-all.sh                 # Deploy all agents & tools
β”‚
β”œβ”€β”€ tools/                            # watsonx Orchestrate tool YAMLs
β”‚   β”œβ”€β”€ work_order_api.yaml
β”‚   β”œβ”€β”€ inventory_api.yaml
β”‚   └── technician_api.yaml
β”‚
β”œβ”€β”€ bob_sessions/                     # IBM Bob session logs
β”‚
β”œβ”€β”€ logs/                             # API runtime logs
β”‚
β”œβ”€β”€ data.py                           # Sensor data scenarios
β”œβ”€β”€ manuals.py                        # Equipment manual knowledge base
β”œβ”€β”€ rag.py                            # RAG system
β”œβ”€β”€ diagnosis.py                      # Diagnostic engine
β”œβ”€β”€ agents.py                         # Root-level agent workflow
β”œβ”€β”€ watsonx_integration.py            # watsonx.ai Granite wrapper
β”œβ”€β”€ watson_orchestrate_integration.py # watsonx Orchestrate wrapper
β”œβ”€β”€ pinecone_integration.py           # Pinecone vector DB integration
β”œβ”€β”€ verify_ai_config.py               # AI configuration checker
β”œβ”€β”€ workspace_config.yaml             # Workspace configuration
└── requirements.txt                  # Root dependencies

Demo Scenarios

HVAC Overheating

  • Equipment: HVAC-001
  • Signal: Temperature 22Β°C β†’ 32Β°C (threshold: 28Β°C)
  • AI Diagnosis: Clogged air filter restricting airflow (92% confidence)
  • Parts: AF-2024 β€” $45, 30 min repair
  • Result: Work order created automatically in <5s

Motor Vibration

  • Equipment: MOTOR-001
  • Signal: Vibration 1.2 β†’ 4.5 Hz (threshold: 3.5 Hz)
  • AI Diagnosis: Worn roller bearings (88% confidence)
  • Parts: RB-500 + AS-KIT β€” $310, 2–3 hrs repair
  • Result: Work order created automatically in <5s

Tech Stack

Layer Technology
AI Diagnosis IBM watsonx.ai β€” Granite-13B-Chat-v2
Agent Orchestration IBM watsonx Orchestrate
Development Assistant IBM Bob
Workflow Graph LangGraph
Vector DB Pinecone (production)
UI Streamlit + Plotly
API Flask
Language Python 3.9+

IBM Technology Usage

IBM Bob β€” Used throughout development for architecture planning, parallel workstream design, and code generation across all modules.

IBM watsonx.ai β€” Powers Agent 2. Builds a prompt from sensor readings and RAG-retrieved manual context, calls Granite-13B-Chat-v2, and returns a structured JSON diagnosis with root cause, confidence score, and recommended actions. Falls back to template-based diagnosis if unavailable.

IBM watsonx Orchestrate β€” Three agent YAML configurations and four @tool-decorated Python functions are implemented and ready for deployment. Live connection is the immediate next step β€” no structural changes required.

Performance

Metric Value
Anomaly detection <1ms
AI diagnosis 2–5s
End-to-end (anomaly β†’ work order) <5s
Confidence score (AI mode) 85–95%
Diagnosis time vs manual 95% faster

Status

Component Status
Multi-agent workflow βœ… Complete
watsonx.ai integration βœ… Complete
RAG system βœ… Complete
Mock API (10 endpoints) βœ… Complete
Streamlit dashboard βœ… Complete
watsonx Orchestrate structure βœ… Complete
Pinecone integration 🏭 Production
Live Orchestrate connection 🏭 Production

Built for IBM Hackathon β€” Team Manual-Miners

About

Team Manual-Miners, Winner of the IBM Bob Hackathon πŸ†

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors