fix: decir una categoria a secas devolvia el menu principal
Los submenus estaban marcados nlu_skip para que la IA no ruteara a navegacion, pero eso dejo solo las hojas en el catalogo: "ausentismo" tenia cuatro candidatos y ninguno se llamaba asi, "sanidad" ninguno, "produccion" dos. Como no podia elegir, caia al fallback y aparecia el menu principal, que se siente como que ignoro el mensaje. Las cuatro categorias vuelven a ser ruteables. Para que el filtro de permisos las alcance —por tipo un menu no es ni subida ni descarga— se agrega nlu_dir, con lo que cat 1 solo ve registrar y cat 2 solo consultar, y la ambiguedad se resuelve sola. Cat 3 ve las dos, asi que tiene un menu que pregunta cual. Cuando aun asi no rutea, ahora avisa antes de mostrar el menu. Se quita el aprendizaje por usuario: el orden por uso lo resuelve Palmas360 sobre los registros reales, y dos criterios compitiendo sobraba. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
2d92867431
commit
6a6f2ef44a
+10
-2
@@ -428,9 +428,15 @@ PROMPT;
|
||||
$type = $flow['type'] ?? 'text';
|
||||
$fn = $flow['function'] ?? '';
|
||||
|
||||
// nlu_dir deja que un menú de categoría declare su dirección: por tipo
|
||||
// no es ni subida ni descarga, y sin eso el filtro de permisos no lo
|
||||
// tocaba y se le ofrecían informes a quien solo reporta.
|
||||
$dirDeclarada = $flow['nlu_dir'] ?? '';
|
||||
$isUpload = in_array($type, ['collect_and_post', 'collect_for_each', 'submit_form'], true)
|
||||
|| ($type === 'function' && $fn === 'upload_ciclo');
|
||||
$isDownload = ($type === 'function' && $fn === 'api_report');
|
||||
|| ($type === 'function' && $fn === 'upload_ciclo')
|
||||
|| $dirDeclarada === 'subida';
|
||||
$isDownload = ($type === 'function' && $fn === 'api_report')
|
||||
|| $dirDeclarada === 'descarga';
|
||||
|
||||
// Permission filter:
|
||||
// type 1 = solo reporta (upload), type 2 = solo recibe (download), type 3 = ambos
|
||||
@@ -479,6 +485,8 @@ PROMPT;
|
||||
. "Pero elegí el key así:\n"
|
||||
. " · Dijo QUÉ informe (\"todos los lotes\", \"más atrasados\", \"histórico\") → ruteá a ese informe.\n"
|
||||
. " · Solo nombró el tema y el filtro → ruteá al menú del tema, para que él elija el informe.\n"
|
||||
. " · Nombró solo una categoría (\"ausentismo\", \"producción\", \"sanidad\", \"ciclos\") → ruteá al\n"
|
||||
. " menú de esa categoría. NUNCA respondas por chat pidiendo que aclare: el menú ya pregunta.\n"
|
||||
. "Ejemplos:\n"
|
||||
. " \"quiero el informe de mantenimiento de plateo\" → {\"action\":\"route\",\"key\":\"ciclo_mantenimiento\",\"entities\":{\"grupo\":\"plateo\"}}\n"
|
||||
. " \"mantenimiento de plateo, todos los lotes\" → {\"action\":\"route\",\"key\":\"ciclo_mantenimiento_todos\",\"entities\":{\"grupo\":\"plateo\"}}\n"
|
||||
|
||||
Reference in New Issue
Block a user