Suivez les instructions de chaque section ci-dessous pour intégrer l'Assistant Google dans votre projet.
Liaisons gRPC
Le service Assistant Google est basé sur gRPC, un protocole les performances du framework RPC Open Source. Ce cadre est bien adapté du streaming audio bidirectionnel.
Python
Si vous utilisez Python, commencez par suivre ce guide.
C++
Consultez notre exemple C++. sur GitHub.
Node.js
Consultez notre exemple Node.js. sur GitHub.
Android Things
Vous vous intéressez aux appareils intégrés ? Découvrez le SDK de l'Assistant sample pour Android Things :
Autres langues
- Cloner le dépôt googleapis pour obtenir les définitions de l'interface de tampon de protocole pour l'API Google Assistant Service.
- Suivez la documentation gRPC pour générer gRPC. liaisons pour le langage de votre choix
- Suivez la procédure décrite dans les sections ci-dessous.
Autoriser et authentifier votre compte Google pour qu'il fonctionne avec l'Assistant
L'étape suivante consiste à autoriser votre appareil à parler avec l'Assistant Google à l'aide de votre compte Google.
Obtenir des jetons OAuth avec le champ d'application du SDK Assistant
Le SDK de l'Assistant utilise des jetons d'accès OAuth 2.0 pour autoriser votre appareil à communiquer avec l'Assistant.
Lors du prototypage, vous pouvez utiliser l'outil d'autorisation pour générer facilement OAuth2.0
identifiants à partir du fichier client_secret_<client-id>.json
généré lorsque
enregistrer le modèle de votre appareil.
Procédez comme suit pour générer les identifiants:
utiliser un environnement virtuel Python ; pour isoler l'outil d'autorisation et ses dépendances des packages Python du système.
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
Installez l'outil d'autorisation:
python -m pip install --upgrade google-auth-oauthlib[tool]
Exécutez l'outil. Supprimez l'indicateur
--headless
si vous exécutez cette commande à partir d'un terminal sur l'appareil (et non d'une session SSH):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
Lorsque vous êtes prêt à intégrer l'autorisation dans le provisionnement de votre appareil, lisez nos guides pour utiliser OAuth 2.0 pour accéder aux API Google. pour comprendre comment obtenir, conserver et utiliser des jetons d'accès OAuth afin d'autoriser votre pour communiquer avec l'API Assistant.
Utilisez ce qui suit lorsque vous parcourez ces guides:
- Champ d'application OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Flux OAuth compatibles:
- (Recommandé) Applications installées
- Applications de serveur Web
Consultez les bonnes pratiques concernant la confidentialité et la sécurité. pour obtenir des recommandations sur la façon de sécuriser votre appareil.
Authentifier votre connexion gRPC avec des jetons OAuth
Enfin, compilez tous les éléments en découvrant comment utiliser des clés l'authentification auprès de Google pour authentifier la connexion gRPC auprès de l'API Assistant.
Enregistrer votre appareil
Enregistrez le modèle d'appareil et l'instance manuellement. ou à l'aide de l'outil d'inscription (disponible en Python).
Implémenter une boîte de dialogue de conversation de base avec l'Assistant
- Implémenter un client gRPC de streaming bidirectionnel pour l'API Google Assistant Service.
- Attendre que l'utilisateur déclenche une nouvelle requête (par exemple, une interruption GPIO) en appuyant sur un bouton).
Envoyer un
AssistRequest
avec le champconfig
défini (voirAssistConfig
). Assurez-vous que le champconfig
contient les éléments suivants:- Le champ
audio_in_config
, qui indique comment traiter le Donnéesaudio_in
qui seront fournies dans les demandes ultérieures (voirAudioInConfig
). - Le champ
audio_out_config
, qui spécifie le format souhaité pour le serveur à utiliser lorsqu'il renvoie des messagesaudio_out
(voirAudioOutConfig
). - Le champ
device_config
, qui identifie le enregistré dans l'Assistant (voirDeviceConfig
). - Le champ
dialog_state_in
, qui contient le champlanguage_code
associées à la requête (voirDialogStateIn
).
- Le champ
Démarrez l'enregistrement.
Envoyer plusieurs
AssistRequest
sortants des messages avec des données audio issues de la requête vocale dans le champaudio_in
.Gérer les
AssistResponse
entrants messages.Extraire les métadonnées de conversation à partir du
AssistResponse
. Par exemple, à partir dedialog_state_out
, obtenez leconversation_state
etvolume_percentage
(voirDialogStateOut
).Arrêter l'enregistrement lors de la réception d'un
AssistResponse
avec unevent_type
surEND_OF_UTTERANCE
.Lire l'audio de la réponse de l'Assistant avec les données audio provenant de
audio_out
.Prenez le
conversation_state
que vous avez extrait précédemment et copiez-le dans leDialogStateIn
dans leAssistConfig
pour lesAssistRequest
suivants.
Vous serez ainsi en mesure d'envoyer vos premières demandes au via votre appareil.
Étendre une boîte de dialogue de conversation avec les actions sur l'appareil
Étendre la boîte de dialogue de conversation de base ci-dessus pour déclencher le matériel unique de votre appareil:
- Dans les
AssistResponse
entrants , extrayez le champdevice_action
(consultezDeviceAction
). - Analysez la charge utile JSON du champ
device_request_json
. Consultez le la page Caractéristiques de l'appareil de liste des caractéristiques prises en charge. Chaque page du schéma de caractéristique montre un exemple d'EXECUTE requête avec les commandes et paramètres d'appareil renvoyés dans le JSON.
Obtenir la transcription de la requête de l'utilisateur
Si un écran est connecté à l'appareil, vous pouvez l'utiliser pour
afficher la requête de l'utilisateur. Pour obtenir cette transcription, analysez le champ speech_results
.
dans le AssistResponse
messages. Une fois la reconnaissance vocale terminée, cette liste contient un élément
avec un stability
défini sur 1.0.
Obtenir le rendu textuel et/ou visuel de la réponse de l'Assistant
Si un écran est connecté à l'appareil, vous pouvez l'utiliser pour
afficher la réponse de l'Assistant en texte brut à la demande de l'utilisateur. Ce texte se trouve
dans la DialogStateOut.supplemental_display_text
.
L'Assistant accepte les réponses visuelles via HTML5 pour certaines requêtes (Quel
quel temps fait-il à Mountain View ? ou Quelle heure est-il ?). Pour l'activer, définissez
le champ screen_out_config
dans AssistConfig
.
ScreenOutConfig
message comporte le champ screen_mode
qui doit être défini sur PLAYING
.
AssistResponse
le champ screen_out
sera alors défini. Vous pouvez extraire les données HTML5 (le cas échéant) du fichier
data
.
Envoyer des requêtes via la saisie de texte
Si une interface de texte (par exemple, un clavier)
est connectée à l'appareil,
définissez le champ text_query
dans le champ config
(voir AssistConfig
).
Ne définissez pas le champ audio_in_config
.
Dépannage
Consultez la section Dépannage. en cas de problème.