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
- Clona il repository googleapis per ottenere le definizioni dell'interfaccia del buffer di protocollo per l'API Google Assistant Service.
- Segui la documentazione gRPC per generare associazioni gRPC per il tuo linguaggio preferito
- Procedi come indicato nelle sezioni seguenti.
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:
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
Installa lo strumento di autorizzazione:
python -m pip install --upgrade google-auth-oauthlib[tool]
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:
- Ambito OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Flussi OAuth supportati:
- (Consigliato) App installate
- Applicazioni server web
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
- Implementa un client gRPC per lo streaming bidirezionale per l'API del servizio dell'Assistente Google.
- Attendi che l'utente attivi una nuova richiesta (ad esempio, attendi un'interruzione GPIO dalla pressione di un pulsante).
Invia un messaggio
AssistRequest
con il campoconfig
impostato (vediAssistConfig
). Assicurati che il campoconfig
contenga quanto segue:- Il campo
audio_in_config
, che specifica come elaborare i datiaudio_in
che verranno forniti nelle richieste successive (vediAudioInConfig
). - Il campo
audio_out_config
, che specifica il formato che il server deve utilizzare quando restituisce i messaggiaudio_out
(vediAudioOutConfig
). - Il campo
device_config
, che identifica il dispositivo registrato per l'assistente (vediDeviceConfig
). - Il campo
dialog_state_in
, che contiene il codicelanguage_code
associato alla richiesta (vediDialogStateIn
).
- Il campo
Avvia la registrazione.
Invia più messaggi
AssistRequest
in uscita con dati audio della query vocale nel campoaudio_in
.Gestire i messaggi
AssistResponse
in arrivo.Estrarre i metadati della conversazione dal messaggio
AssistResponse
. Ad esempio, dadialog_state_out
, ottieniconversation_state
evolume_percentage
(vediDialogStateOut
).Interrompi la registrazione quando ricevi un
AssistResponse
conevent_type
diEND_OF_UTTERANCE
.Riproduci l'audio dalla risposta dell'assistente con i dati audio provenienti dal campo
audio_out
.Prendi il
conversation_state
che hai estratto in precedenza e copialo nel messaggioDialogStateIn
dellaAssistConfig
per il prossimoAssistRequest
.
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:
- Nei messaggi
AssistResponse
in arrivo, estrai il campodevice_action
(vediDeviceAction
). - 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.