Etiqueta

19 de febrero de 2025

Ejemplo HTTP Worker para IA

La última versión de Omnis recientemente liberada (Omnis Studio 11.2 Revision 39462) nos muestra como acceder a los modelos de IA haciendo uso de sus API’s mediante el objeto HTTP Worker de Omnis. Se ha agregado una aplicación-ejemplo llamada HTTP AI a la sección “Samples” del “Hub” en el navegador de Studio para demostrar cómo acceder a varios modelos de IA. Naturalmente, primero deberemos disponer de una clave API del proveedor de IA correspondiente, para así, poder hacer uso de su servicio, pero, para empezar seguramente lo mejor es solicitar una clave o “key” gratuita de demostración.

En el ejemplo, Omnis utiliza un objeto HTTP Worker para realizar llamadas RESTful a la API del servicio de IA correspondiente. Se proporcionan clases-objeto para realizar llamadas a Gemini, OpenAI y Anthropic de Google, que heredan el objeto HTTP Worker; también se incluye compatibilidad con AI Vision, que permite analizar e interpretar imagenes. Desde cada una de estas clases-objeto, se invoca al método denominado “$runprompt” el cual se encarga de generar la solicitud en formato JSON y de realizar la llamada RESTful. Al finalizar, se invoca al método “$completed” el cual se encarga de pasar los resultados al método “$ai_completed” o al “$ai_error” (si se ha producido un error) correspondientes a la instancia de ventana que se encargo de invocar a la API. Se proporciona una clase-objeto adicional denominada “oAIFunctions” donde es posible agregar métodos con el prefijo “$ai_” para añadir (si así se desea) otras funciones, tal como se muestra en el ejemplo.


Las configuraciones de IA usadas en el ejemplo han sido agregadas al archivo de configuración “userconfig.json” en un grupo específico denominado “ai”, lo cual también permite incluir la clave API que se almacena en texto sin formato.

3 de enero de 2025

Nueva funcionalidad jsRemoteForm (history stack)

 La última revisión de Omnis Studio 11.2, incorpora una (más que interesante) funcionalidad que añadir a nuestras aplicaciones Web, denominada "history stack".

El "history stack" puede estar formado por la lista de páginas que visitamos o por los estados entre los que navega un usuario durante el transcurso de una sesión abierta desde el navegador. Los estados en dicho historial pueden ser agregados o reemplazados, pero nunca eliminados.

Sin embargo, al agregarse un nuevo estado, se invalidan los estados que estén por delante de la posición actual del usuario. El historial persiste durante el tiempo que dure la sesión con el usuario, aún en el caso de que éste refresque la página.

Una nueva aplicación de muestra incluida en el "HUB" denominada "JS History" nos enseña cómo es posible hacer uso de las flechas de dirección del navegador web (ver imagen superior) para moverse entre las diferentes pestañas del formulario"jsRemoteForm".

El comportamiento habitual de los botones del navegador puede ser cambiado mediante un nuevo método en los "jsRemoteForm" denominado "$pushhistorystate()", el cual puede ser ejecutado desde un método de tipo cliente o bien de servidor.

Cuando el usuario usa los botones "Atrás" o "Adelante" del navegador para moverse por el historial, lo que sucederá es que se invocará un método de devolución de llamada denominado "$applynewhistory", que a su vez recibirá el valor de "$pushhistorystate" como parámetro.

Gracias a ésta nueva funcionalidad nuestras aplicaciones Web se verán aún mas integradas en la ventana de navegación del cliente Web, mejorando su experiencia de uso.