ChatGPT y Power Automate, la combinación perfecta | Parte II 

Cómo integrar ChatGPT con Power Automate - Parte II - Itequia - ES

ChatGPT y Power Automate, la combinación perfecta | Parte II 

Como vimos en la primera parte del artículo, hoy en día, la mayoría de las empresas buscan formas de optimizar sus procesos y mejorar su productividad, constantemente.  
 
Para lograr estos objetivos, son muchas las empresas que utilizan Microsoft Power Automate, una herramienta que permitirá a nuestra empresa automatizar tareas repetitivas y simplificar procesos.  

Por ello, en el artículo de hoy, vamos a explicar de manera practica y paso a paso cómo integrar ChatGPT en Microsoft Teams mediante Power Automate.  

El resultado final que obtendremos será un asistente llamado Tequibot, que estará a nuestra disposición para contestar a las preguntas que le hagamos, integrado en un canal de Microsoft Teams utilizando la API de OpenAI. 

¿Cómo integrar ChatGPT en Microsoft Teams con Power Automate? 

Veamos ahora, paso a paso, como integrar ChatGPT en Microsoft Teams, la aplicación de colaboración creada por Microsoft. 

Paso 1 

En primer lugar, debemos de crear una cuenta en OpenAI y generar una “Secret Key”. 

Paso1-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Este Token lo utilizaremos posteriormente en el flujo que vamos a crear. Es importante saber que no debemos compartirlo, ya que permite el uso de la API con nuestra cuenta. 

Paso 2 

Iniciamos sesión en Power Automate, y creamos un flujo con el Trigger “When keywords are mentioned” de Microsoft Teams. 

Lo siguiente que debemos hacer, será elegir la palabra clave que activará el flujo, en nuestro caso Tequibot, e indicamos el canal de Teams que queremos utilizar. 

Paso2-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Paso 3 

A continuación, inicializamos las variables prompt y gptResponse, que utilizaremos posteriormente en el flujo. 

Paso3-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Paso 4 

Ahora añadimos un control del tipo “Apply to each” e insertamos el siguiente valor en el campo “Select an output from previous steps”

@{triggerOutputs()?['body/value']} 
Paso4-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Paso 5 

A continuación, añadimos una nueva acción del tipo “Get message details (Teams)” con los siguientes valores: 

Paso5-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Paso 6 

Ahora debemos guardar en la variable prompt el contenido del mensaje que inicia la acción, con el siguiente valor: 

@{outputs('Get_message_details')?['body/body/content']}
Paso6-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Paso 7 

El siguiente punto consiste en hacer la petición a la API de OpenAI. 

Para ello utilizamos el componente HTTP, que es de tipo “Premium” pero se puede utilizar el periodo de prueba, con los siguientes valores: 

paso7-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

Se trata de una petición de tipo POST al EndPoint

https://api.openai.com/v1/chat/completions, con los headers “Accept” y “Content-Type” indicados. 

El valor del Token es el generado en el Paso 1 con el prefijo Bearer

El modelo utilizado en este caso es el gpt-4, aunque se puede utilizar también el gpt-3.5-turbo simplemente cambiando el valor de la variable model.  

El primer mensaje es de tipo “role system” y nos sirve para dar contexto al Bot. Pero si lo deseamos, podemos cambiar este valor para ajustar los resultados obtenidos. 

El segundo mensaje, es el que hemos escrito en el canal de Microsoft Teams y que hemos guardado previamente en la variable prompt

Además, podemos cambiar el valor max_tokens para permitir un tamaño mayor de la respuesta. 

Es importante saber que valores bajos de la variable temperature, harán que las respuestas sean menos variables, pero con más fiabilidad. Valores más altos pueden devolver respuestas más creativas, pero también más imprecisas en ocasiones. 

Si lo necesitamos, podemos encontrar más detalle de la API en el siguiente enlace

Paso 8 

En este punto, debemos recoger el valor devuelto en la petición y guardarlo en la variable gptResult

Paso8-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia

El valor se obtiene a partir la siguiente expresión: 

body('HTTP')?['choices'][0]?['message/content'] 

Paso 9 

Ahora, solo queda añadir la acción para responder el mensaje, a partir de la respuesta obtenida de ChatGPT. 

Para ello añadimos una acción del tipo “Reply with a message in a channel” de Microsoft Teams, con los siguientes valores, utilizando la variable gptResponse

Paso9-Integrar-ChatGPT-con-Power-Automate-Itequia

Paso 10 

¡Ahora tan solo nos falta activar el flujo y ya podemos probarlo! 

Paso10-Integrar-ChatGPT-con-Power-Automate-Itequia

¿Cómo podemos hacer el Bot más interactivo? 

Un punto de mejora muy interesante es ofrecer la posibilidad de convertir la respuesta a voz, mediante el servicio Text to Speech de Cognitive Services de Azure

Para ello tan solo debemos:  

  • Crear una API dónde mandar el texto de la respuesta, y que detecte el idioma usado mediante el servicio Language Detection 
  • Seleccionar una de las voces disponibles y generar el archivo en mp3 

Además, en Microsoft Teams podemos usar una tarjeta adaptable como respuesta en que además del texto, incluya un botón con el link al audio generado. 

Como-Integrar-ChatGPT-en-Microsoft-Teams-con-Power-Automate-Itequia
Jordi Puig Reñé – Software Developer at Itequia