diff --git a/web/src/views/KnowledgeBase/components/CreateModal.tsx b/web/src/views/KnowledgeBase/components/CreateModal.tsx index d9727d18..35eb52d0 100644 --- a/web/src/views/KnowledgeBase/components/CreateModal.tsx +++ b/web/src/views/KnowledgeBase/components/CreateModal.tsx @@ -672,9 +672,17 @@ const CreateModal = forwardRef(({ {currentType !== 'Folder' && dynamicTypeList.map((tp) => { const fieldKey = typeToFieldKey(tp); // When tp is 'llm', merge llm and chat options - const options = tp.toLowerCase() === 'llm' || tp.toLowerCase() === 'image2text' + let options = tp.toLowerCase() === 'llm' || tp.toLowerCase() === 'image2text' ? [...(modelOptionsByType['llm'] || []), ...(modelOptionsByType['chat'] || [])] : modelOptionsByType[tp] || []; + + // When tp is 'image2text', filter to only include models with 'vision' capability + if (tp.toLowerCase() === 'image2text') { + options = options.filter((opt: any) => { + const model = models?.items?.find((m: any) => m.id === opt.value); + return model?.capability?.includes('vision'); + }); + } return ( { const { t } = useTranslation(); const [activeTab, setActiveTab] = useState('mcp');