diff --git a/web/app/components/workflow/block-selector/all-tools.tsx b/web/app/components/workflow/block-selector/all-tools.tsx index b7e56c3289..b5a722ada4 100644 --- a/web/app/components/workflow/block-selector/all-tools.tsx +++ b/web/app/components/workflow/block-selector/all-tools.tsx @@ -117,10 +117,12 @@ const AllTools = ({ const wrapElemRef = useRef(null) const isSupportGroupView = [ToolTypeEnum.All, ToolTypeEnum.BuiltIn].includes(activeTab) - const isShowRAGRecommendations = isInRAGPipeline && activeTab === ToolTypeEnum.All && !searchText - const { data: ragRecommendedPlugins = [] } = useRAGRecommendedPlugins(isShowRAGRecommendations) + const isShowRAGRecommendations = isInRAGPipeline && activeTab === ToolTypeEnum.All && !searchText && tags.length === 0 + const { data: ragRecommendedPlugins } = useRAGRecommendedPlugins(isShowRAGRecommendations) const recommendedPlugins = useMemo(() => { - return ragRecommendedPlugins.filter(plugin => !plugin.installed) + if (ragRecommendedPlugins) + return [...ragRecommendedPlugins.installed_recommended_plugins] + return [] }, [ragRecommendedPlugins]) return ( diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts index 1b2b9f79f1..2b63f33771 100644 --- a/web/app/components/workflow/types.ts +++ b/web/app/components/workflow/types.ts @@ -448,8 +448,16 @@ export type ToolWithProvider = Collection & { meta: PluginMeta } -export type RAGRecommendedPlugin = ToolWithProvider & { - installed: boolean +export type UninstalledRecommendedPlugin = { + plugin_id: string + name: string + icon: string + plugin_unique_identifier: string +} + +export type RAGRecommendedPlugins = { + installed_recommended_plugins: ToolWithProvider[] + uninstalled_recommended_plugins: UninstalledRecommendedPlugin[] } export enum SupportUploadFileTypes { diff --git a/web/service/use-tools.ts b/web/service/use-tools.ts index 92b9fdee58..4d1e95d723 100644 --- a/web/service/use-tools.ts +++ b/web/service/use-tools.ts @@ -4,7 +4,7 @@ import type { MCPServerDetail, Tool, } from '@/app/components/tools/types' -import type { RAGRecommendedPlugin, ToolWithProvider } from '@/app/components/workflow/types' +import type { RAGRecommendedPlugins, ToolWithProvider } from '@/app/components/workflow/types' import type { AppIconType } from '@/types/app' import { useInvalid } from './use-base' import { @@ -313,9 +313,9 @@ export const useRemoveProviderCredentials = ({ } export const useRAGRecommendedPlugins = (enabled: boolean) => { - return useQuery({ + return useQuery({ queryKey: [NAME_SPACE, 'rag-recommended-plugins'], - queryFn: () => get('/rag/pipelines/recommended-plugins'), + queryFn: () => get('/rag/pipelines/recommended-plugins'), enabled, }) }