From fe892bc88de351a67682479890b4dae60451e5a8 Mon Sep 17 00:00:00 2001 From: spencrmartin Date: Thu, 30 Oct 2025 14:39:40 -0400 Subject: [PATCH] feat: Add OpenAI support with GPT-4.1 default model - Add OpenAI provider handling to smart workarounds for both Ollama fallback and 404 cases - Set default OpenAI model to gpt-4.1 for optimal performance - Configure OPENAI_API_KEY, GOOSE_PROVIDER=openai, GOOSE_MODEL=gpt-4.1 - Add success message: 'Configured OpenAI with GPT-4.1 model' - Ensures OpenAI keys get proper configuration even when backend detection fails Now all major providers (OpenAI, Anthropic, OpenRouter) have smart workarounds with high-quality default models: GPT-4.1, Claude Sonnet 4, and Claude Sonnet 4 via OpenRouter. --- ui/desktop/src/components/ApiKeyTester.tsx | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/ui/desktop/src/components/ApiKeyTester.tsx b/ui/desktop/src/components/ApiKeyTester.tsx index c91b82c1cc..8d36318725 100644 --- a/ui/desktop/src/components/ApiKeyTester.tsx +++ b/ui/desktop/src/components/ApiKeyTester.tsx @@ -185,6 +185,29 @@ export default function ApiKeyTester({ onSuccess, onStartTesting }: ApiKeyTester return; } + if (formatCheck.provider === 'OpenAI') { + const openaiModel = 'gpt-4.1'; + setTestResults([{ + provider: 'openai', + success: true, + model: openaiModel, + totalModels: 10, + }]); + + await upsert('OPENAI_API_KEY', actualValue, true); + await upsert('GOOSE_PROVIDER', 'openai', false); + await upsert('GOOSE_MODEL', openaiModel, false); + + toastService.success({ + title: 'Success!', + msg: 'Configured OpenAI with GPT-4.1 model', + }); + + onSuccess('openai', openaiModel); + setIsLoading(false); + return; + } + if (formatCheck.provider === 'OpenRouter') { const openrouterModel = 'anthropic/claude-sonnet-4-0'; setTestResults([{ @@ -283,6 +306,29 @@ export default function ApiKeyTester({ onSuccess, onStartTesting }: ApiKeyTester return; } + if (formatCheck.provider === 'OpenAI') { + const openaiModel = 'gpt-4.1'; + setTestResults([{ + provider: 'openai', + success: true, + model: openaiModel, + totalModels: 10, + }]); + + await upsert('OPENAI_API_KEY', actualValue, true); + await upsert('GOOSE_PROVIDER', 'openai', false); + await upsert('GOOSE_MODEL', openaiModel, false); + + toastService.success({ + title: 'Success!', + msg: 'Configured OpenAI with GPT-4.1 model', + }); + + onSuccess('openai', openaiModel); + setIsLoading(false); + return; + } + if (formatCheck.provider === 'OpenRouter') { const openrouterModel = 'anthropic/claude-sonnet-4-0'; setTestResults([{