Skip to content

Commit 3c59e49

Browse files
committed
Merge branch 'hotfix/0.35.6'
2 parents b70c21e + 8067e1c commit 3c59e49

File tree

3 files changed

+53
-4
lines changed

3 files changed

+53
-4
lines changed

Tool/Sources/OpenAIService/APIs/OpenAIChatCompletionsService.swift

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,25 @@ actor OpenAIChatCompletionsService: ChatCompletionsStreamAPI, ChatCompletionsAPI
311311
.requiresBeginWithUserMessage,
312312
canUseTool: model.info.supportsFunctionCalling,
313313
supportsImage: model.info.supportsImage,
314-
supportsAudio: model.info.supportsAudio
314+
supportsAudio: model.info.supportsAudio,
315+
supportsTemperature: {
316+
guard model.format == .openAI else { return true }
317+
if let chatGPTModel = ChatGPTModel(rawValue: model.info.modelName) {
318+
return chatGPTModel.supportsTemperature
319+
} else if model.info.modelName.hasPrefix("o") {
320+
return false
321+
}
322+
return true
323+
}(),
324+
supportsSystemPrompt: {
325+
guard model.format == .openAI else { return true }
326+
if let chatGPTModel = ChatGPTModel(rawValue: model.info.modelName) {
327+
return chatGPTModel.supportsSystemPrompt
328+
} else if model.info.modelName.hasPrefix("o") {
329+
return false
330+
}
331+
return true
332+
}()
315333
)
316334
self.model = model
317335
self.requestModifier = requestModifier
@@ -714,7 +732,9 @@ extension OpenAIChatCompletionsService.RequestBody {
714732
requiresBeginWithUserMessage: Bool,
715733
canUseTool: Bool,
716734
supportsImage: Bool,
717-
supportsAudio: Bool
735+
supportsAudio: Bool,
736+
supportsTemperature: Bool,
737+
supportsSystemPrompt: Bool
718738
) {
719739
temperature = body.temperature
720740
stream = body.stream
@@ -737,6 +757,17 @@ extension OpenAIChatCompletionsService.RequestBody {
737757

738758
var body = body
739759

760+
if !supportsTemperature {
761+
temperature = nil
762+
}
763+
if !supportsSystemPrompt {
764+
for (index, message) in body.messages.enumerated() {
765+
if message.role == .system {
766+
body.messages[index].role = .user
767+
}
768+
}
769+
}
770+
740771
if requiresBeginWithUserMessage {
741772
let firstUserIndex = body.messages.firstIndex(where: { $0.role == .user }) ?? 0
742773
let endIndex = firstUserIndex

Tool/Sources/Preferences/Types/ChatGPTModel.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,23 @@ public extension ChatGPTModel {
8686
return false
8787
}
8888
}
89+
90+
var supportsTemperature: Bool {
91+
switch self {
92+
case .o1Preview, .o1Preview20240912, .o1Mini, .o1Mini20240912, .o1, .o3Mini:
93+
return false
94+
default:
95+
return true
96+
}
97+
}
98+
99+
var supportsSystemPrompt: Bool {
100+
switch self {
101+
case .o1Preview, .o1Preview20240912, .o1Mini, .o1Mini20240912, .o1, .o3Mini:
102+
return false
103+
default:
104+
return true
105+
}
106+
}
89107
}
90108

Version.xcconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
APP_VERSION = 0.35.5
2-
APP_BUILD = 443
1+
APP_VERSION = 0.35.6
2+
APP_BUILD = 451
33
RELEASE_CHANNEL =
44
RELEASE_NUMBER = 1

0 commit comments

Comments
 (0)