feat: input de modelo manual para OpenRouter

This commit is contained in:
2026-06-22 20:15:42 +00:00
parent ba10367855
commit 2243462221
2 changed files with 14 additions and 10 deletions
+13 -2
View File
@@ -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}
+1 -8
View File
@@ -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' };