diff --git a/web/app/components/explore/try-app/app-info/index.tsx b/web/app/components/explore/try-app/app-info/index.tsx index 0240081cfc..fa662b1920 100644 --- a/web/app/components/explore/try-app/app-info/index.tsx +++ b/web/app/components/explore/try-app/app-info/index.tsx @@ -77,7 +77,7 @@ const AppInfo: FC = ({
{t('explore.tryApp.requirements')}
{requirements.map(item => ( -
+
{item.name}
diff --git a/web/app/components/explore/try-app/app-info/use-get-requirements.ts b/web/app/components/explore/try-app/app-info/use-get-requirements.ts index 0b118697a1..85998b673f 100644 --- a/web/app/components/explore/try-app/app-info/use-get-requirements.ts +++ b/web/app/components/explore/try-app/app-info/use-get-requirements.ts @@ -1,5 +1,8 @@ +import type { LLMNodeType } from '@/app/components/workflow/nodes/llm/types' +import { BlockEnum } from '@/app/components/workflow/types' import { MARKETPLACE_API_PREFIX } from '@/config' import type { TryAppInfo } from '@/service/try-app' +import { useGetTryAppFlowPreview } from '@/service/use-try-app' import type { AgentTool } from '@/types/app' import { uniqBy } from 'lodash-es' @@ -19,6 +22,8 @@ const getIconUrl = (provider: string, tool: string) => { const useGetRequirements = ({ appDetail, appId }: Params) => { const isBasic = ['chat', 'completion', 'agent-chat'].includes(appDetail.mode) const isAgent = appDetail.mode === 'agent-chat' + const isAdvanced = !isBasic + const { data: flowData } = useGetTryAppFlowPreview(appId, isBasic) const requirements: RequirementItem[] = [] if(isBasic) { @@ -39,6 +44,18 @@ const useGetRequirements = ({ appDetail, appId }: Params) => { } })) } + if(isAdvanced && flowData && flowData?.graph?.nodes?.length > 0) { + const nodes = flowData.graph.nodes + const llmNodes = nodes.filter(node => node.data.type === BlockEnum.LLM) + requirements.push(...llmNodes.map((node) => { + const data = node.data as LLMNodeType + const modelProviderAndName = data.model.provider.split('/') + return { + name: data.model.name, + iconUrl: getIconUrl(modelProviderAndName[0], modelProviderAndName[1]), + } + })) + } const uniqueRequirements = uniqBy(requirements, 'name') diff --git a/web/service/use-try-app.ts b/web/service/use-try-app.ts index e69ee8457f..35fdad6526 100644 --- a/web/service/use-try-app.ts +++ b/web/service/use-try-app.ts @@ -33,9 +33,10 @@ export const useGetTryAppDataSets = (appId: string, ids: string[]) => { }) } -export const useGetTryAppFlowPreview = (appId: string) => { +export const useGetTryAppFlowPreview = (appId: string, disabled?: boolean) => { return useQuery({ queryKey: [NAME_SPACE, 'preview', appId], + enabled: !disabled, queryFn: () => { return fetchTryAppFlowPreview(appId) },