This commit is contained in:
@@ -7,7 +7,7 @@ import 'package:path_provider/path_provider.dart';
|
||||
|
||||
/// Which backend answers chat requests. Embeddings (knowledge base) always
|
||||
/// stay on the local Nomic server regardless of this choice.
|
||||
enum AiProvider { local, ollama, lmstudio, anthropic, openai, gemini }
|
||||
enum AiProvider { local, ollama, lmstudio, anthropic, openai, gemini, openrouter }
|
||||
|
||||
extension AiProviderX on AiProvider {
|
||||
String get label => switch (this) {
|
||||
@@ -17,6 +17,7 @@ extension AiProviderX on AiProvider {
|
||||
AiProvider.anthropic => 'Anthropic (Claude)',
|
||||
AiProvider.openai => 'OpenAI (GPT)',
|
||||
AiProvider.gemini => 'Google (Gemini)',
|
||||
AiProvider.openrouter => 'OpenRouter',
|
||||
};
|
||||
|
||||
String get defaultModel => switch (this) {
|
||||
@@ -26,6 +27,9 @@ extension AiProviderX on AiProvider {
|
||||
AiProvider.anthropic => 'claude-opus-4-8',
|
||||
AiProvider.openai => 'gpt-5.1',
|
||||
AiProvider.gemini => 'gemini-2.5-flash',
|
||||
// OpenRouter routes to any model — IDs like "anthropic/claude-opus-4.8",
|
||||
// "openai/gpt-4o", "meta-llama/llama-3.3-70b-instruct".
|
||||
AiProvider.openrouter => 'openai/gpt-4o',
|
||||
};
|
||||
|
||||
/// Self-hosted OpenAI-compatible servers reachable over a base URL.
|
||||
@@ -39,7 +43,10 @@ extension AiProviderX on AiProvider {
|
||||
};
|
||||
|
||||
bool get needsApiKey => switch (this) {
|
||||
AiProvider.anthropic || AiProvider.openai || AiProvider.gemini => true,
|
||||
AiProvider.anthropic ||
|
||||
AiProvider.openai ||
|
||||
AiProvider.gemini ||
|
||||
AiProvider.openrouter => true,
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user