12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { useModelList } from '@/app/components/header/account-setting/model-provider-page/hooks'
- import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
- import { useProviderContext } from '@/context/provider-context'
- import { useInvalidateInstalledPluginList } from '@/service/use-plugins'
- import { useInvalidateAllBuiltInTools, useInvalidateAllToolProviders } from '@/service/use-tools'
- import { useInvalidateStrategyProviders } from '@/service/use-strategy'
- import type { Plugin, PluginDeclaration, PluginManifestInMarket } from '../../types'
- import { PluginType } from '../../types'
- const useRefreshPluginList = () => {
- const invalidateInstalledPluginList = useInvalidateInstalledPluginList()
- const { mutate: refetchLLMModelList } = useModelList(ModelTypeEnum.textGeneration)
- const { mutate: refetchEmbeddingModelList } = useModelList(ModelTypeEnum.textEmbedding)
- const { mutate: refetchRerankModelList } = useModelList(ModelTypeEnum.rerank)
- const { refreshModelProviders } = useProviderContext()
- const invalidateAllToolProviders = useInvalidateAllToolProviders()
- const invalidateAllBuiltInTools = useInvalidateAllBuiltInTools()
- const invalidateStrategyProviders = useInvalidateStrategyProviders()
- return {
- refreshPluginList: (manifest?: PluginManifestInMarket | Plugin | PluginDeclaration | null, refreshAllType?: boolean) => {
-
- invalidateInstalledPluginList()
-
- if ((manifest && PluginType.tool.includes(manifest.category)) || refreshAllType) {
- invalidateAllToolProviders()
- invalidateAllBuiltInTools()
-
- }
-
- if ((manifest && PluginType.model.includes(manifest.category)) || refreshAllType) {
- refreshModelProviders()
- refetchLLMModelList()
- refetchEmbeddingModelList()
- refetchRerankModelList()
- }
-
- if ((manifest && PluginType.agent.includes(manifest.category)) || refreshAllType)
- invalidateStrategyProviders()
- },
- }
- }
- export default useRefreshPluginList
|