Box Skills: Piezas del Rompecabezas + Tutorial
Box Skills se introdujo en 2017 y, desde entonces, se han utilizado más de 1000 habilidades en varias industrias para aportar inteligencia al contenido de Box. ¿Qué tan fácil es configurar una habilidad? ¡En este blog te lo mostraré!
Actualización de habilidades de caja
Antes de profundizar en cómo configurar un Box Skill, quiero dar una descripción general de lo que son y qué partes completan una implementación de Box Skills.
Si consulta la sección de patrones de arquitectura de nuestro sitio para desarrolladores , aparecerá el siguiente diagrama. Representa un ejemplo clásico de Box Skill, en este caso, una solución de identificación de plano de planta.
- El flujo se activa a partir de un archivo de plano de planta que se carga , mueve o copia en la carpeta configurada para Box Skill.
- El archivo se envía a una función de Google Cloud a través de la URL de invocación configurada en los pasos de configuración de Box Skill . Se puede usar cualquier proveedor de nube que ofrezca funciones sin servidor, aunque mostramos GCP en este tutorial.
- La función ejecuta un código escrito personalizado para analizar la carga útil de Box Skill , verificar las claves de seguridad , descargar una copia local del archivo , enviar el archivo a un proveedor de aprendizaje automático (también GCP en este ejemplo) y escribir metadatos descubiertos por el servicio de aprendizaje automático. al archivo original en Box.
La segunda y la tercera parte no tienen licencia ni se facturan a través de Box Platform y, como tales, generalmente requieren trabajar a través de los equipos de habilitación y ventas de ese servicio en particular; no es necesario que sean el mismo proveedor. Por ejemplo, puede hacer que una función de Azure llame a IBM Watson .
Box proporciona valor en el flujo, porque la acción inicial del contenido desencadena el inicio del proceso. Esto evita que los desarrolladores migren o dupliquen contenido para recopilar información. Además, el flujo termina con metadatos que se pueden buscar directamente dentro de la plataforma en segundos, lo que permite a los usuarios ver la información que necesitan más rápido.
En la siguiente demostración, le mostraré cómo configurar el flujo en el diagrama de arriba. Al final, espero poder cargar un plano de planta y poder tener la cantidad de dormitorios en el plano de planta escrito como metadatos en el archivo. De esa manera, puedo buscar todos los planos de planta con un cierto número de habitaciones en el futuro.
¡Pasemos al tutorial!
Configuración administrativa de Box Skills
Cree una cuenta de desarrollador de Box (opcional pero recomendado)
Si no tiene una cuenta empresarial de Box, puede registrarse aquí para obtener una cuenta de desarrollador gratuita . Recomiendo usar la cuenta de desarrollador para el tutorial en lugar de usar su entorno de producción.
Tenga en cuenta que no puede usar la misma dirección de correo electrónico durante el registro debido a la restricción de tener una dirección de correo electrónico única en todo Box.
Create the Box Skill (completado por el desarrollador)
Vaya a Developer Console y haga clic en Crear nueva aplicación.
Seleccione Habilidad personalizada de cuadro.
Asigne un nombre a la aplicación y haga clic en Crear aplicación.
Después de crear la aplicación, verá la siguiente pantalla. El cuadro rojo es donde colocará la URL donde desea que vaya la carga útil de Box Skills . Agregaremos esta URL más adelante.
En la pestaña de claves de seguridad, encontrará dos claves que se pueden usar para verificar que Box es el servicio que llamó a la función sin servidor.
Habilitar/autorizar la habilidad Box (completado por el administrador)
Al igual que otros tipos de aplicaciones, un administrador de su instancia de Box deberá habilitar y autorizar la habilidad de Box en la sección de habilidades de la consola de administración. Deberá proporcionar al administrador la identificación del cliente de la aplicación, que se encuentra en la pantalla de configuración de Box Skill.
También deberá proporcionar los nombres de carpeta/propietario del contenido que desea que se active la Habilidad. Si aún no ha configurado una carpeta para que la Habilidad supervise, querrá hacerlo antes de solicitar la autorización de su administrador.
En la pantalla Consola de administración de habilidades , haga clic en Agregar habilidad.
Ingrese el ID de cliente de la habilidad y haga clic en Siguiente.
Seleccione si la habilidad debe ejecutarse para todo el contenido o un subconjunto de carpetas.
Para (una) carpeta(s) específica(s), filtre la ventana emergente por usuario o nombre de carpeta. Marque las carpetas para las que se debe activar la Habilidad.
Confirme las selecciones y haga clic en Habilitar.
Crear una plantilla de metadatos de cuadro (opcional, completado por el administrador)
Este paso es opcional, ya que los metadatos o los datos de habilidades se pueden escribir en un archivo sin una plantilla; sin embargo, la creación de una plantilla de metadatos permitirá a los usuarios buscar fácilmente según los resultados proporcionados por el aprendizaje automático.
En Admin Console, haga clic en Contenido > Metadatos > Crear nuevo.
Configure la plantilla de metadatos dándole un nombre, agregando atributos, cada uno de los cuales debe tener un nombre, formato y descripción, y haciendo clic en Guardar.
Configuración de funciones sin servidor
Este ejemplo utilizará nuestro repositorio inicial de habilidades personalizadas de Serverless Box para acelerar el desarrollo.
Haga clic en el enlace de arriba y descargue el repositorio a su computadora.
Descomprima la carpeta descargada. Busque la carpeta box-custom-skills-starter-gcp dentro del repositorio descargado y cámbiele el nombre a algo que coincida con su caso de uso. Además, siéntase libre de mover la carpeta a su directorio de proyectos típicos. Si prefiere usar AWS o Azure, encontrará directorios de hola mundo en la misma carpeta zip.
Abra la carpeta en un editor de código como Visual Studio Code .
En la terminal del editor, confirme que tiene Node v10.0.0 o superior.
Antes de continuar, deberá configurar una cuenta de GCP con un método de facturación adjunto. No repasaré todos esos pasos aquí, pero puede encontrarlos en el sitio web de Serverless . Asegúrese de completar todos los pasos, incluida la creación de un proyecto, la activación de las API , la creación de una cuenta de servicio y la descarga de un archivo de clave JSON .
Arrastre el archivo de clave JSON que descargó en el paso anterior a la carpeta .gcloud.
Cambie el nombre del archivo como serverless.json.
Actualice el archivo package.json para tener la información de nombres para su caso de uso.
Actualice el archivo serverless.yml para tener la configuración y la información de nombres para su cuenta y caso de uso de GCP. Además, asegúrese de agregar las claves de seguridad de Box que se muestran en las pantallas a continuación.
Las claves principal y secundaria de Box provienen de la sección de claves de seguridad de la consola del desarrollador que mencioné algunas secciones más arriba. Es importante usar estas teclas para asegurarse de que solo Box pueda ejecutar el código de la función sin servidor.
En una terminal, ejecuta npm install.
Entonces, corre npx serverless deploy.
La implementación puede tardar varios minutos, especialmente la primera vez. Una vez que se complete, obtendrá una URL de invocación.
Cópielo y péguelo en la aplicación de consola para desarrolladores que creó anteriormente.
Visite la consola de GCP para ver si su función sin servidor está activa.
También debe agregar un permiso adicional a la función para que Box pueda llamarla. Haga clic en permisos > agregar.
Escriba "allUsers" en el cuadro de nuevos principales con un rol seleccionado de Cloud Functions Invoker. Clic en Guardar.
Sube un archivo a la carpeta Box configurada por el administrador.
Abra el archivo en Box para ver el mensaje "Hello World" adjunto como metadatos.
También puede consultar los registros en la función sin servidor para su verificación.
Configuración de IA del documento de GCP
Ahora que Box Skill y la función sin servidor están funcionando, la última parte es configurar un proveedor de aprendizaje automático y editar nuestro código para usarlo. Document AI de Google es perfecto para este caso de uso, ya que extraerá el texto OCR de los planos de planta cargados sin necesidad de entrenar un modelo de aprendizaje automático personalizado. Podemos enviar el texto que encuentra a la configuración de la función sin servidor anterior, analizar los resultados y aplicarlo nuevamente al archivo como metadatos que se pueden buscar.
Antes de saltar a los pasos de configuración, visite la sección de prueba para ver la respuesta típica que recibirá.
Observe el texto OCR y las pestañas JSON. En la respuesta JSON puedes ver un campo de texto. Aquí es donde se colocan los datos de texto OCR para que los analice.
Vamos a utilizar la sección de guías prácticas de la documentación de Document AI para configurar la API para el proyecto GCP creado anteriormente. Tenga en cuenta que no necesitamos configurar otra cuenta de servicio ni descargar un nuevo archivo de clave JSON, ya que ya lo hicimos en la publicación de blog anterior.
Habilite Document AI haciendo clic aquí y encendiéndolo para el proyecto GCP que configuramos anteriormente en este tutorial.
Vaya a la página de procesadores y haga clic en Explorar procesadores.
Seleccione el tipo de procesador de documentos OCR.
Asigne un nombre al procesador en la ventana emergente lateral y haga clic en Crear.
Encuentre el punto final de predicción para el procesador. Esto es lo que usaremos para obtener información sobre los planos una vez que hayamos editado nuestro código.
Ahora, vamos a editar el código para usar esta nueva API.
En la terminal, ejecuta lo siguiente:
npm install axios @google-cloud/documentai
En el archivo serverless.yml, necesitamos agregar algunas variables más: gcp_project_id, gcp_location, gcp_processor_id, box_metadata_key, box_api_endpointy bedroom_list. Puede encontrar la nueva sección para copiar a continuación.
La identificación del proyecto, la ubicación y la identificación del procesador provienen de la configuración de GCP que hicimos anteriormente. Agregarlos como variables ahora nos permite acceder a esto en el código y cambiarlos en el futuro sin editar el código.
La clave de metadatos es la clave para la plantilla de metadatos que configuramos anteriormente. Puede encontrar esto en la consola de administración en contenido > metadatos.
La lista de dormitorios es una cadena separada por comas de todos los nombres que nuestros planos de planta llaman dormitorios. Esto nos ayudará a analizar la prueba de OCR en un número entero de búsqueda. Para esta y cualquier otra lista (baños, porches, etc.) no puede haber espacios entre los términos.
Todo esto tendrá más sentido una vez que cambiemos el archivo index.js.
Para index.js, necesitamos hacer varios cambios. Para hacerlo más fácil, hay un ejemplo completo del archivo index.js terminado en el repositorio que descargó anteriormente y del que puede copiar. Se llama index_reference.js. Tenga en cuenta que esto es solo un ejemplo. Puede usar esto para expandir la funcionalidad según su caso de uso del mundo real. Verá comentarios sobre el código a continuación que describen lo que hace cada sección.
Simplemente copie y pegue el archivo index_reference.js y reemplace el contenido del archivo index.js.
¡Ahora, puedes correr npx serverless deployy luego podemos usar la habilidad!
Usar la habilidad Caja
En este punto, se han configurado todas las piezas para que funcione Box Skill: creación de Box Skill, autorización de Box Skill, creación de plantillas de metadatos y configuración de aprendizaje automático/función sin servidor. ¡Ahora podemos usar la habilidad para nuestro caso de uso real!
Sube un archivo a la carpeta Box configurada por el administrador.
Haga clic en un archivo cargado y vea que los metadatos se han aplicado a un archivo.
Box tarda aproximadamente diez minutos en indexar los metadatos. Después de eso, los metadatos se pueden usar como criterios de búsqueda de contenido dentro de la aplicación web de Box.
Haga clic en la barra de búsqueda > Metadatos > Elija una plantilla del menú desplegable > escriba los criterios de búsqueda > presione Entrar.
Se devolverán todos los archivos que coincidan con los criterios.
Tutorial de habilidades de caja completo
En esta publicación de blog, mostré cómo puede usar un código repetitivo simple y una API de aprendizaje automático lista para usar para recopilar y usar datos valiosos en el contenido almacenado en Box.
En este tutorial, usamos planos de planta, pero puede usar cualquier documento que desee: currículums, facturas, solicitudes, etc. Las posibilidades son infinitas debido a las muchas API de aprendizaje automático listas para usar que existen. Además, como puede ver en el tutorial, ¡configurar el flujo no es tan difícil!
¡Muchas gracias a Marley !
Esperamos que haya disfrutado de este tutorial y no dude en comunicarse con nosotros en el foro de desarrolladores para obtener asistencia, o a través de Box Pulse para hacer sugerencias sobre cómo mejorar Box Skills.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































