Add reasoning parameter support for Gemini and OpenAI models
This commit is contained in:
parent
2e5c737255
commit
fcc7b4783f
@ -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 {
|
||||||
|
|||||||
24
VoiceInk/Services/AIEnhancement/ReasoningConfig.swift
Normal file
24
VoiceInk/Services/AIEnhancement/ReasoningConfig.swift
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user