demo / frontend /src /components /Benchmark /hooks /useBenchmarkSimulation.js
tfrere's picture
update error handling, improve upload security checks
81e0b0c
raw
history blame
2.01 kB
import { useRef } from "react";
const SIMULATED_LOGS = [
"[INFO] Initializing benchmark generation...",
"[INFO] Generating base configuration file...",
"[SUCCESS] Stage completed: configuration",
"[INFO] Finding available providers for models...",
"[SUCCESS] Stage completed: provider_check",
"[INFO] Starting ingestion process...",
"[SUCCESS] Stage completed: ingestion",
"[INFO] Processing document content for upload...",
"[SUCCESS] Stage completed: upload_ingest_to_hub",
"[INFO] Generating document summary...",
"[SUCCESS] Stage completed: summarization",
"[INFO] Chunking content for better analysis...",
"[SUCCESS] Stage completed: chunking",
"[INFO] Generating single-shot questions...",
"[SUCCESS] Stage completed: single_shot_question_generation",
"[SUCCESS] Benchmark process completed successfully",
];
export const useBenchmarkSimulation = (
setGenerationLogs,
setGenerationComplete,
onComplete,
sessionId
) => {
const simulationIntervalRef = useRef(null);
const SIMULATION_DURATION = 80000; // 20 seconds
const startSimulation = () => {
setGenerationLogs([]);
let currentStep = 0;
const addNextLog = () => {
if (currentStep < SIMULATED_LOGS.length) {
setGenerationLogs((prevLogs) => [
...prevLogs,
SIMULATED_LOGS[currentStep],
]);
currentStep++;
if (currentStep >= SIMULATED_LOGS.length) {
setTimeout(() => {
setGenerationComplete(true);
clearInterval(simulationIntervalRef.current);
if (onComplete) {
onComplete({
success: true,
sessionId,
logs: SIMULATED_LOGS,
});
}
}, 1000);
}
}
};
const totalSteps = SIMULATED_LOGS.length;
const intervalPerStep = SIMULATION_DURATION / totalSteps;
simulationIntervalRef.current = setInterval(addNextLog, intervalPerStep);
};
return { startSimulation };
};