* fix: update new api from cortex to support 0.5.0 Signed-off-by: James <namnh0122@gmail.com> * fix stop button for streaming Signed-off-by: James <namnh0122@gmail.com> * fix stop inference for nonstreaming Signed-off-by: James <namnh0122@gmail.com> * chore: remove umami prevent tracking call to vercel Signed-off-by: James <namnh0122@gmail.com> * add warning modal when running more than 2 model concurrently Signed-off-by: James <namnh0122@gmail.com> * fix: skip summarize if abort Signed-off-by: James <namnh0122@gmail.com> * 0.5.0-3 * add inference error popup Signed-off-by: James <namnh0122@gmail.com> * add back import local model Signed-off-by: James <namnh0122@gmail.com> * fix: max token issue (#3225) Signed-off-by: James <namnh0122@gmail.com> * format status Signed-off-by: James <namnh0122@gmail.com> * fix migration missing instructions Signed-off-by: James <namnh0122@gmail.com> * fix: wait for cortex process overlay should be on top (#3224) * fix: wait for cortex process overlay should be on top * chore: update cortex.js * Cortex 0.5.0-5 * add import model to my model screen Signed-off-by: James <namnh0122@gmail.com> * fix: should migrate symlink models (#3226) * fix import on windows (#3229) Signed-off-by: James <namnh0122@gmail.com> * fix yarn lint Signed-off-by: James <namnh0122@gmail.com> * fix: clean up port before start jan (#3232) Signed-off-by: James <namnh0122@gmail.com> --------- Signed-off-by: James <namnh0122@gmail.com> Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com> Co-authored-by: Louis <louis@jan.ai>
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import { useCallback } from 'react'
|
|
|
|
import { useSetAtom } from 'jotai'
|
|
|
|
import { toaster } from '@/containers/Toast'
|
|
|
|
import useCortex from './useCortex'
|
|
|
|
import {
|
|
downloadedModelsAtom,
|
|
removeDownloadedModelAtom,
|
|
} from '@/helpers/atoms/Model.atom'
|
|
|
|
const useModels = () => {
|
|
const setDownloadedModels = useSetAtom(downloadedModelsAtom)
|
|
const removeDownloadedModel = useSetAtom(removeDownloadedModelAtom)
|
|
const {
|
|
fetchModels,
|
|
deleteModel: cortexDeleteModel,
|
|
updateModel: cortexUpdateModel,
|
|
} = useCortex()
|
|
|
|
const getModels = useCallback(() => {
|
|
const getDownloadedModels = async () => {
|
|
const models = await fetchModels()
|
|
setDownloadedModels(models)
|
|
}
|
|
getDownloadedModels()
|
|
}, [setDownloadedModels, fetchModels])
|
|
|
|
const deleteModel = useCallback(
|
|
async (modelId: string) => {
|
|
await cortexDeleteModel(modelId)
|
|
removeDownloadedModel(modelId)
|
|
|
|
toaster({
|
|
title: 'Model Deletion Successful',
|
|
description: `Model ${modelId} has been successfully deleted.`,
|
|
type: 'success',
|
|
})
|
|
},
|
|
[removeDownloadedModel, cortexDeleteModel]
|
|
)
|
|
|
|
const updateModel = useCallback(
|
|
async (modelId: string, modelSettings: Record<string, unknown>) =>
|
|
cortexUpdateModel(modelId, modelSettings),
|
|
[cortexUpdateModel]
|
|
)
|
|
|
|
return { getModels, deleteModel, updateModel }
|
|
}
|
|
|
|
export default useModels
|