Add reasoning parameter support for Gemini and OpenAI models

This commit is contained in:
Beingpax 2025-11-07 22:29:44 +05:45
parent 2e5c737255
commit fcc7b4783f
2 changed files with 30 additions and 1 deletions

View File

@ -292,13 +292,18 @@ class AIEnhancementService: ObservableObject {
["role": "user", "content": formattedText] ["role": "user", "content": formattedText]
] ]
let requestBody: [String: Any] = [ var requestBody: [String: Any] = [
"model": aiService.currentModel, "model": aiService.currentModel,
"messages": messages, "messages": messages,
"temperature": aiService.currentModel.lowercased().hasPrefix("gpt-5") ? 1.0 : 0.3, "temperature": aiService.currentModel.lowercased().hasPrefix("gpt-5") ? 1.0 : 0.3,
"stream": false "stream": false
] ]
// Add reasoning_effort parameter if the model supports it
if let reasoningEffort = ReasoningConfig.getReasoningParameter(for: aiService.currentModel) {
requestBody["reasoning_effort"] = reasoningEffort
}
request.httpBody = try? JSONSerialization.data(withJSONObject: requestBody) request.httpBody = try? JSONSerialization.data(withJSONObject: requestBody)
do { do {

View File

@ -0,0 +1,24 @@
import Foundation
struct ReasoningConfig {
static let geminiReasoningModels: Set<String> = [
"gemini-2.5-flash",
"gemini-2.5-flash-lite"
]
static let openAIReasoningModels: Set<String> = [
"gpt-5",
"gpt-5-mini",
"gpt-5-nano"
]
static func getReasoningParameter(for modelName: String) -> String? {
if geminiReasoningModels.contains(modelName) {
return "low"
} else if openAIReasoningModels.contains(modelName) {
return "minimal"
}
return nil
}
}