En este post vamos a ver como analizar una opinión con un flujo en Power Automate.

Para ello vamos a necesitar Microsoft Visual Studio, un proyecto MVC y una cuenta Premium con Power Automate.

En primer lugar accedemos al portal web de Power Automate https://powerautomate.microsoft.com/es-es/.

Una vez dentro creamos un nuevo flujo de nube que se ejecutará de manera instantánea.

img1
Flujo de nube instantáneo

Ahora tendremos que indicar cuando se ejecutará el flujo, en nuestro caso, queremos que se ejecute cuando reciba una solicitud HTTP con un JSON con el texto de la opinión, el cual, será analizado por IA para que nos devuelva si es una opinión neutra, positiva o negativa:

img2
Ejecución de flujo cuando se recibe una solicitud HTTP

Ahora ya podremos editar nuestro flujo de nube. En primer lugar tendremos que indicarle al flujo que recibirá un JSON personalizado con una propiedad llamada opinión la cual tendrá el String con la opinión que queremos analizar. Para ello, tendremos que pulsar sobre «Usar una carga de ejemplo para generar el esquema»:

img3
Usar una carga de ejemplo para generar el esquema

Nos aparecerá un diálogo donde podremos escribir nuestro JSON personalizado. El JSON será el siguiente:

{
«opinion» : «opinion»
}

img4
JSON personalizado

Pulsaremos sobre «Listo» y nos cargará el JSON:

img5
JSON cargado

Una vez que tenemos la solicitud HTTP con el JSON es hora de configurar el análisis de la opinión, pulsaremos sobre «Agregar un nuevo paso» y buscaremos el análisis de opinión:

img6
Analizar opinión positiva o negativa en el texto

Ahora tendremos que indicar en que idioma recibiremos el texto y que texto queremos analizar. A la hora de indicar el texto le tendremos que indicar que el contenido será dinámico, para ello, pulsaremos sobre «Agregar contenido dinámico» y en este indicamos que analice la «opinión» de la solicitud HTTP

img7
Configuración del analizador de texto

Con este ultimo paso ya está todo listo para que analice el texto, ahora tendremos que indicarle al flow que debe devolver una respuesta con el resultado de analizar el texto. Para ello agregamos un nuevo paso el cual será «Respuesta»:

img8
Respuesta

Configuramos la respuesta para que devuelve un texto con el resultado de la operación anterior. Al igual que antes indicaremos que tiene que agregar un contenido dinámico el cual será la «Opinión general del texto»:

img9
Respuesta HTTP con la opinión

Guardamos el flow:

img10

Y ahora que tenemos guardado el flow subimos al primer paso y observamos que en la «Dirección URL de HTTP POST» nos aparece la URL del flow, la cual, copiaremos para usarla mas adelante:

img11
URL del flow

Ahora si que sí tenemos todo listo para programar nuestro MVC. En primer lugar tendremos que agregar el siguiente Nuget al proyecto:

img12
Nuget Newtonsoft JSON

Este lo utilizaremos para enviar contenido al flow en formato JSON.

Empezamos con la clase que se encargará de llamar al flow para analizar el texto, sobre el proyecto creamos la carpeta «Services» y dentro agregamos la clase «ServicePowerAutomate»:

img13
Clase y carpeta para los servicios

Dentro de la clase agregamos la propiedad para configurar las cabeceras, cuando agreguemos esta propiedad tendremos que hacer el «using» apropiado:

img14
Using de la propiedad

En el constructor inicializamos la propiedad, en este caso la cabecera será de tipo «application/json»:

img15
Constructor de la clase

Programaremos el método que llamará al flow y dentro de este pegamos la URL del flow (La URL que anteriormente hemos copiado):

img16
Método y URL para trabajar con el flow

Para trabajar con solicitudes HTTP necesitamos el cliente HTTP, este también lo tendremos que importar:

img17
Cliente HTTP

Una vez que tenemos el cliente HTTP tendremos que configurarlo limpiando las cabeceras y agregando la cabecera que hemos inicializado en el constructor:

img18
Configuración cliente HTTP

Ahora creamos un objeto anónimo con la opinión, este objeto será el que enviemos al flow a través de formato JSON, para ello agregamos la siguiente instrucción:

img19
Objeto anónimo

Este objeto anónimo tiene que ser convertido a JSON, es ahora cuando utilizaremos las utilidades del Nuget instalado, mas concretamente el método «SerializeObject». Para utilizarlo escribimos lo siguiente y también hacemos el using del Nuget:

img20
Serialización del objeto y using del Nuget

Este string es el JSON del objeto, ahora necesitamos el «StringContent» que será el JSON del objeto y el HttpResponseMessage. Este ultimo objeto nos servirá para llamar con el cliente a través de un «POST» al flow con la URL del mismo y el contenido (JSON del objeto). Después con este mismo objeto podremos recuperar la respuesta del flow, es decir, el resultado de analizar la opinión:

img21
Llamada al flow

Una vez que hemos llamado al flow necesitaremos recuperar la respuesta con lo siguiente:

img22
Código para recuperar el contenido del flow

Si la respuesta es correcta creamos un string que va a contener la respuesta de la llamada al flow, si la respuesta es incorrecta devuelve un string «Error».

Nuestra clase ya está lista, así que empezamos con la vista para probarlo, primero agregamos un nuevo controlador:

img23
Controlador AnalizarOpinion

En el controlador agregamos la clase ServicePowerAutomate y lo inicializamos en el constructor:

img24
Constructor del controlador

Ahora creamos el método para mostrar la vista y el post para llamar al servicio y analizar el texto:

img25
Métodos para la vista

A continuación agregamos la vista:

img26
Vista AnalizarOpinion

Y dentro agregamos el siguiente código:

img27
Código de la vista

Para que podamos utilizar la clase ServicePowerAutomate tendremos que resolver las dependencias en «startup.cs»:

img28
Inyección de dependencia

Y por ultimo agregamos en «_Layout.cshtml» el link para poder acceder a la vista:

img29
_Layout.cshtml

Ya lo tenemos todo lista, indicamos la aplicación, accedemos a la vista y probamos la funcionalidad:

img30
Opinion neutral
img31
Opinión negativa
img32
Opinión positiva

Como podemos observar en las anteriores fotos nos analiza el texto que indicamos en el formulario y nos muestra el resultado de llamar a nuestro flow de Power Automate.

Power Automate es una herramienta muy potente y con muchas posibilidades diferentes, desde IA hasta operaciones a bases de datos.

Autor/a: Esteban Martínez Quintanar

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma 

Centro: Tajamar 

Año académico: 2021-2022 

Código / recursos utilizados / Otros datos de interés: https://github.com/Estebanmq/MvcAnalizarOpinionAzure.git

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.