Conectar Power Virtual Agents con ChatGPT/OpenAI

Escrito por  Alex Rostan

Luego de haber creado nuestro Power Virtual Agent veremos cómo conectarlo con el servicio de OpenAI utilizando Power Automate. Con ello podremos generar una asistente virtual con la capacidad de respuesta que ChatGPT nos brinda.

Ya pudieron observar en ediciones anteriores que el Virtual Agent viene configurado por defecto con algunos Topics como por ejemplo saludos.

Los siguientes pasos son los mismos que hicimos anteriormente para conectar con otros servicios, pero recordémoslos nuevamente.

Una vez creado el Virtual Agent debemos dirigirnos a las opciones y seleccionar "System fallback"

image1

Una vez allí no aparecerá la siguiente pantalla:

image2

Debemos hacer Click en "Add"

Aparecerá la siguiente pantalla y vamos a "Go to fallback topic"

image3

Nos aparecerá la siguiente pantalla donde podremos ver el flujo de la conversación.

image4

Una vez allí iremos agregando paso a paso:

Primero eliminamos la acción "Redirect" pues no lo utilizaremos

image5

En este punto debemos conectar nuestro Virtual Agent con el flujo de Power Automate que será quien invocará a OpenAI para obtener la respuesta.

Hacemos click en "Add Node" image6 luego hacemos Click en "Call an Action" y "Create a Flow".

image7

Se nos abrirá la pantalla de Power Automate:

image8

Le damos un nombre a nuestro Flow y definimos la variable de entrada que será donde vendrá el texto de la pregunta realizada por nuestro usuario en el Power Virtual Agent.

image9

Agregamos una acción del tipo "GPT3 Completes your prompt"

image10

Nos aparecerá la siguiente sección para generar la conexión con OpenAI:

image11

Es muy importante el cargar la API Key exactamente como "Bearer YOUR_API_KEY". Literalmente así: la palabra Bearer + espacio + API_KEY

EJ: Bearer 1234-12434-1231-12323

Para generar la API debemos ingresar a https://openai.com y allí a la sección "API". Nos Registramos y luego vamos a nuestro perfil y allí a view API Key

image12

Allí seleccionamos new API Key copiamos el valor y volvemos a nuestro Flow de Power Automate:

image13

De nuevo en Power Automate cargamos los datos, damos aceptar y generamos la conexión.

image14

Una vez generada la conexión ya solo necesitamos pasarle los parámetros correspondientes para obtener el resultado de ChatGPT basado en lo que el texto que el usuario ingreso.

image15

Definimos una variable para guardar la respuesta:

d

Agregamos un Apply to each y seleccionamos la colección a iterar "Choices":

image17 image18

Luego guardamos el valor actual en la variable recién definida. Una vez guardado el valor debemos procesar o parsear el JSON de respuesta. Aquí el esquema (schema) que debemos utilizar para parsear la respuesta correctamente.

1{
2    "type": "object",
3    "properties": {
4        "text": {
5            "type": "string"
6        },
7        "index": {
8            "type": "integer"
9        },
10        "finish_reason": {
11            "type": "string"
12        }
13    }
14}
15
image20

Por último, solo falta retornar la respuesta al Power Virtual Agent

image21

Retornamos nuestra respuesta al Virtual Agent. Guardamos nuestro Flow y retornamos a la página de Power Virtual Agents para agregarlo

image22

Una vez agregado nuestro flujo seleccionamos la variable de entrada "bot.UnrecognizedTriggerPhrase"

image23

Agregamos un nuevo nodo para desplegar la respuesta seleccionando "Show a message"

image24

Seleccionamos la variable Output:

image25

Finalmente guardamos y tenemos disponible nuestro Virtual Agent conectado con ChatGPT:

image26

Solo queda comenzar a realizarle consultas y ver que resulta.

Conclusión

El conectar un Power Virtual Agent con OpenAI nos permite rápidamente darle capacidades de respuesta infinita a nuestro chatbot.

Alex Rostán
Microsoft Business Applications MVP
Principal Microsoft COE -- Slalom Canada
AI & Smarts Applications Cloud Architect (Azure, O365, Power Platform)
Mail: rostanker@msn.com
Twitter: @rostanker
LinkedIn: https://www.linkedin.com/in/alexrostan/

Siguemos en LinkedInSiguemos en Twitter
Powered by  ENCAMINA