Skip to content

Commit 56df737

Browse files
authored
Merge pull request #4476 from janhq/chore/refactor-remove-engine-atom
chore: refactor - clean out useEngines - mutate swr to update
2 parents 6041d61 + a8cac58 commit 56df737

File tree

18 files changed

+64
-96
lines changed

18 files changed

+64
-96
lines changed

extensions/engine-management-extension/models/anthropic.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"inference_params": {
99
"max_tokens": 4096,
1010
"temperature": 0.7,
11-
"stream": false
11+
"stream": true
1212
},
1313
"engine": "anthropic"
1414
},
@@ -21,7 +21,7 @@
2121
"inference_params": {
2222
"max_tokens": 8192,
2323
"temperature": 0.7,
24-
"stream": false
24+
"stream": true
2525
},
2626
"engine": "anthropic"
2727
},

web/containers/Layout/BottomPanel/SystemMonitor/TableActiveModel/index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import { Tooltip, Button, Badge } from '@janhq/joi'
22

3-
import { useAtom, useAtomValue } from 'jotai'
3+
import { useAtom } from 'jotai'
44

55
import { useActiveModel } from '@/hooks/useActiveModel'
66

7+
import { useGetEngines } from '@/hooks/useEngineManagement'
8+
79
import { toGibibytes } from '@/utils/converter'
810

911
import { isLocalEngine } from '@/utils/modelEngine'
1012

11-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
1213
import { serverEnabledAtom } from '@/helpers/atoms/LocalServer.atom'
1314

1415
const TableActiveModel = () => {
1516
const { activeModel, stateModel, stopModel } = useActiveModel()
16-
const engines = useAtomValue(installedEnginesAtom)
17+
const { engines } = useGetEngines()
1718

1819
const [serverEnabled, setServerEnabled] = useAtom(serverEnabledAtom)
1920

web/containers/ModelDropdown/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import SetupRemoteModel from '@/containers/SetupRemoteModel'
3131
import { useCreateNewThread } from '@/hooks/useCreateNewThread'
3232
import useDownloadModel from '@/hooks/useDownloadModel'
3333
import { modelDownloadStateAtom } from '@/hooks/useDownloadState'
34+
import { useGetEngines } from '@/hooks/useEngineManagement'
3435

3536
import useRecommendedModel from '@/hooks/useRecommendedModel'
3637

@@ -42,7 +43,6 @@ import { manualRecommendationModel } from '@/utils/model'
4243
import { getLogoEngine } from '@/utils/modelEngine'
4344

4445
import { activeAssistantAtom } from '@/helpers/atoms/Assistant.atom'
45-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
4646
import {
4747
configuredModelsAtom,
4848
getDownloadingModelAtom,
@@ -86,7 +86,7 @@ const ModelDropdown = ({
8686
null
8787
)
8888

89-
const engines = useAtomValue(installedEnginesAtom)
89+
const { engines } = useGetEngines()
9090

9191
const downloadStates = useAtomValue(modelDownloadStateAtom)
9292
const setThreadModelParams = useSetAtom(setThreadModelParamsAtom)

web/containers/Providers/DataLoader.tsx

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@
22

33
import { Fragment, useEffect } from 'react'
44

5-
import { AppConfiguration, getUserHomePath } from '@janhq/core'
5+
import {
6+
AppConfiguration,
7+
EngineEvent,
8+
events,
9+
getUserHomePath,
10+
} from '@janhq/core'
611
import { useSetAtom } from 'jotai'
712

13+
import { useDebouncedCallback } from 'use-debounce'
14+
815
import useAssistants from '@/hooks/useAssistants'
9-
import useEngines from '@/hooks/useEngines'
16+
import { useGetEngines } from '@/hooks/useEngineManagement'
1017
import useGetSystemResources from '@/hooks/useGetSystemResources'
1118
import useModels from '@/hooks/useModels'
1219
import useThreads from '@/hooks/useThreads'
@@ -26,7 +33,7 @@ const DataLoader: React.FC = () => {
2633
const setJanDefaultDataFolder = useSetAtom(defaultJanDataFolderAtom)
2734
const setJanSettingScreen = useSetAtom(janSettingScreenAtom)
2835
const { getData: loadModels } = useModels()
29-
const { getData: loadEngines } = useEngines()
36+
const { mutate } = useGetEngines()
3037

3138
useThreads()
3239
useAssistants()
@@ -35,9 +42,19 @@ const DataLoader: React.FC = () => {
3542
useEffect(() => {
3643
// Load data once
3744
loadModels()
38-
loadEngines()
3945
// eslint-disable-next-line react-hooks/exhaustive-deps
4046
}, [])
47+
const reloadData = useDebouncedCallback(() => {
48+
mutate()
49+
}, 300)
50+
51+
useEffect(() => {
52+
events.on(EngineEvent.OnEngineUpdate, reloadData)
53+
return () => {
54+
// Remove listener on unmount
55+
events.off(EngineEvent.OnEngineUpdate, reloadData)
56+
}
57+
}, [reloadData])
4158

4259
useEffect(() => {
4360
window.core?.api

web/containers/Providers/ModelHandler.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import { ulid } from 'ulidx'
2323

2424
import { activeModelAtom, stateModelAtom } from '@/hooks/useActiveModel'
2525

26+
import { useGetEngines } from '@/hooks/useEngineManagement'
27+
2628
import { isLocalEngine } from '@/utils/modelEngine'
2729

2830
import { extensionManager } from '@/extension'
@@ -34,7 +36,6 @@ import {
3436
deleteMessageAtom,
3537
subscribedGeneratingMessageAtom,
3638
} from '@/helpers/atoms/ChatMessage.atom'
37-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
3839
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
3940
import {
4041
updateThreadWaitingForResponseAtom,
@@ -75,7 +76,7 @@ export default function ModelHandler() {
7576
const activeModelParams = useAtomValue(getActiveThreadModelParamsAtom)
7677
const activeModelParamsRef = useRef(activeModelParams)
7778
const setTokenSpeed = useSetAtom(tokenSpeedAtom)
78-
const engines = useAtomValue(installedEnginesAtom)
79+
const { engines } = useGetEngines()
7980

8081
useEffect(() => {
8182
activeThreadRef.current = activeThread

web/helpers/atoms/Engines.atom.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

web/hooks/useEngines.ts

Lines changed: 0 additions & 53 deletions
This file was deleted.

web/hooks/useRecommendedModel.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import { atom, useAtomValue } from 'jotai'
66

77
import { activeModelAtom } from './useActiveModel'
88

9+
import { useGetEngines } from './useEngineManagement'
10+
911
import { activeAssistantAtom } from '@/helpers/atoms/Assistant.atom'
10-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
1112
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
1213
import { activeThreadAtom } from '@/helpers/atoms/Thread.atom'
1314

@@ -31,7 +32,7 @@ export default function useRecommendedModel() {
3132
const activeThread = useAtomValue(activeThreadAtom)
3233
const downloadedModels = useAtomValue(downloadedModelsAtom)
3334
const activeAssistant = useAtomValue(activeAssistantAtom)
34-
const engines = useAtomValue(installedEnginesAtom)
35+
const { engines } = useGetEngines()
3536

3637
const getAndSortDownloadedModels = useCallback(async (): Promise<Model[]> => {
3738
const models = downloadedModels.sort((a, b) =>

web/hooks/useStarterScreen.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@ import { useAtomValue } from 'jotai'
66

77
import { isLocalEngine } from '@/utils/modelEngine'
88

9-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
9+
import { useGetEngines } from './useEngineManagement'
10+
1011
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
1112
import { threadsAtom } from '@/helpers/atoms/Thread.atom'
1213

1314
export function useStarterScreen() {
1415
const downloadedModels = useAtomValue(downloadedModelsAtom)
1516
const threads = useAtomValue(threadsAtom)
1617

17-
const engines = useAtomValue(installedEnginesAtom)
18+
const { engines } = useGetEngines()
1819

1920
const remoteEngines =
2021
engines &&

web/screens/Hub/ModelList/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { Model } from '@janhq/core'
44

55
import { useAtomValue } from 'jotai'
66

7+
import { useGetEngines } from '@/hooks/useEngineManagement'
8+
79
import ModelItem from '@/screens/Hub/ModelList/ModelItem'
810

9-
import { installedEnginesAtom } from '@/helpers/atoms/Engines.atom'
1011
import { downloadedModelsAtom } from '@/helpers/atoms/Model.atom'
1112

1213
type Props = {
@@ -15,7 +16,7 @@ type Props = {
1516

1617
const ModelList = ({ models }: Props) => {
1718
const downloadedModels = useAtomValue(downloadedModelsAtom)
18-
const engines = useAtomValue(installedEnginesAtom)
19+
const { engines } = useGetEngines()
1920
const sortedModels: Model[] = useMemo(() => {
2021
const featuredModels: Model[] = []
2122
const remoteModels: Model[] = []

0 commit comments

Comments
 (0)