- Cuenta de Azure
- Visual Studio 2022 o superior
- Bot Framework Emulator V4
- Azure CLI
Grupo de recursos y Cognitive Service
1 Crear un grupo de recursos, para la implementación
2 Crear un cognitive service de LUIS (Language Understanding)
3 Configurar el servicio LUIS, iniciar sesión con la cuenta de Azure
4 Para nuevos usuarios se necesita configurar el auth del servicio cognitivo
5 Para tener el servicio completo falta importar las intenciones y las entidades que conforman las respuestas del bot. Import -> import JSON -> buscar el archivo (CinemaBot.json) -> Nombre: CinemaBot
6 Una vez importando el JSON, manage -> Azure Resources -> Add prediction resource
7 Por ultimo hay que entrenar el modelo, dando click en Train, con esto el modelo esta listo para ser utilizado
Recurso de identidad
1 Abrir una terminal e introducir az login, con esto iniciaremos sesión a la cuenta de Azure, asociada al servicio cognitivo
2 Asociar la suscripción de la cuenta de Azure con:
az account set -- subscription "<id or name\>"
3 crear una identidad con:
az identity create --resource-group "<resource group name\>" --name "<identity name\>"
Se desplegara la siguiente información
{
"clientId": "#######################",
"id": "/subscriptions/####################/resourcegroups/grp-cinemabot/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity name",
"location": "eastus",
"name": "identity name",
"principalId": "881642c6-80e2-4def-b66b-9795bc0fcf16",
"resourceGroup": "resource group name",
"tags": {},
"tenantId": "######################",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Es importante guardar el clientId, name; posteriormente serán utilizados
Recurso bot
1 para crear un bot se ocupa el siguiente comando
az deployment group create --resource-group "<file arm\>" --parameters appId="<clientId\>" appType="UserAssignedMSI" tenantId="<tenantId\>" existingUserAssignedMSIName="<identity name\>" existingUserAssignedMSIResourceGroupName="<resource group name\>" botId="<bot name\>" botSku="S1" --name "cinemaBot"
Opción | Valor |
---|---|
appId | clientId del recurso de identidad |
appType | UsserAssignedMSI |
tenantId | tenantId de la suscripción |
existingUserAssignedMSIName | Plantilla ARM incluida en los archivos del proyecto |
existingUserAssignedMSIResourceGroupName | resource group name |
botId | bot name |
botSku | F0 (gratis) o S1 (estandar) |
name | nombre del despliegue |
Una configuración importante es entrar al recurso App service, buscar el url de acceso a la web; posteriormente entrar al recurso del bot, configuraciones, en la opción "Punto de conexión de mensajería" reemplazar la url desde http hasta .net, por la url de acceso al App services.
Para desplegar nuestro proyecto existen dos opciones:
a) Despliegue con CLI
- estar en la carpeta raíz, donde se encuentra el archivo .csproj
- Realizar una recompilación
- ejecutar el siguiente comando
az bot prepare-deploy --lang Csharp --code-dir "." --proj-file-path "<path file .csproj\>"
Opción | Valor |
---|---|
lang | Csharp |
code-dir | Directorio para archivos de implementación |
proj-file-path | Ruta de acceso al archivo .csproj |
- Dentro del directorio raíz, crear un archivp ZIP con todos los archivos del proyecto
- ejecutar el siguiente comando
az webapp deployment source config-zip --resource-group "<resource group name\>" --name "<app services name\>" --src "<path file .zip\>"
b) Despliegue por perfil
- Ir al recurso de App services
- Identificar el boton "Descargar perfil de publicación" y realizar la descarga
- Ir a Visual Studio, click derecho en el nombre del proyecto en la ventana de explorador de archivos de proyecto
- Dar click en Publicar
- Nuevo
- Importar el perfil
- Publicar
Dentro del proyecto se encuentra el archivo appsettings.json, el cual se configura con lo siguiente:
{
"MicrosoftAppType": "UserAssignedMSI",
"MicrosoftAppId": "#############",
"MicrosoftAppPassword": "",
"MicrosoftAppTenantId": "############",
"Luis.AppId": "###########",
"Luis.ApiKey": "############",
"Luis.HostName": "https://cog-cinemabot.cognitiveservices.azure.com/"
Opción | Valor |
---|---|
MicrosoftAppType | UserAssignedMSI |
MicrosoftAppId | identificador servicio de bot |
MicrosoftAppTenantId | identificador del tenant al que pertenece la suscripción |
Luis.AppId | identificador del servicio LUIS |
Luis.ApiKey | secreto de acceso al servicio LUIS |
Luis.HostName | URL para consultas al servicio LUIS |
Para las opciones de Luis, entrar a LUIS, en la pestaña manage -> settings se encuentra el AppId; asi como ApiKey y HostName se encuentran en Azure Resources -> Prediction Resources
Se puede probar el bot de dos formas:
a) Entrando al portal de Azure
- Entrar en https://portal.azure.com
- Ir al recurso del bot
- Buscar en el menú izquierdo Test in Web Chat (Probar en Chat web)
- Interactuar con el bot
b) Bot Framework Emulator
- Abrir Bot Framework Emulator (V4)
- Despleguar el menu de File
- Seleccionar New BotOpen Configuration
- Llenar los siguientes campos
- Salvar y Conectar
- Interacturar con el bot
- En Azure Portal, abra el grupo de recursos del bot.
- Seleccione Eliminar grupo de recursos para eliminar el grupo y todos los recursos que contiene.
- Escriba el nombre del grupo de recursos en el panel de confirmación y seleccione Eliminar.