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:
Eine virtuelle Python-Umgebung verwenden um das Autorisierungstool und seine Abhängigkeiten von den Python-Systempaketen zu isolieren.
sudo apt-get updatesudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.python3 -m venv envenv/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activateInstallieren Sie das Autorisierungstool:
python -m pip install --upgrade google-auth-oauthlib[tool]
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:
- OAuth-Bereich: https://www.googleapis.com/auth/assistant-sdk-prototype
Unterstützte OAuth-Abläufe:
- (Empfohlen) Installierte Apps
- Webserveranwendungen
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
- Bidirektionalen gRPC-Streaming-Client implementieren für die Google Assistant Service API.
- Warten Sie, bis der Nutzer eine neue Anfrage auslöst, z. B. auf eine GPIO-Unterbrechung. per Tastendruck).
AssistRequestsenden Nachricht mit festgelegtem Feldconfig(sieheAssistConfig). Das Feldconfigmuss Folgendes enthalten:- Das Feld
audio_in_config, mit dem angegeben wird, wie deraudio_in-Daten, die in nachfolgenden Anfragen angegeben werden (sieheAudioInConfig). - Das Feld
audio_out_config, das das gewünschte Format für den Server, der verwendet wird, wennaudio_out-Nachrichten zurückgegeben werden (sieheAudioOutConfig). - Das Feld
device_config, das die registriertes Gerät an Assistant senden (sieheDeviceConfig). - Das Feld
dialog_state_in, das dielanguage_codeenthält die mit der Anfrage verknüpft sind (sieheDialogStateIn).
- Das Feld
Aufnahme starten.
Mehrere ausgehende
AssistRequestsenden Nachrichten mit Audiodaten aus der gesprochenen Suchanfrage im Feldaudio_inEingehende
AssistResponseverarbeiten Nachrichten.Konversationsmetadaten aus
AssistResponseextrahieren angezeigt. Beispiel:conversation_statevondialog_state_outabrufen undvolume_percentage(sieheDialogStateOut).Aufzeichnung beim Empfang eines
AssistResponsebeenden mitevent_typevonEND_OF_UTTERANCE.Audio der Antwort von Assistant mit Audiodaten vom
audio_outwiedergeben ein.Kopiere den zuvor extrahierten
conversation_state. in dieDialogStateInNachricht in derAssistConfigfür die nächstenAssistRequest.
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:
- In der eingehenden
AssistResponseNachrichten haben, extrahieren Sie das Felddevice_action(sieheDeviceAction) - 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.