βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β USER INTERFACE (Browser) β
β http://localhost:3000 β
ββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
β HTTP/REST
β
ββββββββββββββΌβββββββββββββ
β React Frontend β
β SettingsTabs.js β
β β
β ββββββββββββββββββββ β
β β ModelTrainingTab β β
β β β β
β β ββββββββββββββββ β β
β β β Example Form β β β
β β β - Question β β β
β β β - Sensors β β β
β β β - SPARQL β β β
β β ββββββββββββββββ β β
β β β β
β β ββββββββββββββββ β β
β β βExamples Tableβ β β
β β β - Edit β β β
β β β - Delete β β β
β β ββββββββββββββββ β β
β β β β
β β ββββββββββββββββ β β
β β βTraining Mon. β β β
β β β - Progress β β β
β β β - Logs β β β
β β β - Status β β β
β β ββββββββββββββββ β β
β β β β
β β ββββββββββββββββ β β
β β βModel Manager β β β
β β β - List β β β
β β β - Deploy β β β
β β ββββββββββββββββ β β
β ββββββββββββββββββββ β
ββββββββββββββ¬βββββββββββββ
β
β REST API Calls
β
ββββββββββββββΌβββββββββββββ
β Flask Backend β
β http://localhost:6000 β
β β
β ββββββββββββββββββββ β
β β t5_training_bp β β
β β β β
β β API Endpoints: β β
β β ββ GET /sensors β β
β β ββ GET /examples β β
β β ββ POST/PUT/DEL β β
β β ββ POST /train β β
β β ββ GET /status β β
β β ββ POST /deploy β β
β β ββ GET /models β β
β ββββββββββββββββββββ β
βββββββββββ¬ββββ¬ββββββββββββ
β β
βββββββββββββββββββ ββββββββββββββββββββ
β β
β File I/O β Subprocess
β β
ββββββββββΌβββββββββ ββββββββββΌβββββββββ
β Data Files β β Python Script β
β β β β
β βββββββββββββββ β β quick_train.py β
β βsensor_list β β β β
β β.txt β β β βββββββββββββββ β
β β(680 sensors)β β β βLoad Dataset β β
β βββββββββββββββ β β ββββββββ¬βββββββ β
β β β β β
β βββββββββββββββ β β ββββββββΌβββββββ β
β βcorrelation_ β ββββββββββββββββββββββββΌββ€Tokenize Dataβ β
β βfixes.json β β Read/Write β ββββββββ¬βββββββ β
β β(10 examples)β β β β β
β βββββββββββββββ β β ββββββββΌβββββββ β
β β β βFine-tune T5 β β
β βββββββββββββββ β β βModel β β
β βModel β β β ββββββββ¬βββββββ β
β βCheckpoints β β β β β
β β β β β ββββββββΌβββββββ β
β β- checkpoint-β ββββββββββββββββββββββββΌββ€Save Model β β
β β quick-fix β β Write β β(checkpoint- β β
β β β β β β quick-fix) β β
β β- checkpoint-β β β βββββββββββββββ β
β β 3 (prod) β β β β
β β β β β Stream stdout β
β β- backups β β β for logs β
β βββββββββββββββ β βββββββββββββββββββ
βββββββββββββββββββ β
β
ββββββββββΌβββββββββ
β Transformers β
β Library β
β β
β - T5Tokenizer β
β - T5Model β
β - Trainer β
βββββββββββββββββββ
User Input (Form)
β
βΌ
βββββββββββββββ
β React State β
β - question β
β - sensors β
β - sparql β
β - category β
β - notes β
ββββββββ¬βββββββ
β
β POST /api/t5/examples
βΌ
βββββββββββββββββββ
β Backend Handler β
β - Validate data β
β - Load JSON β
β - Append exampleβ
β - Save JSON β
ββββββββ¬βββββββββββ
β
βΌ
βββββββββββββββββββ
βcorrelation_fixesβ
β.json β
β[...existing, β
β new_example] β
ββββββββ¬βββββββββββ
β
β Response
βΌ
βββββββββββββββ
βReact Update β
β- Clear form β
β- Reload listβ
β- Show alert β
βββββββββββββββ
User Clicks "Start Training"
β
βΌ
ββββββββββββββββ
βPOST /train β
β{epochs: 10} β
ββββββββ¬ββββββββ
β
βΌ
ββββββββββββββββββββ
βBackend β
β- Create job_id β
β- Init job state β
β- Start thread β
ββββββββ¬ββββββββββββ
β
ββββββββββββββββββββ
β β
β Return β Background Thread
β job_id β
β βΌ
β ββββββββββββββββββ
β βRun quick_train β
β β.py subprocess β
β ββββββββββ¬ββββββββ
β β
β β Stream Output
β βΌ
β ββββββββββββββββββ
β βUpdate job: β
β β- logs β
β β- progress β
β β- status β
β ββββββββββ¬ββββββββ
β β
βΌ βΌ
ββββββββββββββββ ββββββββββββββββββ
βFrontend β βTraining β
β- Receive β βCompletes β
β job_id β β- Save model β
β- Start poll β β- Update status β
ββββββββ¬ββββββββ ββββββββββ¬ββββββββ
β β
β Poll every 2s β
β β
β GET /train/:id/status
ββββββββββββββββββββ
β
βΌ
ββββββββββββββββ
βUpdate UI β
β- Progress barβ
β- Logs β
β- Status β
ββββββββββββββββ
Training Completed
β
βΌ
User Clicks "Deploy Model"
β
βΌ
ββββββββββββββββββ
βPOST /deploy β
β{job_id: "..."}β
ββββββββ¬ββββββββββ
β
βΌ
ββββββββββββββββββββββββββ
βBackend β
β1. Validate job_id β
β2. Check status=completeβ
β3. Locate trained model β
ββββββββ¬ββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββ
βBackup Current Model β
βcheckpoint-3 β β
βcheckpoint-3-backup- β
β YYYYMMDD_HHMMSS β
ββββββββ¬ββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββ
βCopy New Model β
βcheckpoint-quick-fix β β
βcheckpoint-3 β
ββββββββ¬ββββββββββββββββββ
β
β Success Response
βΌ
ββββββββββββββββββββββββββ
βFrontend β
β- Show success message β
β- Remind restart needed β
β- Reload models list β
ββββββββββββββββββββββββββ
β
β User Action Required
βΌ
ββββββββββββββββββββββββββ
βGo to Action Server Tab β
βClick "Restart Server" β
ββ New model active! β
ββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β React Component Lifecycle β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β componentDidMount / useEffect([]) β
β β β
β βββΊ loadSensors() β
β β β β
β β βββΊ GET /api/t5/sensors β
β β β β
β β βββΊ setSensors([...]) β
β β β
β βββΊ loadExamples() β
β β β β
β β βββΊ GET /api/t5/examples β
β β β β
β β βββΊ setExamples([...]) β
β β β
β βββΊ loadModels() β
β β β
β βββΊ GET /api/t5/models β
β β β
β βββΊ setAvailableModels([...]) β
β β
β User Interaction β
β β β
β βββΊ handleAddExample() β
β β β β
β β βββΊ POST /api/t5/examples β
β β β β β
β β β βββΊ loadExamples() β
β β β β
β β βββΊ clearForm() β
β β β
β βββΊ handleStartTraining() β
β β β β
β β βββΊ POST /api/t5/train β
β β β β
β β βββΊ setTrainingJobId(...) β
β β β β
β β βββΊ Triggers polling effect β
β β β
β βββΊ handleDeployModel() β
β β β
β βββΊ POST /api/t5/deploy β
β β β
β βββΊ loadModels() β
β β
β useEffect([trainingJobId, trainingStatus]) β
β β β
β βββΊ if (trainingStatus === 'running') β
β β β
β βββΊ setInterval(() => { β
β pollTrainingStatus(trainingJobId) β
β }, 2000) β
β β β
β βββΊ GET /api/t5/train/:id/status β
β β β
β βββΊ setTrainingProgress(...) β
β βββΊ setTrainingLogs(...) β
β βββΊ setTrainingStatus(...) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
OntoBot/
β
βββ microservices/
β βββ app.py [Modified]
β βββ requirements.txt [Existing]
β βββ blueprints/
β βββ t5_training.py [NEW]
β
βββ rasa-frontend/
β βββ package.json [Modified]
β βββ src/
β βββ pages/
β βββ SettingsTabs.js [Modified]
β βββ ModelTrainingTab.js [NEW]
β
βββ rasa-bldg1/
β βββ actions/
β βββ sensor_list.txt [Used by API]
β
βββ Transformers/
β βββ t5_base/
β βββ quick_train.py [Called by API]
β βββ GUI_TRAINING_GUIDE.md [NEW]
β βββ training/
β β βββ bldg1/
β β βββ correlation_fixes.json [Read/Write]
β βββ trained/
β βββ checkpoint-3/ [Production]
β βββ checkpoint-quick-fix/ [Training Output]
β βββ checkpoint-3-backup-*/ [Auto Backups]
β
βββ Documentation/ [NEW]
βββ T5_GUI_SETUP.md
βββ T5_GUI_IMPLEMENTATION.md
βββ QUICKSTART_GUI.md
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend Stack β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ React 19.0.0 - UI Framework β
β β’ React Bootstrap - UI Components β
β β’ react-select 5.8.0 - Multi-select Dropdown β
β β’ React Router - Navigation β
β β’ Axios - HTTP Client β
β β’ Bootstrap 5.3.3 - CSS Framework β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend Stack β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Flask 2.0.3 - Web Framework β
β β’ Flask-CORS - CORS Support β
β β’ Python 3.x - Runtime β
β β’ Threading - Background Jobs β
β β’ Subprocess - Script Execution β
β β’ JSON - Data Storage β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ML/Training Stack β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β’ Transformers - T5 Model β
β β’ PyTorch - Deep Learning β
β β’ Datasets - Data Loading β
β β’ T5-base - Base Model β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Current Implementation β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Network: β
β β’ Localhost only (3000, 6000) β
β β’ No external access β
β β’ CORS enabled for local development β
β β
β Authentication: β
β β’ None (local development) β
β β’ No user management β
β β
β Data Validation: β
β β’ Basic form validation β
β β’ Required field checks β
β β’ File existence checks β
β β
β Performance: β
β β’ Single training job at a time β
β β’ 2-second polling interval β
β β’ Background thread processing β
β β’ No request queuing β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
This architecture provides a complete, maintainable solution for T5 model training with clear separation of concerns and scalable design patterns.