Cómo se usa la IA aquí. Los fragmentos son código real del repositorio.
Usuario a ser usado: contador@demo.empresa.mx (contraseña Demo2026!)
No expone herramientas propias a la IA.
01 Agiliza con IA: muestra textos de ayuda guiados por rol
Agiliza con IA: muestra textos de ayuda guiados por rol. No llama a servicios ni al modelo.
@GetMapping("/agiliza-ia")
public String agilizaIa(@RequestParam(required = false) String opcion, Authentication usuario, Model modelo) {
Set<String> roles = usuario.getAuthorities().stream()
.map(a -> a.getAuthority().replace("ROLE_", ""))
.collect(Collectors.toSet());
modelo.addAttribute("titulo", "Agiliza con IA");
modelo.addAttribute("seccion", "agiliza");
modelo.addAttribute("opciones", SugerenciasIa.opciones(roles));
modelo.addAttribute("elegida", SugerenciasIa.opcion(roles, opcion).orElse(null));
return "agiliza/ia";
}
Qué hace: Las opciones dependen de los roles del usuario y solo muestran texto de ayuda.
02 La sugerencia de póliza sí llega a Nexus
La sugerencia de póliza sí llega a Nexus.
@Tool(name = "sugerir_poliza",
description = "Propone una póliza contable a partir de la descripción de una operación. No la registra. "
+ "Devuelve el identificador de la acción y un código de confirmación de una sola vez; "
+ "la póliza solo se registra cuando se confirma con confirmar_accion usando ese código.")
public String sugerirPoliza(
@ToolParam(description = "Descripción de la operación contable, con montos y moneda", required = true) String descripcion) {
RegistroHerramientasUsadas.registrar("sugerir_poliza");
AccionPendiente accion = servicio.get().preparar(usuarioActual(), descripcion);
return "Acción " + accion.id() + " preparada, vence " + accion.expiraUtc() + ". "
+ accion.resumen() + ". Código de confirmación: " + codigos.generar(accion.id(), accion.usuario())
+ ". Nada se ha registrado todavía.";
}
Qué hace: La herramienta sugerir_poliza es la que usa la pantalla de pólizas para proponer el asiento.
Regla del proyecto: la IA propone o prepara; la persona confirma con el código de 8 dígitos. Ninguna herramienta de escritura cambia datos por sí sola.