diff --git a/migrations/0010_openrouter_only.sql b/migrations/0010_openrouter_only.sql new file mode 100644 index 0000000..21de841 --- /dev/null +++ b/migrations/0010_openrouter_only.sql @@ -0,0 +1,18 @@ +-- 0010_openrouter_only.sql +-- Migrer alle direkte Gemini-kall til OpenRouter. +-- All trafikk skal gå via OpenRouter for enhetlig kostnadssporing og routing. + +BEGIN; + +-- Oppdater gemini/ providers til openrouter/google/ ekvivalenter +UPDATE ai_model_providers +SET litellm_model = CASE + WHEN litellm_model = 'gemini/gemini-2.5-flash-lite' THEN 'openrouter/google/gemini-2.5-flash-lite-preview' + WHEN litellm_model = 'gemini/gemini-2.5-flash' THEN 'openrouter/google/gemini-2.5-flash-preview' + ELSE REPLACE(litellm_model, 'gemini/', 'openrouter/google/') + END, + api_key_env = 'OPENROUTER_API_KEY', + updated_at = now() +WHERE litellm_model LIKE 'gemini/%'; + +COMMIT; diff --git a/web/src/routes/server-admin/ai/+page.svelte b/web/src/routes/server-admin/ai/+page.svelte index 077b9fe..4003da5 100644 --- a/web/src/routes/server-admin/ai/+page.svelte +++ b/web/src/routes/server-admin/ai/+page.svelte @@ -103,7 +103,7 @@ let newProvider = $state<{ alias_id: string; litellm_model: string; api_key_env: string }>({ alias_id: '', litellm_model: '', - api_key_env: 'GEMINI_API_KEY' + api_key_env: 'OPENROUTER_API_KEY' }); // Ny alias-form @@ -416,7 +416,7 @@ if (!res.ok) throw new Error('Feil ved opprettelse'); const row = await res.json(); providers = [...providers, row]; - newProvider = { alias_id: '', litellm_model: '', api_key_env: 'GEMINI_API_KEY' }; + newProvider = { alias_id: '', litellm_model: '', api_key_env: 'OPENROUTER_API_KEY' }; } catch { errorMsg = 'Kunne ikke legge til provider'; } @@ -667,6 +667,7 @@ {#each sortedAliases as alias (alias.id)} {@const ap = providersForAlias(alias.id)} + {@const primaryModel = ap.find(p => p.is_active)?.litellm_model} {#if editingAlias === alias.id}