From 3c84bcf75714619a66028a4322ce033fef038748 Mon Sep 17 00:00:00 2001 From: Beingpax Date: Tue, 19 Aug 2025 09:57:32 +0545 Subject: [PATCH] =?UTF-8?q?Logging=20of=20failed=20API=20verification=20an?= =?UTF-8?q?d=20adding=20GPT=E2=80=914=20models=20again.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VoiceInk/Services/AIService.swift | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/VoiceInk/Services/AIService.swift b/VoiceInk/Services/AIService.swift index 6356846..b6f978f 100644 --- a/VoiceInk/Services/AIService.swift +++ b/VoiceInk/Services/AIService.swift @@ -107,7 +107,9 @@ enum AIProvider: String, CaseIterable { return [ "gpt-5", "gpt-5-mini", - "gpt-5-nano" + "gpt-5-nano", + "gpt-4.1", + "gpt-4.1-mini" ] case .mistral: return [ @@ -326,15 +328,30 @@ class AIService: ObservableObject { request.httpBody = try? JSONSerialization.data(withJSONObject: testBody) + logger.notice("🔑 Verifying API key for \(self.selectedProvider.rawValue, privacy: .public) provider at \(url.absoluteString, privacy: .public)") + URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { + self.logger.notice("🔑 API key verification failed for \(self.selectedProvider.rawValue, privacy: .public): \(error.localizedDescription, privacy: .public)") completion(false) return } if let httpResponse = response as? HTTPURLResponse { - completion(httpResponse.statusCode == 200) + let isValid = httpResponse.statusCode == 200 + + if !isValid { + // Log the exact API error response + if let data = data, let exactAPIError = String(data: data, encoding: .utf8) { + self.logger.notice("🔑 API key verification failed for \(self.selectedProvider.rawValue, privacy: .public) - Status: \(httpResponse.statusCode) - \(exactAPIError, privacy: .public)") + } else { + self.logger.notice("🔑 API key verification failed for \(self.selectedProvider.rawValue, privacy: .public) - Status: \(httpResponse.statusCode)") + } + } + + completion(isValid) } else { + self.logger.notice("🔑 API key verification failed for \(self.selectedProvider.rawValue, privacy: .public): Invalid response") completion(false) } }.resume()