Integra l'assistente nel tuo progetto (altre lingue)

Segui le istruzioni riportate in ogni sezione di seguito per integrare l'Assistente Google nel tuo progetto.

Associazioni gRPC

Il servizio dell'Assistente Google si basa su gRPC, un framework RPC open source ad alte prestazioni. Questo framework è adatto allo streaming audio bidirezionale.

Python

Se usi Python, inizia a consultare questa guida.

C++

Dai un'occhiata al nostro esempio di C++ su GitHub.

Node.js

Dai un'occhiata al nostro esempio Node.js su GitHub.

Android Things

Ti interessano i dispositivi incorporati? Dai un'occhiata all'esempio dell'SDK dell'assistente per Android Things.

Altre lingue

Autorizzare e autenticare il tuo Account Google per collaborare con l'assistente

Il passaggio successivo consiste nell'autorizzare il dispositivo a parlare con l'Assistente Google utilizzando il tuo Account Google.

Ottenere i token OAuth con l'ambito dell'SDK Assistant

L'SDK dell'assistente utilizza i token di accesso OAuth 2.0 per autorizzare il dispositivo a connettersi all'assistente.

Durante la prototipazione, puoi utilizzare lo strumento di autorizzazione per generare facilmente le credenziali OAuth2.0 dal file client_secret_<client-id>.json generato durante la registrazione del modello di dispositivo.

Per generare le credenziali, procedi nel seguente modo:

  1. Utilizza un ambiente virtuale Python per isolare lo strumento di autorizzazione e le sue dipendenze dai pacchetti Python di sistema.

    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. Installa lo strumento di autorizzazione:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Esegui lo strumento. Rimuovi il flag --headless se esegui questa operazione da un terminale sul dispositivo (non da una sessione SSH):

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

Quando vuoi integrare l'autorizzazione nell'ambito del meccanismo di provisioning del dispositivo, leggi le nostre guide sull'utilizzo di OAuth 2.0 per accedere alle API di Google per informazioni su come ottenere, mantenere e utilizzare i token di accesso OAuth per consentire al tuo dispositivo di comunicare con l'API Assistant.

Quando analizzi queste guide, attieniti alle indicazioni seguenti:

Consulta le best practice su privacy e sicurezza per consigli su come proteggere il tuo dispositivo.

Autentica la connessione gRPC con i token OAuth

Infine, riunisci tutti i componenti leggendo come utilizzare l'autenticazione basata su token con Google per autenticare la connessione gRPC all'API Assistant.

Registra il tuo dispositivo

Registra il modello di dispositivo e l'istanza manualmente o con lo strumento di registrazione (disponibile in Python).

Implementa una finestra di dialogo di conversazione di base con l'assistente

  1. Implementa un client gRPC per lo streaming bidirezionale per l'API del servizio dell'Assistente Google.
  2. Attendi che l'utente attivi una nuova richiesta (ad esempio, attendi un'interruzione GPIO dalla pressione di un pulsante).
  3. Invia un messaggio AssistRequest con il campo config impostato (vedi AssistConfig). Assicurati che il campo config contenga quanto segue:

    • Il campo audio_in_config, che specifica come elaborare i dati audio_in che verranno forniti nelle richieste successive (vedi AudioInConfig).
    • Il campo audio_out_config, che specifica il formato che il server deve utilizzare quando restituisce i messaggi audio_out (vedi AudioOutConfig).
    • Il campo device_config, che identifica il dispositivo registrato per l'assistente (vedi DeviceConfig).
    • Il campo dialog_state_in, che contiene il codice language_code associato alla richiesta (vedi DialogStateIn).
  4. Avvia la registrazione.

  5. Invia più messaggi AssistRequest in uscita con dati audio della query vocale nel campo audio_in.

  6. Gestire i messaggi AssistResponse in arrivo.

  7. Estrarre i metadati della conversazione dal messaggio AssistResponse. Ad esempio, da dialog_state_out, ottieni conversation_state e volume_percentage (vedi DialogStateOut).

  8. Interrompi la registrazione quando ricevi un AssistResponse con event_type di END_OF_UTTERANCE.

  9. Riproduci l'audio dalla risposta dell'assistente con i dati audio provenienti dal campo audio_out.

  10. Prendi il conversation_state che hai estratto in precedenza e copialo nel messaggio DialogStateIn della AssistConfig per il prossimo AssistRequest.

In questo modo, dovresti essere in grado di inviare le tue prime richieste all'Assistente Google tramite il tuo dispositivo.

Estendi la finestra di dialogo di una conversazione con Azioni dispositivo

Estendi la finestra di dialogo della conversazione di base in alto per attivare le funzionalità hardware univoche del tuo dispositivo specifico:

  1. Nei messaggi AssistResponse in arrivo, estrai il campo device_action (vedi DeviceAction).
  2. Analizza il payload JSON del campo device_request_json. Consulta la pagina Trait dei dispositivi per consultare l'elenco dei trait supportati. Ogni pagina dello schema dei trait mostra una richiesta EXECUTE di esempio con i comandi del dispositivo e i parametri che vengono restituiti nel payload JSON.

Ottieni la trascrizione della richiesta dell'utente

Se hai un display collegato al dispositivo, potresti utilizzarlo per mostrare la richiesta dell'utente. Per ottenere questa trascrizione, analizza il campo speech_results nei messaggi AssistResponse. Al termine del riconoscimento vocale, questo elenco conterrà un elemento con stability impostato su 1.0.

Ricevere il rendering del testo e/o visivo della risposta dell'assistente

Se hai un display collegato al dispositivo, potresti usarlo per mostrare la risposta in testo normale dell'assistente alla richiesta dell'utente. Questo testo si trova nel campo DialogStateOut.supplemental_display_text.

L'assistente supporta risposte visive tramite HTML5 per determinate query (Che tempo fa a Mountain View? o Che ore sono?). Per abilitare questa funzionalità, imposta il campo screen_out_config in AssistConfig. Il messaggio ScreenOutConfig ha il campo screen_mode che deve essere impostato su PLAYING.

Per i messaggi AssistResponse verrà impostato il campo screen_out. Puoi estrarre i dati HTML5 (se presenti) dal campo data.

Invio di query tramite immissione di testo

Se al dispositivo è collegata un'interfaccia di testo (ad esempio una tastiera), imposta il campo text_query nel campo config (vedi AssistConfig). Non impostare il campo audio_in_config.

Risolvere i problemi

In caso di problemi, consulta la pagina Risoluzione dei problemi.