OpenXava 7.7 introduce un asistente de chat potenciado por IA que permite a los usuarios interactuar con los datos de tu aplicación usando lenguaje natural. El panel de chat está integrado directamente en la interfaz de usuario de OpenXava y proporciona una forma conversacional de consultar, filtrar e incluso modificar datos.
El chat IA usa LangChain4j para conectarse a modelos de lenguaje compatibles con OpenAI, permitiendo una comprensión sofisticada del lenguaje natural. Los usuarios pueden hacer preguntas sobre sus datos, solicitar filtrado de listas y realizar modificaciones de datos—todo mediante simples comandos conversacionales.
El chat IA proporciona un rico conjunto de capacidades para los usuarios finales:
Los usuarios pueden hacer preguntas sobre sus datos en lenguaje natural:
El chat puede acceder a datos de cualquier módulo, no solo del que está abierto actualmente. Por ejemplo, mientras visualizas clientes, puedes preguntar sobre productos o facturas.
El chat también soporta acceso a datos de colecciones de elementos y entidades relacionadas, permitiendo consultas complejas como "Dime qué productos se han facturado en la factura 2021/1".
Los usuarios pueden filtrar la lista actual usando lenguaje natural:
El filtrado funciona con múltiples campos, fechas y comparadores (mayor que, menor que, etc.). Cuando el usuario está en modo lista del módulo correspondiente, el filtro se aplica directamente a la lista. Cuando está en modo detalle o en un módulo diferente, los resultados se devuelven en la respuesta del chat.
Los usuarios pueden modificar datos mediante comandos en lenguaje natural:
El chat respeta el estado editable/solo lectura de los campos. Si un campo no es editable, el chat no lo modificará, aunque el usuario lo solicite.
Modificaciones avanzadas: La IA puede realizar operaciones masivas sofisticadas que de otro modo requerirían acciones personalizadas. Por ejemplo, puedes decir "Incrementa el precio de todos los coches en un 10%" y la IA entenderá y ejecutará esta operación en todos los registros coincidentes—sin necesitar un campo específico de "tipo de vehículo" ni una acción dedicada en la aplicación.
El chat entiende y responde en múltiples idiomas. Los usuarios pueden hacer preguntas en español, inglés u otros idiomas:
El chat mantiene el contexto de la conversación, permitiendo preguntas de seguimiento:
Los usuarios pueden iniciar una nueva conversación haciendo clic en el botón "Nueva conversación", que limpia la memoria.
El chat siempre trabaja con el estado actual de los datos. Si añades un nuevo cliente y luego preguntas "¿Cuántos clientes tengo ahora?", reflejará el recuento actualizado.
Los proyectos creados con OpenXava 7.7 o posterior ya incluyen la dependencia del chat IA. No se requiere configuración adicional más allá de configurar la clave API.
Si estás actualizando desde una versión anterior a 7.7, necesitas añadir la dependencia del chat IA a tu pom.xml:
<!-- Funcionalidad Chat IA (requiere Java 17) -->
<dependency>
<groupId>org.openxava</groupId>
<artifactId>openxava-7.7-chat-jdk17</artifactId>
<version>${openxava.version}</version>
</dependency>
Importante: Esta dependencia requiere Java 17 o superior. Si tu proyecto usa Java 8 u 11, necesitarás actualizar a Java 17 para usar la funcionalidad de chat IA. El resto de OpenXava 7.7 sigue funcionando con Java 8.
El chat IA se puede configurar mediante propiedades en tu archivo xava.properties:
Especifica el modelo de IA a usar. El valor por defecto es gpt-5-mini.
# Modelo de IA a usar para el chat
chatModelName=gpt-5-mini
Recomendamos usar gpt-5-mini como modelo mínimo para un buen comportamiento. Modelos más pequeños o menos capaces pueden no entender consultas complejas o producir resultados incorrectos. También puedes usar modelos más potentes como gpt-5 para obtener mejores resultados, aunque pueden ser más lentos y costosos.
Habilita o deshabilita la funcionalidad de chat. El valor por defecto es true.
# Pon a false para deshabilitar el chat IA
chatAvailable=false
Cuando se establece a false, el botón y panel de chat no aparecerán en la interfaz de usuario.
Habilita o deshabilita la capacidad de modificar datos a través del chat. El valor por defecto es true.
# Pon a false para hacer el chat de solo lectura
chatModifyDataAvailable=false
Cuando se establece a false, los usuarios pueden consultar y filtrar datos pero no pueden modificarlos a través del chat. Esto es útil para entornos donde quieres proporcionar consultas potenciadas por IA sin el riesgo de modificaciones accidentales de datos.
Habilita o deshabilita el nivel de servicio prioritario para las llamadas a la API de OpenAI. El valor por defecto es true.
# Pon a false para usar el nivel de servicio estándar
chatPriorityServiceTier=false
Cuando está habilitado, el chat usa el nivel de servicio prioritario de OpenAI que puede proporcionar tiempos de respuesta más rápidos.
El chat IA requiere una clave API de OpenAI para funcionar. Debes establecer la variable de entorno OPENAI_API_KEY con tu clave API:
# Linux/macOS
export OPENAI_API_KEY=tu-clave-api-aqui
# Windows
set OPENAI_API_KEY=tu-clave-api-aqui
Puedes obtener una clave API desde la plataforma de OpenAI.
Nota de seguridad: Nunca escribas tu clave API directamente en el código fuente o en archivos de configuración que puedan ser subidos al control de versiones. Usa siempre variables de entorno o soluciones seguras de gestión de secretos.