feat: Reorder AI providers

This commit is contained in:
Beingpax 2025-07-25 11:51:20 +05:45
parent c9805d295e
commit f7357b2fcf

View File

@ -2,81 +2,87 @@ import Foundation
import os
enum AIProvider: String, CaseIterable {
case cerebras = "Cerebras"
case groq = "GROQ"
case openAI = "OpenAI"
case deepSeek = "DeepSeek"
case gemini = "Gemini"
case anthropic = "Anthropic"
case openAI = "OpenAI"
case deepSeek = "DeepSeek"
case openRouter = "OpenRouter"
case mistral = "Mistral"
case ollama = "Ollama"
case elevenLabs = "ElevenLabs"
case deepgram = "Deepgram"
case ollama = "Ollama"
case custom = "Custom"
case cerebras = "Cerebras"
var baseURL: String {
switch self {
case .cerebras:
return "https://api.cerebras.ai/v1/chat/completions"
case .groq:
return "https://api.groq.com/openai/v1/chat/completions"
case .openAI:
return "https://api.openai.com/v1/chat/completions"
case .deepSeek:
return "https://api.deepseek.com/v1/chat/completions"
case .gemini:
return "https://generativelanguage.googleapis.com/v1beta/models"
case .anthropic:
return "https://api.anthropic.com/v1/messages"
case .openAI:
return "https://api.openai.com/v1/chat/completions"
case .deepSeek:
return "https://api.deepseek.com/v1/chat/completions"
case .openRouter:
return "https://openrouter.ai/api/v1/chat/completions"
case .mistral:
return "https://api.mistral.ai/v1/audio/transcriptions"
case .elevenLabs:
return "https://api.elevenlabs.io/v1/speech-to-text"
case .ollama:
return UserDefaults.standard.string(forKey: "ollamaBaseURL") ?? "http://localhost:11434"
case .deepgram:
return "https://api.deepgram.com/v1/listen"
case .ollama:
return UserDefaults.standard.string(forKey: "ollamaBaseURL") ?? "http://localhost:11434"
case .custom:
return UserDefaults.standard.string(forKey: "customProviderBaseURL") ?? ""
case .cerebras:
return "https://api.cerebras.ai/v1/chat/completions"
}
}
var defaultModel: String {
switch self {
case .cerebras:
return "qwen-3-32b"
case .groq:
return "qwen/qwen3-32b"
case .openAI:
return "gpt-4.1-mini"
case .deepSeek:
return "deepseek-chat"
case .gemini:
return "gemini-2.0-flash-lite"
case .anthropic:
return "claude-sonnet-4-0"
case .openAI:
return "gpt-4.1-mini"
case .deepSeek:
return "deepseek-chat"
case .mistral:
return "mistral-large-latest"
case .elevenLabs:
return "scribe_v1"
case .ollama:
return UserDefaults.standard.string(forKey: "ollamaSelectedModel") ?? "mistral"
case .deepgram:
return "whisper-1"
case .ollama:
return UserDefaults.standard.string(forKey: "ollamaSelectedModel") ?? "mistral"
case .custom:
return UserDefaults.standard.string(forKey: "customProviderModel") ?? ""
case .openRouter:
return "openai/gpt-4o"
case .cerebras:
return "qwen-3-32b"
}
}
var availableModels: [String] {
switch self {
case .cerebras:
return [
"llama-4-scout-17b-16e-instruct",
"llama-3.3-70b",
"qwen-3-32b",
"qwen-3-235b-a22b"
]
case .groq:
return [
"llama-3.3-70b-versatile",
@ -84,16 +90,6 @@ enum AIProvider: String, CaseIterable {
"qwen/qwen3-32b",
"meta-llama/llama-4-maverick-17b-128e-instruct"
]
case .openAI:
return [
"gpt-4.1",
"gpt-4.1-mini"
]
case .deepSeek:
return [
"deepseek-chat",
"deepseek-reasoner"
]
case .gemini:
return [
"gemini-2.5-pro",
@ -109,6 +105,16 @@ enum AIProvider: String, CaseIterable {
"claude-3-5-haiku-latest",
"claude-3-5-sonnet-latest"
]
case .openAI:
return [
"gpt-4.1",
"gpt-4.1-mini"
]
case .deepSeek:
return [
"deepseek-chat",
"deepseek-reasoner"
]
case .mistral:
return [
"mistral-large-latest",
@ -117,21 +123,14 @@ enum AIProvider: String, CaseIterable {
]
case .elevenLabs:
return ["scribe_v1", "scribe_v1_experimental"]
case .ollama:
return []
case .deepgram:
return ["whisper-1"]
case .ollama:
return []
case .custom:
return []
case .openRouter:
return []
case .cerebras:
return [
"llama-4-scout-17b-16e-instruct",
"llama-3.3-70b",
"qwen-3-32b",
"qwen-3-235b-a22b"
]
}
}