Box Skills: Pezzi del Puzzle + Tutorial
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.
- Il flusso viene attivato da un file di planimetria che viene caricato , spostato o copiato nella cartella configurata per la Box Skill.
- 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.
- 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.
Seleziona Box Abilità personalizzata.
Assegna un nome all'applicazione e fai clic su Crea app.
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.
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.
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.
Nella schermata Skills Admin Console , fai clic su Aggiungi Skill.
Immettere l'ID cliente della competenza e fare clic su Avanti.
Seleziona se la capacità deve essere eseguita per tutto il contenuto o per un sottoinsieme di cartelle.
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.
Confermare le selezioni e fare clic su Abilita.
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.
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.
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.
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.
Apri la cartella in un editor di codice come Visual Studio Code .
Nel terminale dell'editor, conferma di avere Node v10.0.0 o versioni successive.
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.
Rinomina il file come 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.
In un terminale, esegui npm install.
Quindi, corri npx serverless deploy.
La distribuzione può richiedere diversi minuti, soprattutto la prima volta. Al termine, riceverai un URL di chiamata.
Copialo e incollalo nell'applicazione della console per sviluppatori che hai creato in precedenza.
Visita la console GCP per verificare che la tua funzione serverless sia attiva.
È inoltre necessario aggiungere un'ulteriore autorizzazione alla funzione in modo che Box possa chiamarla. Fai clic su autorizzazioni > aggiungi.
Digita "allUsers" nella casella delle nuove entità con un ruolo selezionato di Cloud Functions Invoker. Fare clic su Salva.
Carica un file nella cartella Box configurata dall'amministratore.
Apri il file in Box per vedere il messaggio "Hello World" allegato come metadati.
Puoi anche controllare i log nella funzione serverless per la verifica.
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.
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.
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.
Vai alla pagina dei processori e fai clic su Esplora processori.
Selezionare il tipo di processore OCR del documento.
Assegna un nome al processore nella finestra a comparsa laterale e fai clic su Crea.
Trova l'endpoint di previsione per il processore. Questo è ciò che useremo per ottenere informazioni sulle planimetrie dopo aver modificato il nostro codice.
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.
Fai clic su un file caricato e verifica che i metadati siano stati applicati a un 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.
Verranno restituiti tutti i file che soddisfano i criteri.
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.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































