Suivez les instructions de chaque section ci-dessous pour intégrer l'Assistant Google à votre projet.
Liaisons gRPC
Le service de l'Assistant Google repose sur gRPC, un framework RPC Open Source hautes performances. Ce framework est adapté au 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 embarqués ? Consultez l'exemple de SDK Assistant pour Android Things.
Autres langues
- Clonez le dépôt googleapis pour obtenir les définitions de l'interface de tampon de protocole de l'API Google Assistant Service.
- Suivez la documentation gRPC pour générer des liaisons gRPC pour le langage de votre choix.
- Suivez la procédure décrite dans les sections ci-dessous.
Autorisez et authentifiez votre compte Google pour qu'il fonctionne avec l'Assistant.
L'étape suivante consiste à autoriser votre appareil à parler à l'Assistant Google à l'aide de votre compte Google.
Obtenir des jetons OAuth avec le champ d'application du SDK de l'Assistant
Le SDK de l'Assistant utilise des jetons d'accès OAuth 2.0 pour autoriser votre appareil à se connecter à l'Assistant.
Lors du prototypage, vous pouvez utiliser l'outil d'autorisation pour générer facilement des identifiants OAuth2.0 à partir du fichier client_secret_<client-id>.json
généré lors de l'enregistrement du modèle de votre appareil.
Procédez comme suit pour générer les identifiants:
Utilisez un environnement virtuel Python pour isoler l'outil d'autorisation et ses dépendances des packages Python 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 l'exécutez depuis un terminal de l'appareil (et non 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 mécanisme de provisionnement de votre appareil, lisez nos guides sur l'utilisation d'OAuth 2.0 pour accéder aux API Google afin de comprendre comment obtenir, conserver et utiliser des jetons d'accès OAuth pour permettre à votre appareil de communiquer avec l'API Assistant.
Utilisez les éléments suivants 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 en matière de confidentialité et de sécurité pour obtenir des recommandations sur la sécurisation de votre appareil.
Authentifier votre connexion gRPC avec des jetons OAuth
Enfin, réunissez tous les éléments en lisant comment utiliser l'authentification basée sur des jetons avec Google pour authentifier la connexion gRPC à l'API Assistant.
Enregistrer votre appareil
Enregistrez le modèle et l'instance de votre appareil manuellement ou à l'aide de l'outil d'enregistrement (disponible en Python).
Implémenter une boîte de dialogue de conversation de base avec l'Assistant
- Mettez en œuvre un client gRPC de streaming bidirectionnel pour l'API Google Assistant Service.
- Attendez que l'utilisateur déclenche une nouvelle requête (par exemple, attendez une interruption GPIO suite à une pression sur un bouton).
Envoyez un message
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 les donnéesaudio_in
qui seront fournies dans les requêtes ultérieures (voirAudioInConfig
). - Le champ
audio_out_config
, qui spécifie le format que le serveur doit utiliser lorsqu'il renvoie des messagesaudio_out
(voirAudioOutConfig
). - Le champ
device_config
, qui identifie l'appareil enregistré auprès de l'Assistant (voirDeviceConfig
) - Le champ
dialog_state_in
, qui contient l'identifiantlanguage_code
associé à la requête (voirDialogStateIn
)
- Le champ
Démarrez l'enregistrement.
Envoyez plusieurs messages
AssistRequest
sortants contenant les données audio de la requête vocale dans le champaudio_in
.Gérer les messages
AssistResponse
entrants.Extraire les métadonnées de conversation du message
AssistResponse
Par exemple, à partir dedialog_state_out
, obtenezconversation_state
etvolume_percentage
(voirDialogStateOut
).Arrêtez l'enregistrement lors de la réception d'un
AssistResponse
avec unevent_type
défini surEND_OF_UTTERANCE
.Lire le contenu audio de la réponse de l'Assistant avec les données audio provenant du champ
audio_out
Prenez le
conversation_state
que vous avez extrait précédemment et copiez-le dans le messageDialogStateIn
duAssistConfig
pour leAssistRequest
suivant.
Vous devriez alors être prêt à envoyer vos premières requêtes à l'Assistant Google via votre appareil.
Étendre une boîte de dialogue de conversation avec les actions sur l'appareil
Développez la boîte de dialogue de conversation de base ci-dessus pour déclencher les fonctionnalités matérielles uniques de votre appareil:
- Dans les messages
AssistResponse
entrants, extrayez le champdevice_action
(voirDeviceAction
). - Analyser la charge utile JSON du champ
device_request_json
. Reportez-vous à la page Caractéristiques de l'appareil pour obtenir la liste des caractéristiques prises en charge. Chaque page du schéma de trait affiche un exemple de requête EXECUTE avec la ou les commandes d'appareil et les paramètres renvoyés dans la charge utile 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 les messages AssistResponse
. Une fois la reconnaissance vocale terminée, cette liste contient un élément dont la valeur stability
est définie 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 requête de l'utilisateur. Ce texte se trouve dans le champ DialogStateOut.supplemental_display_text
.
L'Assistant accepte des réponses visuelles via HTML5 pour certaines requêtes (Quel temps fait-il à Mountain View ? ou Quelle heure est-il ?). Pour l'activer, définissez le champ screen_out_config
dans AssistConfig
.
Le message ScreenOutConfig
contient un champ screen_mode
qui doit être défini sur PLAYING
.
Le champ screen_out
sera alors défini pour les messages AssistResponse
. Vous pouvez extraire les données HTML5 (le cas échéant) du champ data
.
Envoyer des requêtes via la saisie de texte
Si une interface de texte (un clavier, par exemple) 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
Si vous rencontrez des problèmes, consultez la page Dépannage.