import AnthropicIcon from '@/components/icons/AnthropicIcon'; import AgentstackIcon from '@/components/icons/AgentstackIcon'; import ChatgptIcon from '@/components/icons/ChatgptIcon'; import CohereIcon from '@/components/icons/CohereIcon'; import CrewIcon from '@/components/icons/CrewIcon'; import GeminiIcon from '@/components/icons/GeminiIcon'; import GroqIcon from '@/components/icons/GroqIcon'; import LangchainIcon from '@/components/icons/LangchainIcon'; import LitellmIcon from '@/components/icons/LitellmIcon'; import LlamaIndexIcon from '@/components/icons/LlamaIndexIcon'; import MicrosoftIcon from '@/components/icons/MicrosoftIcon'; import MistralAiIcon from '@/components/icons/MistralAiIcon'; import MultionIcon from '@/components/icons/MultionIcon'; import OllamaIcon from '@/components/icons/OllamaIcon'; import DeepseekIcon from '@/components/icons/DeepseekIcon'; import QwenIcon from '@/components/icons/QwenIcon'; import AG2Icon from '@/components/icons/AG2Icon'; import XAIIcon from '@/components/icons/XAIIcon'; import Logo from '@/components/icons/Logo'; import PerplexityIcon from '@/components/icons/PerplexityIcon'; import AgnoIcon from '@/components/icons/AgnoIcon/AgnoIcon'; import XpanderIcon from '@/components/icons/XpanderIcon'; import IBMIcon from '@/components/icons/IBMIcon'; import Mem0Icon from '@/components/icons/Mem0Icon'; const iconMap = { agentstack: , crewai: , openai: , swarm: , gpt: , cohere: , langchain: , ollama: , deepseek: , qwen: , groq: , mistralai: , mixtral: , anthropic: , claude: , multion: , llama: , autogen: , ag2: , litellm: , gemini: , xai: , perplexity: , agno: , xpander: , watson: , mem0: , }; export const getIconForModel = (model: string): React.ReactNode | null => { if (!model || typeof model !== 'string') { return ; } const lowerModel = model.toLowerCase(); // Check for specific model name patterns if (lowerModel.includes('grok')) { return iconMap.xai || ; } // Check for o1, o2, o3, etc. pattern (GPT models) if (/o[0-9]/.test(lowerModel)) { return iconMap.gpt || ; } // Check for -ada pattern (GPT models) if (lowerModel.includes('-ada')) { return iconMap.gpt || ; } // Check for gemma pattern (Gemini models) if (lowerModel.includes('gemma')) { return iconMap.gemini || ; } // Check for mixtral pattern (Mistral models) if (lowerModel.includes('mixtral') || lowerModel.includes('mistral')) { return iconMap.mistralai || ; } if (lowerModel.includes('perplexity')) { return iconMap.perplexity || ; } if (lowerModel.includes('sonar')) { return iconMap.perplexity || ; } // Check for GCP/Vertex/ADK patterns (Gemini models) if ( lowerModel.includes('gcp') || lowerModel.includes('google') || lowerModel.includes('gemini') || lowerModel.includes('vertex') || lowerModel.includes('adk') ) { return iconMap.gemini || ; } // String includes matching for other models const match = Object.keys(iconMap).find((key) => lowerModel.includes(key)); return match ? iconMap[match as keyof typeof iconMap] : ; };