--- title: FactoryFlow emoji: ⚙️ colorFrom: red colorTo: yellow sdk: docker app_port: 7860 pinned: false --- # FactoryFlow **Autonomous predictive maintenance and parts procurement for small manufacturers.** Vibration sensor → MOMENT-1-large anomaly detection on AMD MI300X → CrewAI agents (Qwen3-8B) → Proxlock authorization → X402 programmable payment. End-to-end autonomous procurement with one human-in-the-loop step. Built for the **AMD x LabLab.ai Developer Hackathon** (May 2026). ## Live demo - **AMD MI300X (DigitalOcean):** http://165.245.133.72:7860 — full pipeline running on AMD GPU - **Hugging Face Space (CPU mirror):** https://huggingface.co/spaces/oabolade23/factoryflow - **Source:** https://github.com/oabolade/factoryflow --- ## What it does Manufacturers lose **~$50k per hour** of unplanned machine downtime. FactoryFlow turns a vibration sensor on the factory floor into an autonomous procurement loop: 1. A simulated RPi sensor streams 512-point FFT windows over an MCP server 2. **MOMENT-1-large** scores each window for bearing/gear/imbalance faults on AMD GPU hardware (MI300X via ROCm) 3. The **Engineer Agent** maps the dominant fault frequency to a part SKU 4. The **Procurement Agent** (powered by **Qwen3-8B**) scrapes suppliers via Apify and selects the best price-vs-RUL trade-off 5. **Proxlock** gates the purchase with a human authorization step 6. **X402** executes the payment programmatically From sensor spike to confirmed PO: under a minute. --- ## Architecture ``` [RPi sensor sim] │ MCP / SSE ▼ [AMD MI300X / ROCm] MOMENT-1-large → anomaly_score, rul_hours, dominant_hz Qwen3-8B → agent reasoning backbone │ ▼ [CrewAI Crew] Engineer Agent → identify SKU from fault signature Procurement Agent → Apify scrape, pick best supplier │ ▼ [Proxlock] ── human-in-the-loop authorization │ ▼ [X402] ── autonomous programmable payment │ ▼ [Gradio HF Space] — live demo UI (this Space) ``` --- ## Prize tracks - **AMD MI300X** — MOMENT inference + Qwen3-8B serving both run on AMD ROCm hardware - **Qwen / vLLM** — Qwen3-8B is the CrewAI LLM backbone via vLLM (`OPENAI_API_BASE` swap) - **Hugging Face** — this Docker Space; share the URL to drive likes - **X402** — autonomous payment execution on agent decision - **MCP** — sensor stream is exposed as an MCP server with SSE transport - **Apify** — supplier discovery via the `apify/web-scraper` actor - **MindsDB** — procurement history queried via SQL+AI --- ## Local run ```bash python3.12 -m venv .venv && source .venv/bin/activate pip install torch # CPU/MPS for local dev pip install -r requirements.txt pip install --no-deps momentfm==0.1.4 # see note below cp .env.example .env # add OPENAI_API_KEY PYTHONPATH=. python -m src.demo.app ``` Open http://localhost:7860. The chart auto-polls every 2 seconds. ### Smoke tests by checkpoint ```bash PYTHONPATH=. python -m src.inference.rocm_check # device detection PYTHONPATH=. python scripts/smoke.py # MOMENT inference PYTHONPATH=. python -m src.agents.orchestrator # full agent cycle PYTHONPATH=. python -m src.sensor.mcp_server # MCP SSE on :8765 ``` --- ## AMD GPU evidence Run `python -m src.inference.rocm_check` on the AMD cloud box. Expected output: ``` torch: 2.x.x+rocm6.x backend: rocm torch_device: cuda name: AMD Instinct MI300X vram_gb: 192.0 runtime_version: 6.x ✓ AMD ROCm GPU detected — ready for MI300X demo run. ``` A screenshot of this output is included in the LabLab submission. --- ## Demo mode vs live `DEMO_MODE=true` (default) keeps the demo working without third-party API keys by using fixtures for Apify, mock approvals for Proxlock, and simulated transactions for X402. The UI is visually identical to live operation. To run live, set `DEMO_MODE=false` and fill in: `APIFY_API_TOKEN`, `PROXLOCK_API_KEY` + `PROXLOCK_DEVICE_ID`, `X402_API_KEY` + `X402_MERCHANT_ID`, and (optional) `MINDSDB_*`. --- ## Notes - **`momentfm` install:** the package on PyPI hard-pins old `numpy` / `transformers` that conflict with CrewAI and Gradio. Install it with `--no-deps` after the rest of `requirements.txt` — the actual code works fine on modern stacks. - **HF Space hardware:** this Space runs MOMENT on CPU (~1–2s per window). The live judge demo runs on a separate AMD MI300X cloud box. --- ## Repo layout See `CLAUDE.md` and `docs/architecture.md` for the full layout and per-file responsibilities. `memory.md` tracks live build state.