Remove enhancement opacity, update Gemini models, add AI reasoning filter

This commit is contained in:
Beingpax 2025-07-14 22:55:42 +05:45
parent d08cac5a3a
commit 2bd2c96be2
4 changed files with 36 additions and 8 deletions

View File

@ -0,0 +1,25 @@
import Foundation
struct AIEnhancementOutputFilter {
private static let reasoningPatterns = [
#"(?s)<think>.*?</think>"#,
#"(?s)<reasoning>.*?</reasoning>"#,
#"(?s)<analysis>.*?</analysis>"#,
]
static func filter(_ text: String) -> String {
var filteredText = text
for pattern in reasoningPatterns {
if let regex = try? NSRegularExpression(pattern: pattern) {
let range = NSRange(filteredText.startIndex..., in: filteredText)
filteredText = regex.stringByReplacingMatches(in: filteredText, options: [], range: range, withTemplate: "")
}
}
filteredText = filteredText.replacingOccurrences(of: #"\s{2,}"#, with: " ", options: .regularExpression)
filteredText = filteredText.trimmingCharacters(in: .whitespacesAndNewlines)
return filteredText
}
}

View File

@ -181,7 +181,8 @@ class AIEnhancementService: ObservableObject {
if aiService.selectedProvider == .ollama { if aiService.selectedProvider == .ollama {
do { do {
let result = try await aiService.enhanceWithOllama(text: formattedText, systemPrompt: systemMessage) let result = try await aiService.enhanceWithOllama(text: formattedText, systemPrompt: systemMessage)
return result let filteredResult = AIEnhancementOutputFilter.filter(result)
return filteredResult
} catch let error as LocalAIError { } catch let error as LocalAIError {
switch error { switch error {
case .serviceUnavailable: case .serviceUnavailable:
@ -251,7 +252,8 @@ class AIEnhancementService: ObservableObject {
throw EnhancementError.enhancementFailed throw EnhancementError.enhancementFailed
} }
return enhancedText.trimmingCharacters(in: .whitespacesAndNewlines) let filteredText = AIEnhancementOutputFilter.filter(enhancedText.trimmingCharacters(in: .whitespacesAndNewlines))
return filteredText
case 401: case 401:
throw EnhancementError.authenticationFailed throw EnhancementError.authenticationFailed
@ -306,7 +308,8 @@ class AIEnhancementService: ObservableObject {
throw EnhancementError.enhancementFailed throw EnhancementError.enhancementFailed
} }
return enhancedText.trimmingCharacters(in: .whitespacesAndNewlines) let filteredText = AIEnhancementOutputFilter.filter(enhancedText.trimmingCharacters(in: .whitespacesAndNewlines))
return filteredText
case 401: case 401:
throw EnhancementError.authenticationFailed throw EnhancementError.authenticationFailed
@ -368,7 +371,8 @@ class AIEnhancementService: ObservableObject {
throw EnhancementError.enhancementFailed throw EnhancementError.enhancementFailed
} }
return enhancedText.trimmingCharacters(in: .whitespacesAndNewlines) let filteredText = AIEnhancementOutputFilter.filter(enhancedText.trimmingCharacters(in: .whitespacesAndNewlines))
return filteredText
case 401: case 401:
throw EnhancementError.authenticationFailed throw EnhancementError.authenticationFailed

View File

@ -52,7 +52,7 @@ enum AIProvider: String, CaseIterable {
case .deepSeek: case .deepSeek:
return "deepseek-chat" return "deepseek-chat"
case .gemini: case .gemini:
return "gemini-2.5-pro" return "gemini-2.0-flash-lite"
case .anthropic: case .anthropic:
return "claude-sonnet-4-0" return "claude-sonnet-4-0"
case .mistral: case .mistral:
@ -75,7 +75,8 @@ enum AIProvider: String, CaseIterable {
case .groq: case .groq:
return [ return [
"llama-3.3-70b-versatile", "llama-3.3-70b-versatile",
"llama-3.1-8b-instant" "llama-3.1-8b-instant",
"qwen/qwen3-32b"
] ]
case .openAI: case .openAI:
return [ return [

View File

@ -73,7 +73,6 @@ struct EnhancementSettingsView: View {
.padding() .padding()
.background(Color(.windowBackgroundColor).opacity(0.4)) .background(Color(.windowBackgroundColor).opacity(0.4))
.cornerRadius(10) .cornerRadius(10)
.opacity(enhancementService.isEnhancementEnabled ? 1.0 : 0.6)
// 3. Enhancement Modes & Assistant Section // 3. Enhancement Modes & Assistant Section
VStack(alignment: .leading, spacing: 16) { VStack(alignment: .leading, spacing: 16) {
@ -102,7 +101,6 @@ struct EnhancementSettingsView: View {
} }
.padding() .padding()
.background(CardBackground(isSelected: false)) .background(CardBackground(isSelected: false))
.opacity(enhancementService.isEnhancementEnabled ? 1.0 : 0.6)
} }
} }
.padding(24) .padding(24)