How francismdpro/laya_test_bench works
Laya Test Bench is a small CLI and Flask-based web app for running typed questions against JSON states using the external Laya decision engine. The main workflow is to load or edit a {state, questions} input, validate it, call Laya once for predictions, then format and display decisions, probability distributions, routing, and timing. The web app also lists, reads, writes, and deletes JSON files. Source excerpts are partial, so the graph omits uncertain internal UI/API wiring beyond documented and visible calls.
Main entry points: app_laya.py Flask app · laya_run.py CLI runner · 01_meteo.json Domain examples · questions.json JSON inputs
Components 13
User interfaces
- CLI runner
laya_run.py - Flask app
app_laya.py - Editor and results UI
app_laya.py
Prediction execution
- CLI input loader
laya_run.py - Payload validation
app_laya.py - Laya Router
- CLI result formatter
laya_run.py - Web result display
app_laya.py
Input files
- JSON inputs
questions.json - Domain examples
01_meteo.json
Other components
- User
- Web browser
- Laya checkpoints
Connections 19
- User → CLI runner: runs command
- CLI runner → CLI input loader: loads input
- CLI input loader → JSON inputs: reads JSON
- CLI input loader → CLI runner: returns data
- CLI runner → Laya Router: predicts
- Laya Router → Laya checkpoints: loads model
- Laya Router → CLI result formatter: returns predictions
- CLI result formatter → User: prints results
- Web browser → Editor and results UI: edits and runs
- Editor and results UI → Flask app: calls API
- Flask app → JSON inputs: lists and edits
- Flask app → Payload validation: validates payload
- Payload validation → Flask app: returns data
- Flask app → Laya Router: predicts
- Laya Router → Flask app: returns predictions
- Flask app → Web result display: supplies result
- Web result display → Editor and results UI: renders results
- Domain examples → CLI input loader: example input
- Domain examples → Flask app: example file