GeneXus Framework for SAP Leonardo

Unofficial Content

En GeneXus contamos con un módulo, llamado GeneXusAI, donde integramos las funciones más comunes de Inteligencia Artificial (AI) que brindan varios proveedores de cloud.

Uno de estos proveedores es SAP con su solución SAP Leonardo.

En particular desarrollamos una KB, que denominamos GeneXus SDK for SAP Leonardo, donde incluimos ejemplos de uso de los servicios free disponibles en SAP API Business Hub dentro de Business Services, en la sección SAP Leonardo ML - Functional Services.

SAP Leonardo es presentado como “your digital innovation system, bringing new technologies and services together to help businesses power their digital transformation”.

Es una API que incluye servicios REST que pueden ser consumidos para diferentes propósitos, cubriendo básicamente las siguientes áreas:
Internet of Things
Machine Learning
Blockchain

Llamamos a esta KB GeneXus Framework for SAP Leonardo (ver en ejecución), la cual no solo sirve para mostrar las posibilidades de GeneXus y SAP Leonardo trabajando juntos, sino también como punto de partida para estudiar el código de cada ejemplo y poder fácilmente replicarlo a las necesidades de cada desarrollador. Si bien hoy se incluyen los ejemplos/servicios que detallaremos a continuación, es incremental y continuaremos agregando más ejemplo/servicios. De la misma forma, cada desarrollador puede incluir los que considere necesarios a su desarrollo, utilizando en conjunto, GeneXus, OpenAPI Import y GeneXusAI, en la medida que SAP vaya liberando nuevos servicios.

A continuación explicamos los ejemplos incluidos en la Base de Conocimiento que se puede obtener aquí.

GXSAPLeonardo1

OCR

Servicio utilizado: Optical Character Recognition (OCR) API
Optical Character Recognition service takes an uploaded file and returns the text characters detected in the input.

Ejecución:
Se ingresan imágenes que contengan algún texto pero en formato .jpeg, .jpe, o .png y luego para cada imagen cargada se puede seleccionar la opción Recognize.

Se pueden seleccionar algunos parámetros a modo de cambiar el comportamiento del servicio de reconocimiento y al oprimir confirm, se invoca al servicio de SAP Leonardo el cual convierte la imagen a texto.

GXSAPLeonardo2

Scene Text

Servicio utilizado: Scene Text Recognition
Localizes and extracts text from natural images and scenes.

Ejecución:

Se ingresa una imagen y al seleccionar la opción Detect texts, la misma es enviada al servicio de SAP Leonardo, el cual detecta textos en la imagen indicando el texto, en formato txt y su posición dentro de la imagen. La aplicación, de acuerdo a esta posición, marca los textos en la imagen.

GXSAPLeonardo10

Image Classification

Servicio utilizado: Image Classifier Service
Detects the dominant objects present in an image from a set of 1000 categories such as trees, animals, food, vehicles, people, and more.

Ver tambien Retraining Service for image classification

Ejecución:
Se ingresan imágenes en formato jpg, jpe, jpeg, png, gif, bmp, tif o tiff y luego para cada imagen cargada se puede seleccionar la opción Classify.

GXSAPLeonardo3

Similarity Image

Servicios utilizados: Image Feature Extraction API y Similarity Scoring API
Image Feature Extraction API
Is capable of extracting feature vectors for any given image which can be used for comparison, informational retrieval, clustering or further processing.

Similarity Scoring API
Compares vectors using a similarity score (cosine distance) ranging from -1 to 1. The similarity score is calculated based on the cosine similarity of the vectors. The vectors retrieved from the "image feature extraction" and "document feature extraction" services can be used as inputs for this service.

Ejecución:
Se ingresan pares de imágenes en diferentes formatos, tales como .jpeg, .png, .tif o .bmp y luego para cada par de imágenes cargadas se puede seleccionar la opción Compara.

Esta opción llama al servicio Image Feature Extraction para cada imagen con lo que obtiene el vector de características de cada una, luego envía ambos vectores al servicio Similarity Scoring y devuelve la similitud entre ambas.

GXSAPLeonardo4

Text Classification

Servicio utilizado: Product Text Classification API
The model for this service was obtained by training a text classifier on approximately 300k Icecat product texts. There are 50 categories available: All-in-One PCs workstations, LED TVs, NAS & storage servers, PCs workstations, USB cables, USB flash drives, antivirus security software, cable interface gender adapters, computer monitors, digital cameras, fiber optic cables, flat panel spare parts, graphics cards, ink cartridges, internal hard drives, keyboards, laser LED printers, laser toner & cartridges, memory modules, mice, mobile phone cases, motherboards, mounting kits, multifunctionals, network switches, networking cables, networking cards, notebook cases, notebook spare parts, notebooks, other, power adapters & inverters, power cables, printer kits, printer scanner spare parts, processors, projection screens, projector mounts, rechargeable batteries, screen protectors, servers, smartphones, software licenses upgrades, solid state drives, tablet cases, tablets, thin clients, uninterruptible power supplies (UPSs), warranty & support extensions, washing machines.

Ejecución:
En este ejemplo ingresamos un producto, pero donde lo importante, o sea en base a lo cual lo clasificaremos, es su descripción. Una vez ingresado, oprimimos la opción Classify y el sistema invoca al servicio Product Text Classification y lo clasifica en base a su descripción.

GXSAPLeonardo5

Face Detection

Servicio utilizado: Face Detection API
Detects faces in images and, if any, returns bounding box per face for every image.

Ejecución:
Se ingresa una foto y al seleccionar Detect Faces, la imagen es enviada al servicio de SAP Leonardo quien identifica el número de caras en la imagen e indica la posición de cada una. La aplicación marca las caras, de acuerdo a esta posición, en la imagen.

GXSAPLeonardo9

Language Detection

Servicio utilizado: Language Detection API
An Api to detect the language of any given string of text data.

Ejecución:
En el cuadro ‘Text to Detect Language’ se ingresa una frase en cualquier idioma, al oprimir Detect Language, este texto es enviado a SAP Leonardo quien infiere el lenguaje en el cual esta escrito indicando un índice de certeza.

GXSAPLeonardo6

Multilanguage Chat

Servicio utilizado: Translation API
Translation API translates multiple translation units from a source language into multiple target languages.

Ejecución:
A modo de mostrar a través de un caso de uso, el funcionamiento del servicio de traducción de SAP Leonardo, se implementa un chat multimiidioma, aprovechando también para esto, la feature Web Notification de GeneXus.

Al ejecutar la aplicación, desde diferentes equipos (a modo de emular esto ejecutando en un único equipo, se puede levantar la aplicación en diferentes browsers, donde cada uno emulara a un usuario), se indica en cada equipo el lenguaje del usuario de la aplicación y en este momento se puede comenzar a enviar mensajes, escribiéndolos en el cuadro ‘My message’ y oprimiendo SEND.

El sistema toma el mensaje e invoca al servicio de traducción de SAP Leonardo seteando como lenguaje origen el indicado en la página y como lenguaje destino Ingles. Luego realiza el brodcast de dicho mensaje a cada usuario conectado. Al ser recibido, el mensaje será mostrado en el cuadro de Chat, pero previamente, el mensaje recibido es enviado al servicio de traducción de SAP Leonardo para traducirlo desde Ingles (lenguaje en el cual es recibido) al Lenguaje indicado por cada Cliente.

GXSAPLeonardo7