Last active
October 7, 2024 19:08
-
-
Save lzell/42b47aa5e521a3e20840aba093a7c835 to your computer and use it in GitHub Desktop.
How to catch a Foundation timeout
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import AIProxy | |
let openAIService = AIProxy.openAIService( | |
partialKey: "partial-key-from-your-developer-dashboard", | |
serviceURL: "service-url-from-your-developer-dashboard" | |
) | |
do { | |
let response = try await openAIService.chatCompletionRequest(body: .init( | |
model: "o1-mini", | |
messages: [.assistant(content: .text("hello world"))] | |
)) | |
print(response.choices.first?.message.content ?? "") | |
if let usage = response.usage { | |
print( | |
""" | |
Used: | |
\(usage.promptTokens ?? 0) prompt tokens | |
\(usage.completionTokens ?? 0) completion tokens | |
\(usage.completionTokensDetails?.reasoningTokens ?? 0) reasoning tokens | |
\(usage.totalTokens ?? 0) total tokens | |
""" | |
) | |
} | |
} catch AIProxyError.unsuccessfulRequest(let statusCode, let responseBody) { | |
print("Received non-200 status code: \(statusCode) with response body: \(responseBody)") | |
} catch let err as URLError where err.code == URLError.timedOut { | |
print("Request for OpenAI buffered chat completion timed out") | |
} catch let err as URLError where [.notConnectedToInternet, .networkConnectionLost].contains(err.code) { | |
print("Could not make buffered chat request. Please check your internet connection") | |
} catch { | |
print("Could not get buffered chat completion: \(error.localizedDescription)") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment