Giter Club home page Giter Club logo

cinemabot's Introduction

Pre requisitos

  • Cuenta de Azure
  • Visual Studio 2022 o superior
  • Bot Framework Emulator V4
  • Azure CLI

Creación de Recursos en Azure

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)

Opciones iniciales Opciones de red

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

Agregar Auth

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

Opciones de prediccion

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
App service
  • Crear un App services, con los siguientes datos:

Opciones iniciales

Opciones implementación

Opciones redes

Opciones supervisión

Despliegue hacia Azure

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

Archivo de configuración

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

Pruebas

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 New Bot
  • Salvar y Conectar
  • Interacturar con el bot

Eliminar Recursos

  • 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.

cinemabot's People

Contributors

angelcruzo avatar

Stargazers

sanjaya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.