feat: update to June 2026 models (Claude Sonnet 4.6, Gemini 3.5 Flash), add glossary button, and implement cost factor quota & vision fallback
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m4s

This commit is contained in:
2026-06-14 11:05:53 +02:00
parent 5fd087979b
commit 136d40c7d8
10 changed files with 145 additions and 74 deletions

View File

@@ -535,7 +535,7 @@ export default function AdminSettingsPage() {
<ProviderCard
title="Traduction IA Premium"
description="Affichée aux utilisateurs comme 'Traduction IA Premium'. Modèles haute qualité : openai/gpt-4o, anthropic/claude-3.5-sonnet, google/gemini-1.5-pro. Partage la même clé OpenRouter."
description="Affichée aux utilisateurs comme 'Traduction IA Premium'. Modèles haute qualité : openai/gpt-4o, anthropic/claude-sonnet-4.6, google/gemini-3.5-pro. Partage la même clé OpenRouter."
enabled={config.openrouter_premium.enabled}
onToggle={(enabled) => updateProvider("openrouter_premium", { enabled })}
onTest={() => testProvider("openrouter_premium")}
@@ -552,10 +552,10 @@ export default function AdminSettingsPage() {
isLoading={loadingModelsProvider === "openrouter"}
onFetchModels={() => fetchModels("openrouter")}
providerLabel="OpenRouter"
placeholder="openai/gpt-4o-mini"
placeholder="anthropic/claude-sonnet-4.6"
/>
<p className="text-xs text-muted-foreground">
Recommandé : <code>openai/gpt-4o-mini</code> (~0.15/doc) ou <code>anthropic/claude-3.5-haiku</code> (~0.20/doc)
Recommandé : <code>anthropic/claude-sonnet-4.6</code> (~0.20/doc) ou <code>openai/gpt-4o</code> (~0.30/doc)
</p>
</div>
</ProviderCard>

View File

@@ -296,13 +296,22 @@ export default function GlossariesPage() {
</span>
)}
{glossaries.length > 0 && (
<Link
href="/dashboard/translate"
className="flex items-center gap-1.5 text-[11px] font-bold text-brand-accent hover:underline shrink-0"
>
<ExternalLink size={12} />
{t('glossaries.grid.goToTranslate')}
</Link>
<>
<button
onClick={() => setCreateDialogOpen(true)}
className="premium-button px-4 py-2 text-[11px] uppercase tracking-widest !rounded-lg inline-flex items-center gap-1.5 cursor-pointer font-bold shrink-0 shadow-sm"
>
<Plus size={12} />
{t('glossaries.createNew') || "Créer un glossaire"}
</button>
<Link
href="/dashboard/translate"
className="flex items-center gap-1.5 text-[11px] font-bold text-brand-accent hover:underline shrink-0"
>
<ExternalLink size={12} />
{t('glossaries.grid.goToTranslate')}
</Link>
</>
)}
</div>
</div>

View File

@@ -8,9 +8,9 @@ export const openaiModels = [
];
export const openrouterModels = [
{ id: "deepseek/deepseek-chat-v3-0324", name: "DeepSeek V3" },
{ id: "anthropic/claude-3.5-haiku", name: "Claude 3.5 Haiku" },
{ id: "google/gemini-2.0-flash-001", name: "Gemini 2.0 Flash" },
{ id: "google/gemini-3.5-flash", name: "Gemini 3.5 Flash" },
{ id: "deepseek/deepseek-chat", name: "DeepSeek Chat" },
{ id: "anthropic/claude-sonnet-4.6", name: "Claude Sonnet 4.6" },
];
interface TranslationSettings {