Skip to content

Commit 5c60098

Browse files
committed
合并代码
1 parent a3ccb8f commit 5c60098

5 files changed

+24
-25
lines changed

Sources/GoogleAI/CountTokensRequest.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ extension CountTokensRequest: GenerativeAIRequest {
2626
typealias Response = CountTokensResponse
2727

2828
var url: URL {
29-
URL(string: "\(GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model):countTokens")!
29+
return getUrl(nil)
30+
}
31+
func getUrl(_ baseUrl: String?) -> URL {
32+
URL(string: "\(baseUrl ?? GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model):countTokens")!
3033
}
3134
}
3235

Sources/GoogleAI/GenerateContentRequest.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,14 @@ extension GenerateContentRequest: GenerativeAIRequest {
4545
typealias Response = GenerateContentResponse
4646

4747
var url: URL {
48-
let modelURL = "\(GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model)"
49-
if isStreaming {
50-
return URL(string: "\(modelURL):streamGenerateContent?alt=sse")!
51-
} else {
52-
return URL(string: "\(modelURL):generateContent")!
53-
}
48+
return getUrl(nil)
49+
}
50+
func getUrl(_ baseUrl: String?) -> URL {
51+
let modelURL = "\(baseUrl ?? GenerativeAISwift.baseURL)/\(options.apiVersion)/\(model)"
52+
if isStreaming {
53+
return URL(string: "\(modelURL):streamGenerateContent?alt=sse")!
54+
} else {
55+
return URL(string: "\(modelURL):generateContent")!
56+
}
5457
}
5558
}

Sources/GoogleAI/GenerativeAIRequest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ protocol GenerativeAIRequest: Encodable {
1919
associatedtype Response: Decodable
2020

2121
var url: URL { get }
22-
22+
func getUrl(_ baseUrl:String?) -> URL;
2323
var options: RequestOptions { get }
2424
}
2525

Sources/GoogleAI/GenerativeAIService.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ struct GenerativeAIService {
2020
private let apiKey: String
2121

2222
private let urlSession: URLSession
23-
24-
init(apiKey: String, urlSession: URLSession) {
23+
24+
private let baseUrl:String?
25+
26+
init(apiKey: String, urlSession: URLSession, baseUrl: String? = nil) {
2527
self.apiKey = apiKey
2628
self.urlSession = urlSession
29+
self.baseUrl = baseUrl
2730
}
2831

2932
func loadRequest<T: GenerativeAIRequest>(request: T) async throws -> T.Response {
@@ -147,7 +150,7 @@ struct GenerativeAIService {
147150
// MARK: - Private Helpers
148151

149152
private func urlRequest<T: GenerativeAIRequest>(request: T) throws -> URLRequest {
150-
var urlRequest = URLRequest(url: request.url)
153+
var urlRequest = URLRequest(url: request.getUrl(self.baseUrl))
151154
urlRequest.httpMethod = "POST"
152155
urlRequest.setValue(apiKey, forHTTPHeaderField: "x-goog-api-key")
153156
urlRequest.setValue("genai-swift/\(GenerativeAISwift.version)",

Sources/GoogleAI/GenerativeModel.swift

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,23 +96,12 @@ public final class GenerativeModel {
9696
public convenience init(name: String,
9797
apiKey: String,
9898
generationConfig: GenerationConfig? = nil,
99-
safetySettings: [SafetySetting]? = nil,
100-
tools: [Tool]? = nil,
101-
toolConfig: ToolConfig? = nil,
102-
systemInstruction: String...,
103-
requestOptions: RequestOptions = RequestOptions()) {
99+
safetySettings: [SafetySetting]? = nil) {
104100
self.init(
105101
name: name,
106102
apiKey: apiKey,
107103
generationConfig: generationConfig,
108104
safetySettings: safetySettings,
109-
tools: tools,
110-
toolConfig: toolConfig,
111-
systemInstruction: ModelContent(
112-
role: "system",
113-
parts: systemInstruction.map { ModelContent.Part.text($0) }
114-
),
115-
requestOptions: requestOptions,
116105
urlSession: .shared
117106
)
118107
}
@@ -126,9 +115,10 @@ public final class GenerativeModel {
126115
toolConfig: ToolConfig? = nil,
127116
systemInstruction: ModelContent? = nil,
128117
requestOptions: RequestOptions = RequestOptions(),
129-
urlSession: URLSession) {
118+
urlSession: URLSession,
119+
baseUrl: String? = nil) {
130120
modelResourceName = GenerativeModel.modelResourceName(name: name)
131-
generativeAIService = GenerativeAIService(apiKey: apiKey, urlSession: urlSession)
121+
generativeAIService = GenerativeAIService(apiKey: apiKey, urlSession: urlSession, baseUrl: baseUrl)
132122
self.generationConfig = generationConfig
133123
self.safetySettings = safetySettings
134124
self.tools = tools

0 commit comments

Comments
 (0)