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
{modelStatus.loaded ? 'Model loaded' : 'No model found'}
R² = {modelStatus.metrics.r2} | MAE = {modelStatus.metrics.mae}%
)}