Box Skills: Piezas del Rompecabezas + Tutorial

Dec 15 2022
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 Box Skills 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.

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.

Mapa de infraestructura de habilidades de caja
  1. 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.
  2. 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.
  3. 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.

Página de destino de la Consola del desarrollador

Seleccione Habilidad personalizada de cuadro.

Pantalla de selección de aplicaciones de la consola de desarrollador

Asigne un nombre a la aplicación y haga clic en Crear aplicación.

Cuadro emergente de creación de habilidades

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.

Pantalla de configuración de habilidad de caja

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.

Llaves de seguridad de habilidad de caja

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.

Crear una carpeta de caja

En la pantalla Consola de administración de habilidades , haga clic en Agregar habilidad.

Pantalla de la consola de administración de Box Skills

Ingrese el ID de cliente de la habilidad y haga clic en Siguiente.

Ventana emergente Agregar cuadro de habilidades

Seleccione si la habilidad debe ejecutarse para todo el contenido o un subconjunto de carpetas.

Pantalla de configuración de la carpeta de habilidades de Box

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.

Ventana emergente de selección de carpeta de habilidad de cuadro

Confirme las selecciones y haga clic en Habilitar.

Pantalla de confirmación de habilidad de caja

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.

Pantalla de plantilla de metadatos de la consola de administración

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.

Pasos de configuración de la plantilla de metadatos

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.

Proyecto de inicio rápido de Box Skills

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.

Descomprimir carpeta descargada

Abra la carpeta en un editor de código como Visual Studio Code .

Abra la carpeta de ejemplo renombrada y movida

En la terminal del editor, confirme que tiene Node v10.0.0 o superior.

Comprobar la versión del nodo

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.

Arrastra tu archivo de clave JSON desde GCP

Cambie el nombre del archivo como serverless.json.

Cambie el nombre del archivo JSON a 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.

Copie y pegue las claves en el archivo serverless.yml de arriba

En una terminal, ejecuta npm install.

Ejecute la instalación de npm

Entonces, corre npx serverless deploy.

Ejecute la implementación sin servidor de npx

La implementación puede tardar varios minutos, especialmente la primera vez. Una vez que se complete, obtendrá una URL de invocación.

Implementación de sls completada

Cópielo y péguelo en la aplicación de consola para desarrolladores que creó anteriormente.

Agregue la URL de invocación a la habilidad Box

Visite la consola de GCP para ver si su función sin servidor está activa.

Verifique que la función sin servidor implementada

También debe agregar un permiso adicional a la función para que Box pueda llamarla. Haga clic en permisos > agregar.

Configuración de permisos de funciones sin servidor de GCP

Escriba "allUsers" en el cuadro de nuevos principales con un rol seleccionado de Cloud Functions Invoker. Clic en Guardar.

La función sin servidor de GCP agrega permisos de principales

Sube un archivo a la carpeta Box configurada por el administrador.

Cargar un archivo

Abra el archivo en Box para ver el mensaje "Hello World" adjunto como metadatos.

Los metadatos personalizados se pueden ver en la esquina superior derecha

También puede consultar los registros en la función sin servidor para su verificación.

Puede ver el cuerpo del evento registrado desde el código que implementamos anteriormente

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

¡Intentalo! Sección

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.

Texto OCR identificado
Respuesta JSON

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.

Habilite la API de documento AI

Vaya a la página de procesadores y haga clic en Explorar procesadores.

Página del procesador de GCP

Seleccione el tipo de procesador de documentos OCR.

Asigne un nombre al procesador en la ventana emergente lateral y haga clic en Crear.

Crear ventana emergente de procesador

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.

Procesador creado

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.

Cargar un archivo

Haga clic en un archivo cargado y vea que los metadatos se han aplicado a un archivo.

Metadatos agregados al 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.

Búsqueda de plantilla de metadatos

Se devolverán todos los archivos que coincidan con los criterios.

Resultados de la búsqueda de plantillas de metadatos

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.