Box Skills: Pezzi del Puzzle + Tutorial

Dec 15 2022
Le Box Skills sono state introdotte nel 2017 e da allora sono state utilizzate oltre 1000 competenze in vari settori per portare intelligenza ai contenuti Box. Quanto è facile impostare un'abilità? In questo blog te lo mostrerò! Box Skills Refresher Prima di approfondire come impostare una Box Skill, voglio dare una panoramica su cosa sono e quali parti completano un'implementazione di Box Skills.

Le Box Skills sono state introdotte nel 2017 e da allora sono state utilizzate oltre 1000 competenze in vari settori per portare intelligenza ai contenuti Box. Quanto è facile impostare un'abilità? In questo blog te lo mostrerò!

Box Skills Refresh

Prima di approfondire come impostare una Box Skill, voglio dare una panoramica su cosa sono e quali parti completano un'implementazione di Box Skills.

Se fai riferimento alla sezione del modello di architettura del nostro sito per sviluppatori , viene visualizzato il diagramma seguente. Rappresenta un classico esempio di Box Skill, in questo caso una soluzione di identificazione della planimetria.

Mappa delle infrastrutture di Box Skill
  1. Il flusso viene attivato da un file di planimetria che viene caricato , spostato o copiato nella cartella configurata per la Box Skill.
  2. Il file viene inviato a una funzione Google Cloud tramite l' URL di chiamata impostato nei passaggi di configurazione di Box Skill . È possibile utilizzare qualsiasi provider di servizi cloud che offra funzioni serverless, anche se in questo tutorial mostriamo GCP.
  3. La funzione esegue codice scritto personalizzato per analizzare il payload Box Skill , verificare le chiavi di sicurezza , scaricare una copia locale del file , inviare il file a un provider di machine learning (anche GCP in questo esempio) e scrivere i metadati rilevati dal servizio di machine learning al file originale in Box.

La seconda e la terza parte non sono concesse in licenza o fatturate tramite Box Platform e, come tali, in genere richiedono di lavorare attraverso i team di vendita e abilitazione di quel particolare servizio: non devono essere necessariamente lo stesso fornitore. Ad esempio, puoi fare in modo che una funzione di Azure chiami IBM Watson .

Box fornisce valore nel flusso, perché l'azione iniziale del contenuto attiva l'inizio del processo. Ciò impedisce agli sviluppatori di migrare o duplicare i contenuti per raccogliere informazioni. Inoltre, il flusso termina con metadati ricercabili direttamente all'interno della piattaforma in pochi secondi, consentendo agli utenti di vedere le informazioni di cui hanno bisogno più velocemente.

Nella demo qui sotto, ti mostrerò come impostare il flusso nel diagramma sopra. Alla fine, spero di poter caricare una planimetria e di poter riscrivere il numero di camere da letto nella planimetria come metadati nel file. In questo modo posso cercare tutte le planimetrie con un certo numero di camere da letto in futuro.

Passiamo al tutorial!

Configurazione amministrativa di Box Skills

Crea un account sviluppatore Box (facoltativo ma consigliato)

Se non disponi di un account aziendale Box, puoi creare un account sviluppatore gratuito qui . Ti consiglio di utilizzare l'account sviluppatore per il tutorial invece di utilizzare il tuo ambiente di produzione.

Si prega di notare che non è possibile utilizzare lo stesso indirizzo e-mail durante la registrazione a causa della restrizione di avere un indirizzo e-mail univoco in tutto Box.

Abilità Crea la scatola (completata dallo sviluppatore)

Passare alla Console per gli sviluppatori e fare clic su Crea nuova app.

Pagina di destinazione della Console per gli sviluppatori

Seleziona Box Abilità personalizzata.

Schermata di selezione dell'applicazione della console per gli sviluppatori

Assegna un nome all'applicazione e fai clic su Crea app.

Finestra pop-up per la creazione di abilità

Dopo aver creato l'applicazione, vedrai la schermata sottostante. La casella rossa è dove inserirai l'URL in cui vorresti che il payload Box Skills andasse. Aggiungeremo questo URL in seguito.

Schermata di configurazione delle abilità Box

Nella scheda delle chiavi di sicurezza troverai due chiavi che possono essere utilizzate per verificare che Box sia il servizio che ha chiamato la funzione serverless.

Chiavi di sicurezza Box Skill

Abilita/Autorizza la Box Skill (completata dall'amministratore)

Proprio come altri tipi di applicazione, un amministratore della tua istanza Box dovrà abilitare e autorizzare la Box Skill nella sezione delle competenze della console di amministrazione. Dovrai fornire all'amministratore l'ID client dell'applicazione, che si trova nella schermata di configurazione di Box Skill.

Dovrai anche fornire il/i nome/i della cartella/proprietario del contenuto per cui desideri attivare la Skill. Se non hai ancora impostato una cartella per il monitoraggio della Skill, ti consigliamo di farlo prima di richiedere l'autorizzazione al tuo amministratore.

Crea una cartella Box

Nella schermata Skills Admin Console , fai clic su Aggiungi Skill.

Schermata della console di amministrazione di Box Skills

Immettere l'ID cliente della competenza e fare clic su Avanti.

Aggiunta finestra pop-up abilità

Seleziona se la capacità deve essere eseguita per tutto il contenuto o per un sottoinsieme di cartelle.

Schermata di configurazione della cartella delle abilità Box

Per (a) cartelle specifiche, filtrare il popup in base al nome dell'utente o della cartella. Controlla le cartelle per le quali deve essere attivata la Skill.

Pop-up di selezione della cartella delle abilità della casella

Confermare le selezioni e fare clic su Abilita.

Schermata di conferma dell'abilità della scatola

Crea un modello di metadati della casella (facoltativo, completato dall'amministratore)

Questo passaggio è facoltativo, poiché i metadati oi dati delle competenze possono essere scritti in un file senza un modello; tuttavia, la creazione di un modello di metadati consentirà agli utenti di cercare facilmente in base ai risultati forniti dall'apprendimento automatico.

In Admin Console, fai clic su Contenuti > Metadati > Crea nuovo.

Schermata del modello di metadati della console di amministrazione

Configura il modello di metadati assegnandogli un nome, aggiungendo attributi, ognuno dei quali dovrebbe avere un nome, un formato e una descrizione e facendo clic su Salva.

Procedura di configurazione del modello di metadati

Configurazione della funzione senza server

Questo esempio utilizzerà il nostro repository iniziale di competenze personalizzate Serverless Box per accelerare lo sviluppo.

Fai clic sul link sopra e scarica il repository sul tuo computer.

Progetto Quickstart di Box Skills

Decomprimere la cartella scaricata. Trova la cartella box-custom-skills-starter-gcp all'interno del repository scaricato e rinominala in qualcosa che corrisponda al tuo caso d'uso. Inoltre, sentiti libero di spostare la cartella nella directory dei tuoi progetti tipici. Se preferisci utilizzare AWS o Azure, troverai le directory hello world nella stessa cartella zip.

Decomprimere la cartella scaricata

Apri la cartella in un editor di codice come Visual Studio Code .

Apri la cartella di esempio rinominata e spostata

Nel terminale dell'editor, conferma di avere Node v10.0.0 o versioni successive.

Controlla la versione del nodo

Prima di continuare, dovrai configurare un account GCP con un metodo di fatturazione allegato. Non esaminerò tutti questi passaggi qui, ma puoi trovare i passaggi per questo sul sito Web Serverless . Assicurati di completare tutti i passaggi, tra cui la creazione di un progetto + l'abilitazione delle API , la creazione di un account di servizio e il download di un file chiave JSON .

Trascina il file della chiave JSON che è stato scaricato dal passaggio precedente nella cartella .gcloud.

Trascina il file della chiave JSON da GCP

Rinomina il file come serverless.json.

Modificare il nome del file JSON in serverless.json

Aggiorna il file package.json per avere le informazioni di denominazione per il tuo caso d'uso.

Aggiorna il file serverless.yml per avere le informazioni di configurazione e denominazione per il tuo account GCP e il caso d'uso. Inoltre, assicurati di aggiungere le chiavi di sicurezza Box mostrate nelle schermate seguenti.

Le chiavi primarie e secondarie di Box provengono dalla sezione delle chiavi di sicurezza della console per sviluppatori che ho menzionato alcune sezioni sopra. È importante utilizzare queste chiavi per assicurarsi che solo Box possa eseguire il codice della funzione senza server.

Copia e incolla le chiavi nel file serverless.yml sopra

In un terminale, esegui npm install.

Esegui l'installazione di npm

Quindi, corri npx serverless deploy.

Esegui la distribuzione senza server npx

La distribuzione può richiedere diversi minuti, soprattutto la prima volta. Al termine, riceverai un URL di chiamata.

distribuzione sls completata

Copialo e incollalo nell'applicazione della console per sviluppatori che hai creato in precedenza.

Aggiungi l'URL di invocazione alla Box Skill

Visita la console GCP per verificare che la tua funzione serverless sia attiva.

Verificare che la funzione serverless sia stata distribuita

È inoltre necessario aggiungere un'ulteriore autorizzazione alla funzione in modo che Box possa chiamarla. Fai clic su autorizzazioni > aggiungi.

Configurazione delle autorizzazioni della funzione serverless GCP

Digita "allUsers" nella casella delle nuove entità con un ruolo selezionato di Cloud Functions Invoker. Fare clic su Salva.

La funzione serverless di GCP aggiunge le autorizzazioni principali

Carica un file nella cartella Box configurata dall'amministratore.

Caricare un file

Apri il file in Box per vedere il messaggio "Hello World" allegato come metadati.

I metadati personalizzati possono essere visualizzati nell'angolo in alto a destra

Puoi anche controllare i log nella funzione serverless per la verifica.

Puoi vedere il corpo dell'evento registrato dal codice che abbiamo distribuito in precedenza

Configurazione AI documento GCP

Ora che Box Skill e la funzione serverless stanno funzionando, l'ultimo pezzo è impostare un provider di machine learning e modificare il nostro codice per usarlo. Document AI di Google è perfetto per questo caso d'uso, perché estrarrà il testo OCR dalle planimetrie caricate senza dover addestrare un modello di machine learning personalizzato. Possiamo inviare il testo che trova alla configurazione della funzione serverless sopra, analizzare i risultati e applicarlo nuovamente al file come metadati ricercabili.

Prima di passare ai passaggi di configurazione, visita la sezione di prova per vedere la risposta tipica che riceverai.

Provalo! Sezione

Notare il testo OCR e le schede JSON. Nella risposta JSON puoi vedere un campo di testo. Qui è dove vengono posizionati i dati di testo OCR per l'analisi.

Testo OCR identificato
Risposta JSON

Utilizzeremo la sezione relativa alle guide della documentazione di Document AI per configurare l'API per il progetto GCP creato in precedenza. Tieni presente che non è necessario configurare un altro account di servizio o scaricare un nuovo file chiave JSON, poiché lo abbiamo già fatto nel precedente post del blog.

Abilita Document AI facendo clic qui e attivandolo per il progetto GCP che abbiamo impostato in precedenza in questo tutorial.

Abilita l'API Document AI

Vai alla pagina dei processori e fai clic su Esplora processori.

Pagina Processore GCP

Selezionare il tipo di processore OCR del documento.

Assegna un nome al processore nella finestra a comparsa laterale e fai clic su Crea.

Crea pop-up processore

Trova l'endpoint di previsione per il processore. Questo è ciò che useremo per ottenere informazioni sulle planimetrie dopo aver modificato il nostro codice.

Processore creato

Ora modificheremo il codice per utilizzare questa nuova API.

Nel terminale, esegui quanto segue:

npm install axios @google-cloud/documentai

Nel file serverless.yml, dobbiamo aggiungere altre variabili: gcp_project_id, gcp_location, gcp_processor_id, box_metadata_key, box_api_endpointe bedroom_list. Di seguito trovi la nuova sezione da copiare.

L'ID del progetto, la posizione e l'ID del processore provengono dalla configurazione GCP che abbiamo fatto in precedenza. Aggiungerli come variabili ora ci consente di accedervi nel codice e modificarli in futuro senza modificare il codice.

La chiave dei metadati è la chiave per il modello di metadati che abbiamo configurato in precedenza. Puoi trovarlo nella console di amministrazione in contenuto > metadati.

L'elenco delle camere da letto è una stringa separata da virgole di tutti i nomi che le nostre planimetrie chiamano camere da letto. Questo ci aiuterà ad analizzare il test OCR in un numero intero ricercabile. Per questo e qualsiasi altro elenco — bagni, verande, ecc. — non ci possono essere spazi tra i termini.

Tutto ciò avrà più senso una volta modificato il file index.js.

Per index.js, dobbiamo apportare diverse modifiche. Per semplificare, c'è un esempio completo del file index.js finito nel repository che hai scaricato in precedenza da cui puoi copiare. Si chiama index_reference.js. Tieni presente che questo è solo un esempio. Puoi usarlo per espandere la funzionalità in base al tuo caso d'uso nel mondo reale. Vedrai commenti sopra il codice qui sotto che descrivono cosa fa ogni sezione.

Basta copiare/incollare il file index_reference.js e sostituire il contenuto del file index.js.

Ora puoi correre npx serverless deploye poi possiamo usare l'abilità!

Usando l'abilità della scatola

A questo punto, tutti i pezzi per il funzionamento di una Box Skill sono stati impostati: creazione di Box Skill, autorizzazione di Box Skill, creazione di modelli di metadati e configurazione della funzione serverless/apprendimento automatico. Ora possiamo utilizzare l'abilità per il nostro caso d'uso effettivo!

Carica un file nella cartella Box configurata dall'amministratore.

Caricare un file

Fai clic su un file caricato e verifica che i metadati siano stati applicati a un file.

Metadati aggiunti al file

Box impiega circa dieci minuti per indicizzare i metadati. Successivamente, i metadati possono essere utilizzati come criteri di ricerca per i contenuti all'interno dell'applicazione Web Box.

Fai clic sulla barra di ricerca > Metadati > Scegli un modello dal menu a discesa > digita i criteri di ricerca > premi Invio.

Ricerca di modelli di metadati

Verranno restituiti tutti i file che soddisfano i criteri.

Risultati della ricerca del modello di metadati

Tutorial sulle abilità della scatola completato

In questo post del blog, ho mostrato come utilizzare un semplice codice boilerplate e un'API di machine learning pronta all'uso per raccogliere e utilizzare dati preziosi nei contenuti archiviati su Box.

In questo tutorial abbiamo utilizzato le planimetrie, ma puoi utilizzare qualsiasi documento desideri: curriculum, fatture, domande, ecc. Le possibilità sono infinite grazie alle numerose API di machine learning pronte all'uso disponibili. Inoltre, come puoi vedere dal tutorial, impostare il flusso non è così difficile!

Un enorme grazie a Marley !

Ci auguriamo che questo tutorial ti sia piaciuto e non esitare a contattarci sul forum degli sviluppatori per il supporto o tramite Box Pulse per dare suggerimenti su come migliorare Box Skills.