Assistant in Ihr Projekt einbinden (andere Sprachen)

Folgen Sie der Anleitung im jeweiligen Abschnitt unten, um Google Assistant zu integrieren in Ihr Projekt integrieren.

gRPC-Bindungen

Der Google Assistant-Dienst basiert auf gRPC, einer hohen Open-Source-RPC-Framework basiert. Dieses Framework eignet sich gut für bidirektionales Audiostreaming.

Python

Wenn Sie mit Python arbeiten, beginnen Sie mit dieser Anleitung.

C++

Sehen Sie sich unser C++-Beispiel an. auf GitHub.

Node.js

Sehen Sie sich unser Node.js-Beispiel an. auf GitHub.

Android Things

Interessiert an eingebetteten Geräten? Assistant SDK ausprobieren sample für Android Things

Andere Sprachen

  • googleapis-Repository klonen um die Schnittstellendefinitionen für den Protokollzwischenspeicher für die Google Assistant Service API abzurufen.
  • Folgen Sie der gRPC-Dokumentation, um gRPC zu generieren. Bindungen für die Sprache Ihrer Wahl
  • Führen Sie die Schritte in den folgenden Abschnitten aus.

Google-Konto autorisieren und authentifizieren, um mit Assistant zu arbeiten

Im nächsten Schritt autorisieren Sie Ihr Gerät, mit Google Assistant zu sprechen über Ihr Google-Konto.

OAuth-Tokens mit dem Assistant SDK-Bereich abrufen

Das Assistant SDK verwendet OAuth 2.0-Zugriffstokens, um dein Gerät für Folgendes zu autorisieren: sich mit Assistant verbinden zu können.

Beim Prototyping können Sie OAuth 2.0 ganz einfach mit dem Autorisierungstool generieren. Anmeldedaten aus der Datei client_secret_<client-id>.json, die generiert wird, wenn wenn du dein Gerätemodell registrierst.

So generieren Sie die Anmeldedaten:

  1. Eine virtuelle Python-Umgebung verwenden um das Autorisierungstool und seine Abhängigkeiten von den Python-Systempaketen zu isolieren.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. Installieren Sie das Autorisierungstool:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Führen Sie das Tool aus. Entfernen Sie das Flag --headless, wenn Sie diesen Befehl über ein Terminal auf dem Gerät ausführen (keine SSH-Sitzung):

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

Wenn Sie bereit sind, die Autorisierung als Teil der Bereitstellung zu integrieren lesen Sie unsere Anleitungen unter OAuth 2.0 für den Zugriff auf Google APIs verwenden. um zu erfahren, wie Sie OAuth-Zugriffstokens um mit der Assistant API zu kommunizieren.

Beim Durcharbeiten dieser Leitfäden sollten Sie Folgendes beachten:

Best Practices zu Datenschutz und Sicherheit finden Sie Empfehlungen zur Sicherung Ihres Geräts.

gRPC-Verbindung mit OAuth-Tokens authentifizieren

Kombinieren Sie nun alle Teile, indem Sie lesen, wie Sie tokenbasierte Authentifizierung bei Google authentifizieren Sie die gRPC-Verbindung zur Assistant API.

Gerät registrieren

Gerätemodell und Instanz entweder manuell registrieren oder mit dem Registrierungstool (verfügbar in Python).

Einfachen Dialog mit Assistant implementieren

  1. Bidirektionalen gRPC-Streaming-Client implementieren für die Google Assistant Service API.
  2. Warten Sie, bis der Nutzer eine neue Anfrage auslöst, z. B. auf eine GPIO-Unterbrechung. per Tastendruck).
  3. AssistRequest senden Nachricht mit festgelegtem Feld config (siehe AssistConfig). Das Feld config muss Folgendes enthalten:

    • Das Feld audio_in_config, mit dem angegeben wird, wie der audio_in-Daten, die in nachfolgenden Anfragen angegeben werden (siehe AudioInConfig).
    • Das Feld audio_out_config, das das gewünschte Format für den Server, der verwendet wird, wenn audio_out-Nachrichten zurückgegeben werden (siehe AudioOutConfig).
    • Das Feld device_config, das die registriertes Gerät an Assistant senden (siehe DeviceConfig).
    • Das Feld dialog_state_in, das die language_code enthält die mit der Anfrage verknüpft sind (siehe DialogStateIn).
  4. Aufnahme starten.

  5. Mehrere ausgehende AssistRequest senden Nachrichten mit Audiodaten aus der gesprochenen Suchanfrage im Feld audio_in

  6. Eingehende AssistResponse verarbeiten Nachrichten.

  7. Konversationsmetadaten aus AssistResponse extrahieren angezeigt. Beispiel: conversation_state von dialog_state_out abrufen und volume_percentage (siehe DialogStateOut).

  8. Aufzeichnung beim Empfang eines AssistResponse beenden mit event_type von END_OF_UTTERANCE.

  9. Audio der Antwort von Assistant mit Audiodaten vom audio_out wiedergeben ein.

  10. Kopiere den zuvor extrahierten conversation_state. in die DialogStateIn Nachricht in der AssistConfig für die nächsten AssistRequest.

Damit sind Sie in der Lage, Ihre ersten Anfragen an das Assistant über dein Gerät nutzen.

Unterhaltungsdialogfeld mit Geräteaktionen erweitern

Maximieren Sie das einfache Unterhaltungsfenster oben, um die individuelle Hardware auszulösen. Funktionen Ihres Geräts:

  1. In der eingehenden AssistResponse Nachrichten haben, extrahieren Sie das Feld device_action (siehe DeviceAction)
  2. Parsen Sie die JSON-Nutzlast des Felds device_request_json. Weitere Informationen finden Sie im Geräteeigenschaften für die Liste der unterstützten Merkmale. Jede Trait-Schemaseite enthält ein Beispiel AUSFÜHREN -Anfrage mit den Gerätebefehlen und -parametern, die im JSON-Nutzlast.

Transkript der Nutzeranfrage abrufen

Wenn ein Display an das Gerät angeschlossen ist, möchten Sie es vielleicht dazu verwenden, um die Nutzeranfrage anzuzeigen. Parsen Sie das Feld speech_results, um dieses Transkript abzurufen in der AssistResponse Nachrichten. Nach Abschluss der Spracherkennung enthält diese Liste ein item. wobei stability auf 1,0 gesetzt ist.

Text und/oder visuelle Darstellung der Assistant-Antwort abrufen

Wenn ein Display an das Gerät angeschlossen ist, möchten Sie es vielleicht dazu verwenden, zeigt die reine Textantwort von Assistant auf die Anfrage des Nutzers an. Dieser Text befindet sich in der DialogStateOut.supplemental_display_text ein.

Assistant unterstützt visuelle Antworten über HTML5 auf bestimmte Anfragen (Welche ist das Wetter in Mountain View? oder Wie spät ist es?). Um dies zu aktivieren, legen Sie das Feld screen_out_config in AssistConfig Die ScreenOutConfig Die Nachricht enthält das Feld screen_mode, das auf PLAYING gesetzt werden sollte.

Die AssistResponse Für Nachrichten ist das Feld screen_out festgelegt. Sie können die HTML5-Daten (falls vorhanden) aus dem data-Feld.

Abfragen über Texteingabe senden

Wenn eine Textoberfläche (z. B. eine Tastatur) an das Gerät angeschlossen ist, Legen Sie das Feld text_query im Feld config fest (siehe AssistConfig). Legen Sie nicht das Feld audio_in_config fest.

Fehlerbehebung

Weitere Informationen zur Fehlerbehebung falls Probleme auftreten.