import { ProviderIcon } from '@lobehub/icons'; import { Button } from '@lobehub/ui'; import { ModelProvider } from 'model-bank'; import { memo, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Center, Flexbox } from 'react-layout-kit'; import { GlobalLLMProviderKey } from '@/types/user/settings'; import BedrockForm from './Bedrock'; import { LoadingContext } from './LoadingContext'; import ProviderApiKeyForm from './ProviderApiKeyForm'; interface APIKeyFormProps { bedrockDescription: string; description: string; id: string; onClose: () => void; onRecreate: () => void; provider?: string; } const APIKeyForm = memo( ({ provider, description, bedrockDescription, onRecreate, onClose }) => { const { t } = useTranslation('error'); const [loading, setLoading] = useState(false); const apiKeyPlaceholder = useMemo(() => { switch (provider) { case ModelProvider.Anthropic: { return 'sk-ant_*****************************'; } case ModelProvider.OpenRouter: { return 'sk-or-********************************'; } case ModelProvider.Perplexity: { return 'pplx-********************************'; } case ModelProvider.ZhiPu: { return '*********************.*************'; } case ModelProvider.Groq: { return 'gsk_*****************************'; } case ModelProvider.DeepSeek: { return 'sk_******************************'; } case ModelProvider.Qwen: { return 'sk-********************************'; } case ModelProvider.Github: { return 'ghp_*****************************'; } default: { return '*********************************'; } } }, [provider]); return (
{provider === ModelProvider.Bedrock ? ( ) : ( } description={description} provider={provider as GlobalLLMProviderKey} showEndpoint /> )}
); }, ); export default APIKeyForm;