Intégrer l'Assistant à votre projet (autres langages)

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:

  1. 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
    
  2. Installez l'outil d'autorisation:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. 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:

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

  1. Implémenter un client gRPC de streaming bidirectionnel pour l'API Google Assistant Service.
  2. Attendre que l'utilisateur déclenche une nouvelle requête (par exemple, une interruption GPIO) en appuyant sur un bouton).
  3. Envoyer un AssistRequest avec le champ config défini (voir AssistConfig). Assurez-vous que le champ config contient les éléments suivants:

    • Le champ audio_in_config, qui indique comment traiter le Données audio_in qui seront fournies dans les demandes ultérieures (voir AudioInConfig).
    • Le champ audio_out_config, qui spécifie le format souhaité pour le serveur à utiliser lorsqu'il renvoie des messages audio_out (voir AudioOutConfig).
    • Le champ device_config, qui identifie le enregistré dans l'Assistant (voir DeviceConfig).
    • Le champ dialog_state_in, qui contient le champ language_code associées à la requête (voir DialogStateIn).
  4. Démarrez l'enregistrement.

  5. Envoyer plusieurs AssistRequest sortants des messages avec des données audio issues de la requête vocale dans le champ audio_in.

  6. Gérer les AssistResponse entrants messages.

  7. Extraire les métadonnées de conversation à partir du AssistResponse . Par exemple, à partir de dialog_state_out, obtenez le conversation_state et volume_percentage (voir DialogStateOut).

  8. Arrêter l'enregistrement lors de la réception d'un AssistResponse avec un event_type sur END_OF_UTTERANCE.

  9. Lire l'audio de la réponse de l'Assistant avec les données audio provenant de audio_out .

  10. Prenez le conversation_state que vous avez extrait précédemment et copiez-le dans le DialogStateIn dans le AssistConfig pour les AssistRequest 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:

  1. Dans les AssistResponse entrants , extrayez le champ device_action (consultez DeviceAction).
  2. 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.