File size: 1,803 Bytes
d305959
b30b7c5
d305959
 
b30b7c5
d305959
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b30b7c5
 
d305959
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Modelos que puede cargar el proveedor ONNX (transformers.js, WebGPU/wasm).
//
// Registro, no un solo modelo: el usuario elige, y por defecto se autoelige el
// mayor que entre en su máquina (ver pickLocalBrain en main.js).
//
// Límite práctico medido (ver coordinacion/ERRORES.md E-005): un ONNX de q4
// >~1 GB en disco revienta onnxruntime-web (OOM del heap wasm de 4 GB). Por eso
// los ONNX de aquí son pequeños; los grandes (Gemma) van por LiteRT-LM.
export const ONNX_MODELS = {
  'elffuss-lm': {
    key: 'elffuss-lm',
    label: 'Elffuss LM (healed · LFM2.5-1.2B)',
    id: 'KikoCis/Elffuss-LM-1.2B-ONNX',   // nuestro heal agéntico de LFM2.5
    dtype: 'q4',            // ¡NO q4f16! este modelo genera basura vía WebGPU con q4f16
    approxMB: 850,
    selfHosted: false,
    basePath: '/models/',
  },
  'qwen3.5-0.8b': {
    key: 'qwen3.5-0.8b',
    label: 'Qwen3.5-0.8B (WebGPU)',
    id: 'onnx-community/Qwen3.5-0.8B-ONNX',  // más nuevo que el 3-0.6B; verificado in-browser
    dtype: 'q4f16',        // q4 peta con bad_alloc en este modelo; q4f16 genera limpio
    approxMB: 600,
    selfHosted: false,
    basePath: '/models/',
    reasoning: true,        // Qwen3.5 híbrido con modo «thinking» (se limpia en onnx.js)
  },
};

// Modelo ONNX activo. `let` con export = binding vivo: onnx.js ve el cambio
// cuando setOnnxModel() reasigna. Por defecto, el nuestro (compatibilidad).
export let MODEL = ONNX_MODELS['elffuss-lm'];

export function setOnnxModel(key) {
  if (ONNX_MODELS[key]) MODEL = ONNX_MODELS[key];
  return MODEL;
}

// Los modelos EXTERNOS (OpenAI, Anthropic, Ollama local incl. Qwen3.8-27B, y el
// servidor Ornith) son configuración avanzada opt-in → js/settings.js +
// js/providers/api.js. Qwen3.8-27B NO cabe en el navegador; se usa por ahí.