Box Skills: Teile des Puzzles + Tutorial

Dec 15 2022
Box Skills wurden 2017 eingeführt und seitdem wurden über 1000 Fähigkeiten in verschiedenen Branchen eingesetzt, um Box-Inhalte intelligenter zu machen. Wie einfach ist es, einen Skill einzurichten? In diesem Blog zeige ich es dir! Box-Skills-Auffrischung Bevor ich mich mit der Einrichtung eines Box-Skills befasse, möchte ich einen Überblick darüber geben, was sie sind und welche Teile eine Box-Skills-Implementierung vervollständigen.

Box Skills wurden 2017 eingeführt und seitdem wurden über 1000 Fähigkeiten in verschiedenen Branchen eingesetzt, um Box-Inhalte intelligenter zu machen. Wie einfach ist es, einen Skill einzurichten? In diesem Blog zeige ich es dir!

Auffrischung der Box-Fähigkeiten

Bevor ich mich mit der Einrichtung eines Box-Skills befasse, möchte ich einen Überblick darüber geben, was sie sind und welche Teile eine Box-Skills-Implementierung vervollständigen.

Wenn Sie auf unserer Entwickler-Website auf den Abschnitt des Architekturmusters verweisen , wird das folgende Diagramm angezeigt. Es stellt ein klassisches Beispiel für einen Box-Skill dar – in diesem Fall eine Grundriss-Identifikationslösung.

Box-Skill-Infrastrukturkarte
  1. Der Ablauf wird ausgelöst, wenn eine Grundrissdatei hochgeladen , verschoben oder in den für den Box-Skill konfigurierten Ordner kopiert wird.
  2. Die Datei wird über die in den Box-Skill- Konfigurationsschritten eingerichtete Aufruf-URL an eine Google Cloud-Funktion gesendet . Jeder Cloud-Anbieter, der Serverless-Funktionen anbietet, kann verwendet werden, auch wenn wir in diesem Tutorial GCP zeigen.
  3. Die Funktion führt benutzerdefinierten geschriebenen Code aus, um die Box-Skill-Nutzdaten zu analysieren , Sicherheitsschlüssel zu überprüfen , eine lokale Kopie der Datei herunterzuladen , die Datei an einen Anbieter von maschinellem Lernen zu senden – in diesem Beispiel auch GCP – und vom maschinellen Lerndienst entdeckte Metadaten zurückzuschreiben zur Originaldatei in Box.

Der zweite und der dritte Teil werden nicht über die Box-Plattform lizenziert oder abgerechnet und erfordern daher in der Regel die Zusammenarbeit mit den Vertriebs- und Aktivierungsteams dieser bestimmten Dienste – sie müssen nicht derselbe Anbieter sein. Beispielsweise kann eine Azure-Funktion IBM Watson aufrufen .

Box bietet einen Mehrwert im Ablauf, da die anfängliche Aktion des Inhalts den Beginn des Prozesses auslöst. Dies hält Entwickler davon ab, Inhalte zu migrieren oder zu duplizieren, um Erkenntnisse zu sammeln. Außerdem endet der Ablauf innerhalb von Sekunden mit durchsuchbaren Metadaten direkt auf der Plattform, sodass Benutzer die benötigten Informationen schneller sehen können.

In der folgenden Demo zeige ich Ihnen, wie Sie den Ablauf im obigen Diagramm einrichten. Am Ende hoffe ich, einen Grundriss hochladen zu können und die Anzahl der Schlafzimmer im Grundriss als Metadaten in die Datei zurückschreiben zu können. So kann ich zukünftig nach allen Grundrissen mit einer bestimmten Schlafzimmeranzahl suchen.

Lassen Sie uns in das Tutorial springen!

Administrative Einrichtung von Box Skills

Erstellen Sie ein Box-Entwicklerkonto (optional, aber empfohlen)

Wenn Sie kein Box-Unternehmenskonto haben, können Sie sich hier für ein kostenloses Entwicklerkonto anmelden . Ich empfehle, das Entwicklerkonto für das Tutorial zu verwenden, anstatt Ihre Produktionsumgebung zu verwenden.

Bitte beachten Sie, dass Sie bei der Anmeldung nicht dieselbe E-Mail-Adresse verwenden können, da die Einschränkung besteht, dass Sie in ganz Box eine eindeutige E-Mail-Adresse haben.

Create the Box Skill (vom Entwickler abgeschlossen)

Navigieren Sie zur Entwicklerkonsole und klicken Sie auf Neue App erstellen.

Zielseite der Entwicklerkonsole

Wählen Sie Box Custom Skill aus.

Anwendungsauswahlbildschirm der Entwicklerkonsole

Geben Sie der Anwendung einen Namen und klicken Sie auf App erstellen.

Pop-up-Fenster zum Erstellen von Box-Fertigkeiten

Nachdem Sie die Anwendung erstellt haben, sehen Sie den folgenden Bildschirm. In das rote Feld geben Sie die URL ein, an der die Box-Skills-Nutzlast angezeigt werden soll. Wir werden diese URL später hinzufügen.

Box-Skill-Konfigurationsbildschirm

Auf der Registerkarte Sicherheitsschlüssel finden Sie zwei Schlüssel, mit denen Sie überprüfen können, ob Box der Dienst ist, der die serverlose Funktion aufgerufen hat.

Box-Skill-Sicherheitsschlüssel

Box-Skill aktivieren/autorisieren (vom Administrator abgeschlossen)

Genau wie bei anderen Anwendungstypen muss ein Administrator Ihrer Box-Instanz den Box-Skill im Skills-Bereich der Verwaltungskonsole aktivieren und autorisieren. Sie müssen dem Administrator die Client-ID der Anwendung mitteilen, die im Konfigurationsbildschirm von Box Skill zu finden ist.

Sie müssen auch den/die Ordnernamen/Eigentümer der Inhalte angeben, für die der Skill ausgelöst werden soll. Wenn Sie noch keinen Ordner für den zu überwachenden Skill eingerichtet haben, sollten Sie dies tun, bevor Sie die Autorisierung von Ihrem Administrator anfordern.

Erstellen Sie einen Box-Ordner

Klicken Sie auf dem Bildschirm Skills Admin Console auf Skill hinzufügen.

Bildschirm der Box Skills-Verwaltungskonsole

Geben Sie die Client-ID des Skills ein und klicken Sie auf Weiter.

Box-Skill-Popup hinzufügen

Wählen Sie aus, ob der Skill für alle Inhalte oder eine Teilmenge von Ordnern ausgeführt werden soll.

Bildschirm zur Konfiguration des Box-Skill-Ordners

Filtern Sie das Pop-up für (einen) bestimmte(n) Ordner nach Benutzer- oder Ordnernamen. Überprüfen Sie die Ordner, für die der Skill ausgelöst werden soll.

Popup-Fenster zur Auswahl des Box-Skill-Ordners

Bestätigen Sie die Auswahl und klicken Sie auf Aktivieren.

Box-Skill-Bestätigungsbildschirm

Box-Metadatenvorlage erstellen (optional – vom Administrator ausgefüllt)

Dieser Schritt ist optional, da Metadaten oder Kompetenzdaten ohne Vorlage in eine Datei geschrieben werden können; Durch das Erstellen einer Metadatenvorlage können Benutzer jedoch problemlos nach den bereitgestellten Ergebnissen des maschinellen Lernens suchen.

Klicken Sie in der Admin-Konsole auf Inhalt > Metadaten > Neu erstellen.

Metadaten-Vorlagenbildschirm der Admin-Konsole

Konfigurieren Sie die Metadatenvorlage, indem Sie ihr einen Namen geben, Attribute hinzufügen – die jeweils einen Namen, ein Format und eine Beschreibung haben sollten – und auf Speichern klicken.

Schritte zur Einrichtung von Metadatenvorlagen

Einrichtung der serverlosen Funktion

In diesem Beispiel wird unser Serverless Box Custom Skills -Starter-Repository verwendet, um die Entwicklung zu beschleunigen.

Klicken Sie auf den obigen Link und laden Sie das Repository auf Ihren Computer herunter.

Box Skills Quickstart-Projekt

Entpacken Sie den heruntergeladenen Ordner. Suchen Sie den Ordner box-custom-skills-starter-gcp im heruntergeladenen Repository und benennen Sie ihn in etwas um, das Ihrem Anwendungsfall entspricht. Sie können den Ordner auch gerne in Ihr typisches Projektverzeichnis verschieben. Wenn Sie lieber AWS oder Azure verwenden möchten, finden Sie hello world-Verzeichnisse im selben Zip-Ordner.

Heruntergeladenen Ordner entpacken

Öffnen Sie den Ordner in einem Code-Editor wie Visual Studio Code .

Öffnen Sie den umbenannten und verschobenen Beispielordner

Bestätigen Sie im Terminal des Editors, dass Sie über Node v10.0.0 oder höher verfügen.

Überprüfen Sie die Knotenversion

Bevor Sie fortfahren, müssen Sie ein GCP-Konto mit einer angehängten Abrechnungsmethode einrichten. Ich werde hier nicht auf alle diese Schritte eingehen, aber Sie finden die Schritte dafür auf der Serverless- Website. Stellen Sie sicher, dass Sie alle Schritte ausführen, einschließlich Erstellen eines Projekts + Aktivieren der APIs , Erstellen eines Dienstkontos und Herunterladen einer JSON-Schlüsseldatei .

Ziehen Sie die im obigen Schritt heruntergeladene JSON-Schlüsseldatei in den Ordner „.gcloud“.

Ziehen Sie Ihre JSON-Schlüsseldatei von GCP hinein

Benennen Sie die Datei in serverless.json um.

Ändern Sie den Namen der JSON-Datei in serverless.json

Aktualisieren Sie die Datei „package.json“, um die Namensinformationen für Ihren Anwendungsfall zu erhalten.

Aktualisieren Sie die serverless.yml-Datei, um die Konfigurations- und Namensinformationen für Ihr GCP-Konto und Ihren Anwendungsfall zu erhalten. Stellen Sie außerdem sicher, dass Sie die in den folgenden Bildschirmen gezeigten Box-Sicherheitsschlüssel hinzufügen.

Die primären und sekundären Schlüssel der Box stammen aus dem Abschnitt „Sicherheitsschlüssel“ der Entwicklerkonsole, den ich einige Abschnitte weiter oben erwähnt habe. Es ist wichtig, diese Schlüssel zu verwenden, um sicherzustellen, dass nur Box den Code der serverlosen Funktion ausführen kann.

Kopieren Sie die Schlüssel und fügen Sie sie in die obige serverless.yml-Datei ein

Führen Sie in einem Terminal npm install.

Führen Sie npm install aus

Dann laufen npx serverless deploy.

Führen Sie npx serverless deploy aus

Die Bereitstellung kann insbesondere beim ersten Mal mehrere Minuten dauern. Nach Abschluss erhalten Sie eine Aufruf-URL zurück.

sls-Bereitstellung abgeschlossen

Kopieren Sie diese und fügen Sie sie in die zuvor erstellte Entwicklerkonsolenanwendung ein.

Fügen Sie die Aufruf-URL zum Box-Skill hinzu

Rufen Sie die GCP-Konsole auf, um zu sehen, ob Ihre serverlose Funktion aktiv ist.

Stellen Sie sicher, dass die serverlose Funktion bereitgestellt wurde

Sie müssen der Funktion auch eine zusätzliche Berechtigung hinzufügen, damit Box sie aufrufen kann. Klicken Sie auf Berechtigungen > Hinzufügen.

Berechtigungskonfiguration für serverlose GCP-Funktion

Geben Sie „allUsers“ in das Feld „Neue Prinzipale“ ein, wobei die Rolle „Cloud Functions Invoker“ ausgewählt ist. Klicken Sie auf Speichern.

GCP Serverless Function-Berechtigungen zum Hinzufügen von Prinzipalen

Laden Sie eine Datei in den vom Administrator konfigurierten Box-Ordner hoch.

Eine Datei hochladen

Öffnen Sie die Datei in Box, um die als Metadaten angehängte Nachricht „Hello World“ anzuzeigen.

Benutzerdefinierte Metadaten sind in der oberen rechten Ecke zu sehen

Sie können auch die Protokolle in der Serverless-Funktion zur Überprüfung überprüfen.

Sie können den Ereignistext sehen, der aus dem zuvor bereitgestellten Code protokolliert wurde

GCP Document AI-Einrichtung

Jetzt, da der Box-Skill und die serverlose Funktion funktionieren, besteht der letzte Schritt darin, einen Anbieter für maschinelles Lernen einzurichten und unseren Code zu bearbeiten, um ihn zu verwenden. Die Dokumenten-KI von Google ist perfekt für diesen Anwendungsfall, da sie OCR -Text aus den hochgeladenen Grundrissen zieht, ohne dass ein benutzerdefiniertes Modell für maschinelles Lernen trainiert werden muss. Wir können den gefundenen Text an die obige Einrichtung der serverlosen Funktion zurücksenden, die Ergebnisse parsen und als durchsuchbare Metadaten wieder auf die Datei anwenden.

Bevor Sie mit den Einrichtungsschritten beginnen, besuchen Sie den Abschnitt zum Ausprobieren , um die typische Antwort zu sehen, die Sie erhalten.

Versuch es! Abschnitt

Beachten Sie die Registerkarten OCR-Text und JSON. In der JSON-Antwort sehen Sie ein Textfeld. Hier werden die OCR-Textdaten zum Parsen abgelegt.

OCR-Text erkannt
JSON-Antwort

Wir werden den Abschnitt mit Anleitungen in der Dokumentation von Document AI verwenden, um die API für das zuvor erstellte GCP-Projekt zu konfigurieren. Beachten Sie, dass wir kein weiteres Dienstkonto einrichten oder eine neue JSON-Schlüsseldatei herunterladen müssen, da wir dies bereits im vorherigen Blogbeitrag getan haben.

Aktivieren Sie die Dokumenten-KI, indem Sie hier klicken und sie für das GCP-Projekt aktivieren, das wir zuvor in diesem Tutorial eingerichtet haben.

Aktivieren Sie die Document AI API

Gehen Sie zur Seite Prozessoren und klicken Sie auf Prozessoren durchsuchen.

GCP-Prozessorseite

Wählen Sie den OCR-Prozessortyp des Dokuments aus.

Geben Sie dem Prozessor im seitlichen Popup-Fenster einen Namen und klicken Sie auf Erstellen.

Prozessor-Popup erstellen

Suchen Sie den Vorhersageendpunkt für den Prozessor. Dies werden wir verwenden, um Informationen über die Grundrisse zu erhalten, sobald wir unseren Code bearbeitet haben.

Prozessor erstellt

Jetzt werden wir den Code bearbeiten, um diese neue API zu verwenden.

Führen Sie im Terminal Folgendes aus:

npm install axios @google-cloud/documentai

In der serverless.yml-Datei müssen wir einige weitere Variablen hinzufügen: gcp_project_id, gcp_location, gcp_processor_id, box_metadata_key, box_api_endpointund bedroom_list. Den neuen Abschnitt zum Kopieren finden Sie unten.

Die Projekt-ID, der Standort und die Prozessor-ID stammen aus der GCP-Konfiguration, die wir zuvor vorgenommen haben. Wenn wir sie jetzt als Variablen hinzufügen, können wir im Code darauf zugreifen und sie in Zukunft ohne Codebearbeitung ändern.

Der Metadatenschlüssel ist der Schlüssel für die Metadatenvorlage, die wir zuvor eingerichtet haben. Diese finden Sie in der Admin-Konsole unter Inhalt > Metadaten.

Die Schlafzimmerliste ist eine durch Kommas getrennte Zeichenfolge aller Namen, die unsere Grundrisse als Schlafzimmer bezeichnen. Dies hilft uns, den OCR-Test in eine durchsuchbare Ganzzahl zu zerlegen. Für diese und alle anderen Listen – Badezimmer, Veranden usw. – dürfen keine Leerzeichen zwischen den Begriffen stehen.

Diese werden alle sinnvoller, sobald wir die Datei index.js ändern.

Für die index.js müssen wir einige Änderungen vornehmen. Um es einfacher zu machen, gibt es ein vollständiges Beispiel der fertigen index.js-Datei in dem zuvor heruntergeladenen Repo, aus dem Sie kopieren können. Es heißt index_reference.js. Beachten Sie, dass dies nur ein Beispiel ist. Sie können dies verwenden, um die Funktionalität abhängig von Ihrem realen Anwendungsfall zu erweitern. Über dem folgenden Code werden Kommentare angezeigt, die beschreiben, was jeder Abschnitt tut.

Kopieren Sie einfach die Datei index_reference.js/fügen Sie sie ein und ersetzen Sie den Inhalt der Datei index.js.

Jetzt kannst du rennen npx serverless deployund dann können wir die Fähigkeit einsetzen!

Verwenden der Box-Fähigkeit

An diesem Punkt sind alle Teile für das Funktionieren eines Box-Skills eingerichtet: Box-Skill-Erstellung, Box-Skill-Autorisierung, Erstellung von Metadatenvorlagen und die Einrichtung der serverlosen Funktion/des maschinellen Lernens. Wir können den Skill jetzt für unseren eigentlichen Anwendungsfall verwenden!

Laden Sie eine Datei in den vom Administrator konfigurierten Box-Ordner hoch.

Eine Datei hochladen

Klicken Sie in eine hochgeladene Datei und sehen Sie, dass Metadaten auf eine Datei angewendet wurden.

Metadaten zur Datei hinzugefügt

Box benötigt etwa zehn Minuten, um Metadaten zu indizieren. Danach können die Metadaten als Suchkriterien für Inhalte innerhalb der Box-Webanwendung verwendet werden.

Klicken Sie auf die Suchleiste > Metadaten > Wählen Sie eine Vorlage aus der Dropdown-Liste > geben Sie die Suchkriterien ein > drücken Sie die Eingabetaste.

Suche nach Metadatenvorlagen

Alle Dateien, die den Kriterien entsprechen, werden zurückgegeben.

Suchergebnisse für Metadatenvorlagen

Box-Skills-Tutorial abgeschlossen

In diesem Blogbeitrag habe ich gezeigt, wie Sie mit einfachem Boilerplate-Code und einer sofort einsatzbereiten API für maschinelles Lernen wertvolle Daten in den in Box gespeicherten Inhalten sammeln und verwenden können.

In diesem Tutorial haben wir Grundrisse verwendet, aber Sie können jedes gewünschte Dokument verwenden – Lebensläufe, Rechnungen, Bewerbungen usw. Die Möglichkeiten sind aufgrund der vielen gebrauchsfertigen APIs für maschinelles Lernen endlos. Plus – wie Sie dem Tutorial entnehmen können, ist das Einrichten des Flows nicht so schwierig!

Ein großes Dankeschön an Marley !

Wir hoffen, dass Ihnen dieses Tutorial gefallen hat, und Sie können sich gerne im Entwicklerforum an uns wenden , um Unterstützung zu erhalten, oder über Box Pulse , um Vorschläge zur Verbesserung der Box-Fähigkeiten zu machen.