@@ -55,7 +55,12 @@ public struct ChatGPTError: Error, Codable, LocalizedError {
5555
5656public actor ChatGPTService : ChatGPTServiceType {
5757 public var systemPrompt : String
58- public var temperature : Double
58+
59+ public var defaultTemperature : Double {
60+ min ( max ( 0 , UserDefaults . shared. value ( for: \. chatGPTTemperature) ) , 2 )
61+ }
62+
63+ var temperature : Double ?
5964
6065 public var model : String {
6166 let value = UserDefaults . shared. value ( for: \. chatGPTModel)
@@ -93,7 +98,7 @@ public actor ChatGPTService: ChatGPTServiceType {
9398
9499 public init (
95100 systemPrompt: String = " " ,
96- temperature: Double = 0.7
101+ temperature: Double ? = nil
97102 ) {
98103 self . systemPrompt = systemPrompt
99104 self . temperature = temperature
@@ -114,11 +119,11 @@ public actor ChatGPTService: ChatGPTServiceType {
114119 history. append ( newMessage)
115120
116121 let ( messages, remainingTokens) = combineHistoryWithSystemPrompt ( )
117-
122+
118123 let requestBody = CompletionRequestBody (
119124 model: model,
120125 messages: messages,
121- temperature: temperature,
126+ temperature: temperature ?? defaultTemperature ,
122127 stream: true ,
123128 max_tokens: remainingTokens
124129 )
@@ -194,11 +199,11 @@ public actor ChatGPTService: ChatGPTServiceType {
194199 history. append ( newMessage)
195200
196201 let ( messages, remainingTokens) = combineHistoryWithSystemPrompt ( )
197-
202+
198203 let requestBody = CompletionRequestBody (
199204 model: model,
200205 messages: messages,
201- temperature: temperature,
206+ temperature: temperature ?? defaultTemperature ,
202207 stream: true ,
203208 max_tokens: remainingTokens
204209 )
@@ -257,16 +262,16 @@ extension ChatGPTService {
257262
258263 func combineHistoryWithSystemPrompt(
259264 minimumReplyTokens: Int = 200 ,
260- maxNumberOfMessages: Int = 5 ,
261- maxTokens: Int = UserDefaults . shared. value ( for: \. chatGPTMaxToken) ,
265+ maxNumberOfMessages: Int = UserDefaults . shared . value ( for : \ . chatGPTMaxMessageCount ) ,
266+ maxTokens: Int = UserDefaults . shared. value ( for: \. chatGPTMaxToken) ,
262267 encoder: TokenEncoder = GPTEncoder ( )
263268 )
264269 -> ( messages: [ CompletionRequestBody . Message ] , remainingTokens: Int )
265270 {
266271 var all : [ CompletionRequestBody . Message ] = [ ]
267272 var allTokensCount = encoder. encode ( text: systemPrompt) . count
268273 for message in history. reversed ( ) {
269- if all. count >= maxNumberOfMessages { break }
274+ if maxNumberOfMessages > 0 , all. count >= maxNumberOfMessages { break }
270275 if message. content. isEmpty { continue }
271276 let tokensCount = encoder. encode ( text: message. content) . count
272277 if tokensCount + allTokensCount > maxTokens - minimumReplyTokens {
0 commit comments