Analizar la opinión de un texto con Power Automate y MVC
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.
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:
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»:
Nos aparecerá un diálogo donde podremos escribir nuestro JSON personalizado. El JSON será el siguiente:
{
«opinion» : «opinion»
}
Pulsaremos sobre «Listo» y nos cargará el JSON:
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:
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
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»:
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»:
Guardamos el flow:
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:
Ahora si que sí tenemos todo listo para programar nuestro MVC. En primer lugar tendremos que agregar el siguiente Nuget al proyecto:
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»:
Dentro de la clase agregamos la propiedad para configurar las cabeceras, cuando agreguemos esta propiedad tendremos que hacer el «using» apropiado:
En el constructor inicializamos la propiedad, en este caso la cabecera será de tipo «application/json»:
Programaremos el método que llamará al flow y dentro de este pegamos la URL del flow (La URL que anteriormente hemos copiado):
Para trabajar con solicitudes HTTP necesitamos el cliente HTTP, este también lo tendremos que importar:
Una vez que tenemos el cliente HTTP tendremos que configurarlo limpiando las cabeceras y agregando la cabecera que hemos inicializado en el constructor:
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:
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:
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:
Una vez que hemos llamado al flow necesitaremos recuperar la respuesta con lo siguiente:
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:
En el controlador agregamos la clase ServicePowerAutomate y lo inicializamos en el constructor:
Ahora creamos el método para mostrar la vista y el post para llamar al servicio y analizar el texto:
A continuación agregamos la vista:
Y dentro agregamos el siguiente código:
Para que podamos utilizar la clase ServicePowerAutomate tendremos que resolver las dependencias en «startup.cs»:
Y por ultimo agregamos en «_Layout.cshtml» el link para poder acceder a la vista:
Ya lo tenemos todo lista, indicamos la aplicación, accedemos a la vista y probamos la funcionalidad:
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