Spaces:
Running
Running
import { useEffect, useState } from "react"; | |
import { addLogEntry } from "../../../../../../modules/logEntries"; | |
import type { defaultSettings } from "../../../../../../modules/settings"; | |
import { fetchHordeModels } from "../../../../../../modules/textGenerationWithHorde"; | |
import type { ModelOption } from "../types"; | |
type Settings = typeof defaultSettings; | |
export const useHordeModels = (settings: Settings) => { | |
const [hordeModels, setHordeModels] = useState<ModelOption[]>([]); | |
useEffect(() => { | |
async function fetchAvailableHordeModels() { | |
try { | |
const models = await fetchHordeModels(); | |
const formattedModels = models.map((model) => ({ | |
label: model.name, | |
value: model.name, | |
})); | |
setHordeModels(formattedModels); | |
} catch (error) { | |
const errorMessage = | |
error instanceof Error ? error.message : String(error); | |
addLogEntry(`Error fetching AI Horde models: ${errorMessage}`); | |
setHordeModels([]); | |
} | |
} | |
if (settings.inferenceType === "horde") { | |
fetchAvailableHordeModels(); | |
} | |
}, [settings.inferenceType]); | |
return hordeModels; | |
}; | |