diff --git a/web/app/components/workflow/block-selector/all-tools.tsx b/web/app/components/workflow/block-selector/all-tools.tsx index 93b7a301da..b7e56c3289 100644 --- a/web/app/components/workflow/block-selector/all-tools.tsx +++ b/web/app/components/workflow/block-selector/all-tools.tsx @@ -26,6 +26,7 @@ import { PluginType } from '../../plugins/types' import { useMarketplacePlugins } from '../../plugins/marketplace/hooks' import { useGlobalPublicStore } from '@/context/global-public-context' import RAGToolSuggestions from './rag-tool-suggestions' +import { useRAGRecommendedPlugins } from '@/service/use-tools' type AllToolsProps = { className?: string @@ -117,6 +118,10 @@ const AllTools = ({ const isSupportGroupView = [ToolTypeEnum.All, ToolTypeEnum.BuiltIn].includes(activeTab) const isShowRAGRecommendations = isInRAGPipeline && activeTab === ToolTypeEnum.All && !searchText + const { data: ragRecommendedPlugins = [] } = useRAGRecommendedPlugins(isShowRAGRecommendations) + const recommendedPlugins = useMemo(() => { + return ragRecommendedPlugins.filter(plugin => !plugin.installed) + }, [ragRecommendedPlugins]) return (
@@ -147,9 +152,9 @@ const AllTools = ({ className='max-h-[464px] overflow-y-auto' onScroll={pluginRef.current?.handleScroll} > - {isShowRAGRecommendations && ( + {recommendedPlugins.length > 0 && ( = ({ - // tools, - // viewType, - // onSelect, + tools, + viewType, + onSelect, onTagsChange, }) => { const { t } = useTranslation() const loadMore = useCallback(() => { - onTagsChange(prev => [...prev, 'rag']) + onTagsChange((prev) => { + if (prev.includes('rag')) + return prev + return [...prev, 'rag'] + }) }, [onTagsChange]) return ( @@ -31,7 +35,7 @@ const RAGToolSuggestions: React.FC = ({
{t('pipeline.ragToolSuggestions.title')}
- {/* = ({ toolType={ToolTypeEnum.All} viewType={viewType} hasSearchText={false} - /> */} + />
{ + return useQuery({ + queryKey: [NAME_SPACE, 'rag-recommended-plugins'], + queryFn: () => get('/rag/pipelines/recommended-plugins'), + enabled, + }) +}