Saltar al contenido principal

config.json — Configuración del Router

El archivo config/config.json controla el comportamiento global del motor de enrutamiento y del servidor.

Configurador Web Online

Para facilitar la creación de tus archivos de configuración, puedes utilizar el Configurador Online de l3mcore para generar de forma visual e intuitiva tu archivo experts.json.

Estructura completa

{
"router": {
"mode": "generic",
"router_type": "embedding",
"model_path": "intfloat/multilingual-e5-small",
"categories_file": "config/experts.json",
"confidence_threshold": 0.4,
"keyword_fallback": true,
"softmax_temperature": 0.15,
"scoring_weights": {
"max_keyword": 0.40,
"description": 0.30,
"mean_keyword": 0.20,
"top3_vote": 0.10
}
}
}

Referencia de parámetros

ParámetroTipoPor defectoDescripción
modestring"generic""generic" usa experts.json. "model" usa un clasificador propio.
router_typestring"embedding""embedding" para búsqueda semántica vectorial (recomendado). "classification" para modelo BERT fine-tuned.
model_pathstring"intfloat/multilingual-e5-small"Repo HuggingFace o ruta local. Vacío "" para deshabilitar ML y usar solo keywords.
categories_filestring"config/experts.json"Ruta al archivo de expertos. Debe estar dentro del proyecto (seguridad).
confidence_thresholdfloat0.4Probabilidad mínima para seleccionar un experto. Si nadie la alcanza, se usan fallbacks.
keyword_fallbackbooltrueActiva matching difuso si el ML falla o queda por debajo del umbral.
softmax_temperaturefloat0.15Controla la "decisividad" del router. Mas bajo = mas decisivo. Mas alto = mas suave.
scoring_weightsobjectver abajoPesos de la formula hibrida de puntuacion.
context_messagesint3Numero de mensajes recientes del usuario a concatenar para el enrutamiento en cascada cuando el ultimo mensaje tiene baja confianza.
context_max_charsint1600Maximo de caracteres para el texto de contexto concatenado, para respetar la ventana de tokens del modelo de embeddings.

Ajuste de pesos (scoring_weights)

Los cuatro pesos deben sumar 1.0:

PesoPor defectoQué controla
max_keyword0.40Similitud máxima con cualquier keyword individual. Detecta términos precisos.
description0.30Similitud con la descripción del experto. Captura la intención general.
mean_keyword0.20Similitud media con todas las keywords. Mide cobertura general del dominio.
top3_vote0.10Fracción de las 3 mejores keywords sobre umbral 0.4. Requiere consenso.

Ejemplos de ajuste

Priorizar coincidencias exactas de términos técnicos:

"scoring_weights": {
"max_keyword": 0.55,
"description": 0.20,
"mean_keyword": 0.20,
"top3_vote": 0.05
}

Priorizar comprensión semántica general:

"scoring_weights": {
"max_keyword": 0.25,
"description": 0.50,
"mean_keyword": 0.20,
"top3_vote": 0.05
}

Temperatura Softmax

La temperatura controla qué tan "seguro" es el router al elegir:

  • 0.05 – 0.15 → Router muy decisivo, una sola opción domina
  • 0.20 – 0.35 → Equilibrado (recomendado)
  • 0.50+ → Las diferencias entre expertos se suavizan, puede causar enrutamiento impreciso
aviso

Bajar demasiado la temperatura (< 0.05) puede hacer que el router sea rígido y elija mal en casos límite. Sube el confidence_threshold en su lugar si quieres más rigor.