WhisperSeg
// When user clicks on CallWhisperSeg icon
useEffect(() => {
// Get Models immediately
getAllModels()
// Set up an interval that will refresh the models every 10 seconds
const interval = setInterval(() => {
getAllModels()
}, 10000)
// Clean up the interval on component unmount
return () => clearInterval(interval)
}, [showModelsWindow])const getAllModels = async () => {
if (!showModelsWindow && currentlyTrainedModelsNames.length === 0) return
setModelsAreLoading(true)
try {
const [inferenceModels, finetuneModels, currentlyTrainedModels] = await Promise.all([
getModelsAvailableForInference(),
getModelsAvailableForFinetuning(),
getModelsCurrentlyTrained()
])
setModelsAreLoading(false)
setModelsAvailableForInference(inferenceModels)
setModelsAvailableForFinetuning(finetuneModels)
setModelsCurrentlyTrained(currentlyTrainedModels)
// Set first model in list as default model
if (!selectedInferenceModelRef.current){
setSelectedInferenceModel(inferenceModels[0]?.model_name)
}
if (!selectedFinetuningModelRef.current){
setSelectedFinetuningModel(finetuneModels[0]?.model_name)
}
} catch (error) {
toast.error('An error occurred trying to access the WhisperSeg API. Check the console for more information')
console.error('Error fetching data:', error)
setModelsAreLoading(false)
setShowModelsWindow(false)
}
}Last updated