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]
]
let requestBody: [String: Any] = [
var requestBody: [String: Any] = [
"model": aiService.currentModel,
"messages": messages,
"temperature": aiService.currentModel.lowercased().hasPrefix("gpt-5") ? 1.0 : 0.3,
"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)
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
}
}