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 - --headlesssi 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 - AssistRequestavec le champ- configdéfini (voir- AssistConfig). Assurez-vous que le champ- configcontient les éléments suivants:- Le champ audio_in_config, qui indique comment traiter le Donnéesaudio_inqui 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_codeassociées à la requête (voirDialogStateIn).
 
- Le champ 
- Démarrez l'enregistrement. 
- Envoyer plusieurs - AssistRequestsortants des messages avec des données audio issues de la requête vocale dans le champ- audio_in.
- Gérer les - AssistResponseentrants messages.
- Extraire les métadonnées de conversation à partir du - AssistResponse. Par exemple, à partir de- dialog_state_out, obtenez le- conversation_stateet- volume_percentage(voir- DialogStateOut).
- Arrêter l'enregistrement lors de la réception d'un - AssistResponseavec un- event_typesur- END_OF_UTTERANCE.
- Lire l'audio de la réponse de l'Assistant avec les données audio provenant de - audio_out.
- Prenez le - conversation_stateque vous avez extrait précédemment et copiez-le dans le- DialogStateIndans le- AssistConfigpour les- AssistRequestsuivants.
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 AssistResponseentrants , 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.
