diff --git a/Sources/GoogleAI/CountTokensRequest.swift b/Sources/GoogleAI/CountTokensRequest.swift index d8bfc0e..5463e8d 100644 --- a/Sources/GoogleAI/CountTokensRequest.swift +++ b/Sources/GoogleAI/CountTokensRequest.swift @@ -26,7 +26,7 @@ extension CountTokensRequest: GenerativeAIRequest { typealias Response = CountTokensResponse var url: URL { - URL(string: "\(GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model):countTokens")! + URL(string: "\(options.baseURL ?? GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model):countTokens")! } } diff --git a/Sources/GoogleAI/GenerateContentRequest.swift b/Sources/GoogleAI/GenerateContentRequest.swift index c360583..219b5f2 100644 --- a/Sources/GoogleAI/GenerateContentRequest.swift +++ b/Sources/GoogleAI/GenerateContentRequest.swift @@ -46,7 +46,7 @@ extension GenerateContentRequest: GenerativeAIRequest { typealias Response = GenerateContentResponse var url: URL { - let modelURL = "\(GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model)" + let modelURL = "\(options.baseURL ?? GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model)" if isStreaming { return URL(string: "\(modelURL):streamGenerateContent?alt=sse")! } else { diff --git a/Sources/GoogleAI/GenerativeAIRequest.swift b/Sources/GoogleAI/GenerativeAIRequest.swift index d468576..3d518f7 100644 --- a/Sources/GoogleAI/GenerativeAIRequest.swift +++ b/Sources/GoogleAI/GenerativeAIRequest.swift @@ -31,14 +31,19 @@ public struct RequestOptions { /// The API version to use in requests to the backend. let apiVersion: String + + /// The Base URL for the proxy. + let baseURL: String? /// Initializes a request options object. /// /// - Parameters: /// - timeout: The request’s timeout interval in seconds; defaults to 300 seconds (5 minutes). /// - apiVersion: The API version to use in requests to the backend; defaults to "v1beta". - public init(timeout: TimeInterval = 300.0, apiVersion: String = "v1beta") { + /// - baseURL: The Base URL for the proxy. + public init(timeout: TimeInterval = 300.0, apiVersion: String = "v1beta", baseURL: String? = nil) { self.timeout = timeout self.apiVersion = apiVersion + self.baseURL = baseURL } }