feat: input de modelo manual para OpenRouter
This commit is contained in:
@@ -35,8 +35,10 @@ export const ApiKeySetup: React.FC<ApiKeySetupProps> = ({ onKeySave }) => {
|
||||
|
||||
useEffect(() => {
|
||||
const providerConfig = PROVIDERS.find(p => p.id === provider);
|
||||
if (providerConfig && !providerConfig.models.includes(model)) {
|
||||
if (providerConfig && provider !== 'openrouter' && !providerConfig.models.includes(model)) {
|
||||
setModel(providerConfig.defaultModel);
|
||||
} else if (provider === 'openrouter' && !model) {
|
||||
setModel(providerConfig?.defaultModel || '');
|
||||
}
|
||||
setAvailableModels([]);
|
||||
setTestStatus('idle');
|
||||
@@ -310,7 +312,16 @@ export const ApiKeySetup: React.FC<ApiKeySetupProps> = ({ onKeySave }) => {
|
||||
<label htmlFor="model-selector" className="block text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider mb-2">
|
||||
Modelo{availableModels.length > 0 && <span className="text-green-600 ml-1">(detectado automaticamente)</span>}
|
||||
</label>
|
||||
{availableModels.length > 0 ? (
|
||||
{provider === 'openrouter' ? (
|
||||
<input
|
||||
type="text"
|
||||
id="model-selector"
|
||||
value={model}
|
||||
onChange={(e) => setModel(e.target.value)}
|
||||
placeholder="Ex: google/gemini-2.5-flash"
|
||||
className="block w-full rounded-xl border-slate-300 dark:border-slate-600 bg-white/50 dark:bg-slate-700/50 py-3 px-4 text-slate-900 dark:text-slate-100 shadow-sm focus:border-blue-500 focus:ring-blue-500 sm:text-sm transition-all"
|
||||
/>
|
||||
) : availableModels.length > 0 ? (
|
||||
<select
|
||||
id="model-selector"
|
||||
value={model}
|
||||
|
||||
@@ -245,14 +245,7 @@ const testOpenRouter = async (apiKey: string): Promise<TestResult> => {
|
||||
}
|
||||
|
||||
return {
|
||||
success: true,
|
||||
models: [
|
||||
{ id: 'google/gemini-2.5-flash', name: 'Gemini 2.5 Flash' },
|
||||
{ id: 'google/gemini-2.5-pro', name: 'Gemini 2.5 Pro' },
|
||||
{ id: 'anthropic/claude-3.5-sonnet', name: 'Claude 3.5 Sonnet' },
|
||||
{ id: 'openai/gpt-4o', name: 'GPT-4o' },
|
||||
{ id: 'meta-llama/llama-3.1-70b-instruct', name: 'Llama 3.1 70B' }
|
||||
]
|
||||
success: true
|
||||
};
|
||||
} catch (error: any) {
|
||||
return { success: false, error: error.message || 'Erro ao conectar com OpenRouter' };
|
||||
|
||||
Reference in New Issue
Block a user