Solution 0x652a4c8d8d614a77a0eafb2df15ecc122e7733c2d0939ac32325dd8c8b78002d
All checks were successful
elffuss/validation Validation passed
All checks were successful
elffuss/validation Validation passed
T2T-Item: 0x652a4c8d8d614a77a0eafb2df15ecc122e7733c2d0939ac32325dd8c8b78002d T2T-Issue: 0x848d97f788f6a99d51bb5fed8b5045346c66a05c693b03fbe211bd811ee80443
This commit is contained in:
@@ -397,6 +397,12 @@ async function pickLocalBrain() {
|
||||
}
|
||||
// heurística vieja como último recurso síncrono
|
||||
const defaultBrain = () => !realGPU ? 'onnx' : (isMobile() ? 'litert:gemma-e2b' : 'litert:gemma-e4b');
|
||||
const litertModels = await import('./providers/litert.js').then(m => m.MODELS || {});
|
||||
for (const [id, model] of Object.entries(litertModels)) {
|
||||
if (realGPU) {
|
||||
opts.push({ id: `litert:${id}`, label: model.label });
|
||||
}
|
||||
}
|
||||
|
||||
// El runtime propio y su modelo grande se SONDEAN, no se cablean: el motor
|
||||
// llega por rsync y el modelo son gigabytes que pueden no estar alojados.
|
||||
@@ -434,10 +440,9 @@ const modelo27Check = (async () => {
|
||||
// imposible elegir Bonsai por mucho que el motor lo sirviera. Es justo el modo
|
||||
// de fallo que avisa el comentario de `modelo27Check`: un nombre duplicado es un
|
||||
// nombre que se queda viejo.
|
||||
function modelOptionsLocales() {
|
||||
async function modelOptionsLocales() {
|
||||
const opts = [];
|
||||
if (realGPU) opts.push({ id: 'litert:gemma-e4b', label: 'Gemma-4 E4B · LiteRT-LM (~4 GB) ★' });
|
||||
if (realGPU) opts.push({ id: 'litert:gemma-e2b', label: 'Gemma-4 E2B · LiteRT-LM (~2 GB)' });
|
||||
|
||||
opts.push({ id: 'onnx', label: 'Elffuss LM (healed · 850 MB) — ligero' });
|
||||
opts.push({ id: 'onnx:qwen3.5-0.8b', label: 'Qwen3.5-0.8B · WebGPU (~600 MB)' });
|
||||
if (realGPU && ENGINE_READY) opts.push({ id: 'engine:qwen35-0.8b', label: 'Qwen3.5-0.8B · Elffuss Engine (~800 MB)' });
|
||||
|
||||
Reference in New Issue
Block a user