@@ -9,6 +9,13 @@ public actor OllamaService {
99 let maxToken : Int
1010 let temperature : Double
1111 let stopWords : [ String ]
12+ let keepAlive : String
13+ let format : ResponseFormat
14+
15+ public enum ResponseFormat : String {
16+ case none = " "
17+ case json = " json "
18+ }
1219
1320 public enum Endpoint {
1421 case completion
@@ -21,7 +28,9 @@ public actor OllamaService {
2128 modelName: String ,
2229 maxToken: Int ? = nil ,
2330 temperature: Double = 0.2 ,
24- stopWords: [ String ] = [ ]
31+ stopWords: [ String ] = [ ] ,
32+ keepAlive: String = " " ,
33+ format: ResponseFormat = . none
2534 ) {
2635 self . url = url. flatMap ( URL . init ( string: ) ) ?? {
2736 switch endpoint {
@@ -37,6 +46,8 @@ public actor OllamaService {
3746 self . maxToken = maxToken ?? 4096
3847 self . temperature = temperature
3948 self . stopWords = stopWords
49+ self . keepAlive = keepAlive
50+ self . format = format
4051 }
4152}
4253
@@ -112,6 +123,8 @@ extension OllamaService {
112123 var messages : [ Message ]
113124 var stream : Bool
114125 var options : Options
126+ var keep_alive : String ?
127+ var format : String ?
115128 }
116129
117130 struct ChatCompletionResponseChunk : Decodable {
@@ -156,7 +169,9 @@ extension OllamaService {
156169 temperature: temperature,
157170 stop: stopWords,
158171 num_predict: 300
159- )
172+ ) ,
173+ keep_alive: keepAlive. isEmpty ? nil : keepAlive,
174+ format: format == . none ? nil : format. rawValue
160175 )
161176
162177 var request = URLRequest ( url: url)
@@ -189,6 +204,8 @@ extension OllamaService {
189204 var prompt : String
190205 var stream : Bool
191206 var options : ChatCompletionRequestBody . Options
207+ var keep_alive : String ?
208+ var format : String ?
192209 }
193210
194211 func createPrompt( from request: PromptStrategy ) -> String {
@@ -209,7 +226,9 @@ extension OllamaService {
209226 temperature: temperature,
210227 stop: stopWords,
211228 num_predict: 300
212- )
229+ ) ,
230+ keep_alive: keepAlive. isEmpty ? nil : keepAlive,
231+ format: format == . none ? nil : format. rawValue
213232 )
214233
215234 var request = URLRequest ( url: url)
0 commit comments