import React, { useState, useEffect } from 'react'; import axios from 'axios'; import KPICard from './KPICard'; import API_BASE_URL from '../apiConfig'; export const MaterialPredictor = () => { const [scans, setScans] = useState(1300); const [failRate, setFailRate] = useState(97); const [prediction, setPrediction] = useState(null); const [modelStatus, setModelStatus] = useState(null); useEffect(() => { axios.get(`${API_BASE_URL}/api/model/status`).then(res => { setModelStatus(res.data); }).catch(() => setModelStatus({loaded: false})); }, []); const handlePredict = async () => { try { const res = await axios.post(`${API_BASE_URL}/api/predict`, { scans, fail_rate: failRate }); setPrediction(res.data); } catch(e) { console.error(e); } }; if (!modelStatus) return
Loading...
; return (

Prediction Model

{modelStatus.loaded ? 'Model loaded' : 'No model found'}

{modelStatus.loaded && (

R² = {modelStatus.metrics.r2} | MAE = {modelStatus.metrics.mae}%

)}

Forecast Parameters

setScans(parseInt(e.target.value))} />
setFailRate(parseInt(e.target.value))} />
{prediction && (
)}
); };