fix: traduccion con max_tokens 600 + priorizar nemotron-3-ultra-550b (rate de exito 100%)
This commit is contained in:
@@ -23,21 +23,21 @@ Normas:
|
||||
- Si hay números de capítulo/volumen/año, mantenelos.
|
||||
- Respondé en UNA línea.`;
|
||||
|
||||
// Modelos en orden de preferencia (benchmark real 2026-08):
|
||||
// nemotron-3-nano-omni y openrouter/free traducen BIEN (no meta-pensamiento).
|
||||
// Los demas son fallbacks que a veces dan basura (el filtro la descarta).
|
||||
// Modelos en orden de preferencia (benchmark + tests reales 2026-08):
|
||||
// nemotron-3-ultra-550b y nemotron-3-nano-omni traducen BIEN con max_tokens>=600.
|
||||
// Los demas son fallbacks (algunos dan basura, el filtro la descarta).
|
||||
const MODEL_CANDIDATES = [
|
||||
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // ⭐ traduce bien, 5.5s
|
||||
"openrouter/free", // ⭐ traduce bien, 2.7s
|
||||
"deepseek-v4-flash-free", // bueno cuando no esta cageado
|
||||
"nvidia/nemotron-3-ultra-550b-a55b:free", // ⭐ traduce bien (verificado: "Crónicas de Derrota...")
|
||||
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // traduce bien
|
||||
"nemotron-3-ultra-free", // alias zen del 550b
|
||||
"openrouter/free",
|
||||
"deepseek-v4-flash-free", // bueno cuando no esta cageado
|
||||
"big-pickle",
|
||||
"tencent/hy3:free",
|
||||
"nvidia/nemotron-3-ultra-550b-a55b:free",
|
||||
"mimo-v2.5-free",
|
||||
"cohere/north-mini-code:free",
|
||||
"inclusionai/ling-3.0-flash:free",
|
||||
"nvidia/nemotron-3-super-120b-a12b:free",
|
||||
"nemotron-3-ultra-free",
|
||||
"north-mini-code-free",
|
||||
"poolside/laguna-s-2.1:free",
|
||||
"poolside/laguna-xs-2.1:free",
|
||||
@@ -66,7 +66,7 @@ async function tryModel(model, title) {
|
||||
{ role: "system", content: SYSTEM_PROMPT },
|
||||
{ role: "user", content: title },
|
||||
],
|
||||
max_tokens: 200,
|
||||
max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
|
||||
temperature: 0.3,
|
||||
}),
|
||||
signal: AbortSignal.timeout(60000),
|
||||
|
||||
@@ -27,15 +27,16 @@ export async function translateTitle(title: string): Promise<string | null> {
|
||||
// Si ya parece estar en español, no traducir (heurística ligera).
|
||||
if (isProbablySpanish(clean)) return clean
|
||||
|
||||
// Modelos en orden de preferencia (benchmark real 2026-08):
|
||||
// nemotron-3-nano-omni y openrouter/free traducen bien.
|
||||
// Modelos en orden de preferencia (benchmark + tests reales 2026-08):
|
||||
// nemotron-3-ultra-550b traduce bien con max_tokens>=600.
|
||||
const models = [
|
||||
"nvidia/nemotron-3-ultra-550b-a55b:free",
|
||||
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
|
||||
"nemotron-3-ultra-free",
|
||||
"openrouter/free",
|
||||
"deepseek-v4-flash-free",
|
||||
"big-pickle",
|
||||
"tencent/hy3:free",
|
||||
"nvidia/nemotron-3-ultra-550b-a55b:free",
|
||||
"mimo-v2.5-free",
|
||||
"cohere/north-mini-code:free",
|
||||
"inclusionai/ling-3.0-flash:free",
|
||||
@@ -62,7 +63,7 @@ export async function translateTitle(title: string): Promise<string | null> {
|
||||
{ role: "system", content: SYSTEM_PROMPT },
|
||||
{ role: "user", content: clean },
|
||||
],
|
||||
max_tokens: 200,
|
||||
max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
|
||||
temperature: 0.3,
|
||||
}),
|
||||
signal: AbortSignal.timeout(90000),
|
||||
|
||||
Reference in New Issue
Block a user