Projekte erstellen

In einem Actions-Projekt werden alle Ihre Aktionen in einem einzigen Container zusammengefasst. Du veröffentlichst dieses Projekt für Actions on Google, damit Google Assistant deine Unterhaltungen finden und aufrufen kann.

Komponenten des Aktionsprojekts
Abbildung 1: Aktionsprojektstruktur

Sie verwenden die folgenden untergeordneten Komponenten, um Ihr Actions-Projekt zu erstellen:

  • Mit Einstellungen und Ressourcen werden Projektmetadaten und Ressourcen wie Projektsymbole definiert. Google verwendet diese Informationen, um deine Aktionen im Assistant-Verzeichnis zu veröffentlichen, damit Nutzer sie finden und aufrufen können.

  • Intents stellen eine auszuführende Aufgabe dar, z. B. eine Nutzereingabe oder ein Systemereignis, das verarbeitet werden muss. Die häufigste Art von Intent, den Sie verwenden, sind Nutzer-Intents. Mit diesen Intents können Sie Trainingsformulierungen deklarieren, die von der NLU-Engine (Natural Language Understanding) automatisch um viel weitere ähnliche Wortgruppen erweitert werden. Die NLU verwendet die Aggregation dieser Formulierungen, um ein Sprachmodell zu trainieren, mit dem Assistant Nutzereingaben anpasst. Wenn während einer Unterhaltung eine Nutzereingabe mit dem Sprachmodell des Intents übereinstimmt, sendet die Assistant-Laufzeit den Intent an Ihre Aktion, damit sie ihn verarbeiten und dem Nutzer antworten kann.

  • Mit Typen können Sie strukturierte Daten aus Nutzereingaben extrahieren. Durch das Annotieren von Trainingsformulierungen mit Typen kann die NLU relevante, strukturierte Daten für Sie extrahieren, sodass Sie keine offenen Eingaben parsen müssen.

  • Szenen verarbeiten Intents und sind die wichtigsten Logik-Executors für Ihre Aktionen. Sie können Slots füllen, bedingte Logik bewerten, Aufforderungen an den Nutzer zurückgeben und sogar externe Webdienste zur Ausführung der Geschäftslogik aufrufen. In Kombination mit Intents bieten Ihnen Szenen eine leistungsstarke Möglichkeit, bestimmte Nutzereingaben oder Systemereignisse zu erkennen und eine entsprechende Logik auszuführen.

  • Aufforderungen definieren statische oder dynamische Antworten, mit denen Sie Nutzern antworten.

  • Mit Webhooks können Sie zusätzliche Arbeit an Webdienste (Auftragsausführung) delegieren, z. B. das Validieren von Daten oder das Generieren von Eingabeaufforderungen. Ihre Aktionen kommunizieren über ein JSON-basiertes Webhook-Protokoll mit der Auftragsausführung.

  • Mit Interactive Canvas können Sie umfassende und immersive Erfahrungen mit Web-Apps erstellen, die HTML, CSS und JavaScript verwenden.

Projekt erstellen

Du musst ein Projekt in der Actions Console erstellen, bevor du es für Google Assistant entwickeln kannst. So erstellst du ein Projekt:

  1. Rufen Sie die Actions Console auf.
  2. Klicken Sie auf Neues Projekt.
  3. Geben Sie einen Namen für das Projekt ein und klicken Sie auf Projekt erstellen.
  4. Wählen Sie im Bildschirm Welche Art von Aktion möchten Sie erstellen? eine Kategorie aus, die am besten zu Ihrem Projekt passt, und klicken Sie auf Weiter.
  5. Wählen Sie im Bildschirm Wie möchten Sie den Build erstellen? eine Methode für die Erstellung aus und klicken Sie auf Mit der Erstellung beginnen. Sie können beispielsweise mit einem leeren Projekt oder mit einem Beispiel beginnen.

Lokales Actions SDK-Projekt erstellen

Nachdem du ein Actions-Projekt in der Actions Console erstellt hast, kannst du ein Projekt in deiner lokalen Entwicklungsumgebung initialisieren.

So initialisieren Sie ein Actions SDK-Projekt aus einem vorhandenen Actions-Projekt:

  1. Erstellen Sie in Ihrem lokalen Dateisystem ein leeres Verzeichnis für das Actions-Projekt.
  2. Erstellen Sie in diesem leeren Verzeichnis ein sdk-Verzeichnis.
  3. Ändern Sie Ihr Arbeitsverzeichnis in das Verzeichnis sdk in Ihrem Terminal.

Mit einem leeren Projekt beginnen

Wenn Sie mit dem leeren Projekt beginnen möchten, das Sie gerade in der Console erstellt haben, führen Sie gactions pull --project-id <my-project-id> aus.

$ mkdir myAction
$ cd myAction
$ mkdir sdk
$ cd sdk
$ gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id"
✔ Done. You should see the files written in path/to/myAction/sdk

Mit einem Beispielprojekt beginnen

Wenn Sie mit einem Beispielprojekt beginnen möchten, führen Sie gactions init <sample name> aus.

$ mkdir actions-test
$ cd actions-test
$ mkdir sdk
$ cd sdk
$ gactions init question
Writing sample files for question.
✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.

Projektinformationen definieren

Die Einstellungen und Ressourcen Ihres Projekts definieren Informationen über Ihr Projekt, z. B. Feature- und Oberflächenunterstützung, unterstützte Sprachen, Anzeigename, Beschreibung, Logos und mehr. In der folgenden Tabelle werden die wichtigsten Einstellungen und Ressourcen beschrieben, die Sie bereitstellen. Actions on Google verwendet diese Informationen, um Ihr Projekt im Assistant-Verzeichnis bereitzustellen und zu veröffentlichen.

Name Beschreibung
Verzeichnisdaten Stellt Informationen bereit, damit Actions on Google dein Projekt im Assistant-Verzeichnis veröffentlichen kann. Enthält Metadaten und Beschreibungen zu Ihrem Projekt sowie Bildressourcen für Logos und Bannerbilder.
Geografische Ausrichtung Konfiguriert die Sprachen, in denen deine Aktionen verfügbar sind.
Oberflächenfunktionen Konfiguriert die Oberflächen, auf denen deine Aktionen verfügbar sind.
Informationen zum Unternehmen Hier können Sie die Kontaktdaten Ihres Unternehmens angeben.
Markenverifizierung Verknüpfe eine Website oder Android-App, die dir gehört, um zusätzliche Vorteile wie reservierte Aufrufnamen und Websiteverknüpfungen in deinen Aktionen zu erhalten.
Release Konfiguriert verschiedene Test- und Produktionsreleases für deine Aktion zu Test- und Produktionszwecken.
Assistant-Verknüpfungen Du kannst Nutzern erlauben, deine Aktionen über deine Web-Properties aufzurufen.

So definieren Sie Projektinformationen:

  1. Legen Sie in sdk/settings/settings.yaml globale Einstellungen für Ihr Actions-Projekt fest. Unterstützte Werte finden Sie in der Referenzdokumentation zu Einstellungen.

    Das folgende Snippet zeigt eine Beispieldatei sdk/settings/settings.yaml:

    accountLinking:
      enableAccountCreation: true
      linkingType: GOOGLE_SIGN_IN
    category: GAMES_AND_TRIVIA
    projectId: my-project-id
    ...
    

  2. Definieren Sie in einer sdk/settings/<locale>/settings.yaml-Datei Einstellungen, die je nach Sprache des Nutzers variieren können (z. B. Aufrufsätze in verschiedenen Sprachen). Ersetzen Sie dabei locale durch Ihre Zielsprache.

    Unterstützte Werte finden Sie in der Referenzdokumentation zu LocalizedSettings.

    Das folgende Snippet ist ein Beispiel für englische Einstellungen, die in einer sdk/settings/en/settings.yaml-Datei definiert werden:

    localizedSettings:
      developerEmail: developer@developers.com
      developerName: Developer Name
      displayName: My Display Name
      fullDescription: full description of the action
      largeBannerImage: https://path/to/large/banner
      privacyPolicyUrl: http://path/to/privacy/policy
      sampleInvocations:
      - Talk to My Display Name
      shortDescription: short description of the action
      smallLogoImage: https://path/to/small/logo
      voice: female_1
    ...
    

Ressourcen hinzufügen

Sie können Ressourcen wie Bilddateien, Audiodateien und Strings in Ihrem Actions-Projekt speichern und mit der systemdefinierten $resources-Variable in Konfigurationsdateien (z. B. Prompt-Definitionen oder Bedingungen) darauf verweisen.

Projektressourcen werden unter resources/ gespeichert und jedem Ressourcentyp wird ein Ordner im Verzeichnis zugewiesen.

Sie können Ressourcen lokalisieren, indem Sie länderspezifische Ordner im Ordner „Ressourcentyp“ erstellen. So können Sie beispielsweise spanische Versionen Ihrer Strings in resources/strings/es/<filename>.yaml speichern.

Bilder

Bilddateien werden in resources/images/ gespeichert, auf die Sie mit $resources.images.<name of the image file without file extension> verweisen können. Folgende Dateiendungen sind zulässig:

  • gif
  • png
  • jpg
  • jpeg

Wenn beispielsweise die englische Version des kleinen Logos in resources/images/en/square.png und die englische Version des großen Banners jeweils in resources/images/en/landscape.jpg gespeichert wird, wird sdk/settings/en/settings.yaml aus dem vorherigen Beispiel so:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: Developer Name
  displayName: My Display Name
  fullDescription: full description of the action

  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: http://path/to/privacy/policy
  sampleInvocations:
  - Talk to My Display Name
  shortDescription: short description of the action

  smallLogoImage: $resources.images.square
  voice: female_1
...

Audiodateien

Audiodateien werden in resources/audio/ gespeichert und Sie können mit $resources.audio.<name of the audio file without file extension> darauf verweisen.

Folgende Dateiendungen sind zulässig:

  • mp3
  • mpeg

So können Sie beispielsweise auf Audioaufnahmen aus Prompts verweisen:

candidates:
  - first_simple:
      variants:
        - speech: your speech response
    content:
      media:
        mediaType: audio
        mediaObjects:
          - name: media name
            description: media description
            url: $resources.audio.intro

Strings

Strings werden in resources/strings/ als .yaml-Dateien gespeichert. Jede Datei enthält eine Zuordnung von Stringschlüsseln und zugehörigen Werten, bei denen es sich um einzelne Strings oder Listen von Strings handeln kann. Sie können die Werte mit $resources.strings.<name of the image file without file extension>.<key> für einzelne Stringwerte oder zum Abrufen eines zufälligen Werts aus einer Liste und mit $resources.strings.<name of the image file without file extension>.<key>.<numerical index> für einen bestimmten Stringwert in einer Liste referenzieren.

Wenn Sie beispielsweise Ressourcenstrings für die Stringlokalisierung verwenden, könnte sdk/settings/en/settings.yaml aus dem vorherigen Beispiel so aussehen:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: $resources.strings.appinfo.developerName
  displayName: $resources.strings.appinfo.displayName
  fullDescription: $resources.strings.appinfo.fullDescription
  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl
  sampleInvocations:
  - $resources.strings.invocations.sample
  shortDescription: $resources.strings.appinfo.shortDescription
  smallLogoImage: $resources.images.square
  voice: female_1
...

Projekte im Simulator testen

Die Actions Console bietet einen Simulator, in dem du eine Vorschau deiner Aktionen ansehen kannst. Mit dem Simulator können Sie Informationen zur Fehlerbehebung abrufen, Gerätefunktionen festlegen, die Sprache simulieren und vieles mehr.

Abbildung 3. Die Hauptbereiche des Simulators: (1) Nutzereingabe, (2) Geräteansicht, (3) Optionen und Einstellungen und (4) Unterhaltungsprotokoll.

So testen Sie ein Projekt:

  1. Führe gactions deploy preview aus, um deine Aktion für die Vorschau bereitzustellen und Tests im Simulator zu aktivieren.
  2. Öffnen Sie die URL in der Befehlsausgabe, um auf den Simulator zuzugreifen.
$ gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview