import { useState } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from './ui/Card'; import { Button } from './ui/Button'; import { Play, Pause, Download } from 'lucide-react'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; export default function TrainingMonitor() { const [isTraining, setIsTraining] = useState(false); const [history, setHistory] = useState({ loss: [], epoch: [], lr: [], }); const startTraining = async () => { setIsTraining(true); try { const response = await fetch('/api/training/start', { method: 'POST', }); const data = await response.json(); setHistory(data.history); } catch (error) { console.error('Training failed:', error); } finally { setIsTraining(false); } }; const stopTraining = () => { setIsTraining(false); }; const chartData = history.epoch.map((epoch, idx) => ({ epoch, loss: history.loss[idx], lr: history.lr[idx], })); return (
Training in progress...