Segui le istruzioni 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 delle prestazioni, framework RPC open source. Questo framework è adatto a streaming audio bidirezionale.
Python
Se utilizzi Python, inizia a utilizzare questa guida.
C++
Dai un'occhiata al nostro esempio di C++ su GitHub.
Node.js
Dai un'occhiata al nostro esempio di Node.js su GitHub.
Android Things
Ti interessano i dispositivi incorporati? Dai un'occhiata all'SDK Assistant sample 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 di gRPC per generare gRPC associazioni per la lingua che preferisci
- Segui la procedura descritta nelle sezioni seguenti.
Autorizza e autentica il tuo Account Google per collaborare con l'assistente
Il passaggio successivo consiste nell'autorizzare il dispositivo a parlare con l'Assistente Google usando il tuo Account Google.
Ottenere i token OAuth con l'ambito dell'SDK dell'assistente
L'SDK Assistant utilizza i token di accesso OAuth 2.0 per autorizzare il dispositivo a: connettiti con l'assistente.
Durante la prototipazione, puoi utilizzare lo strumento di autorizzazione per generare facilmente OAuth2.0
credenziali del file client_secret_<client-id>.json
generato
registrando il modello del tuo 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 lo esegui da un terminale sul dispositivo (non 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 tutto è pronto per integrare l'autorizzazione come parte del processo di provisioning meccanismo di attenzione del dispositivo, leggi le nostre guide per l'utilizzo di OAuth 2.0 per accedere alle API di Google per capire come ottenere, mantenere e utilizzare i token di accesso OAuth dispositivo per parlare con l'API Assistant.
Durante la consultazione di queste guide, utilizza i seguenti elementi:
- 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, metti insieme tutte le parti leggendo le istruzioni su come utilizzare l'autenticazione con Google per di autenticare la connessione gRPC all'API Assistant.
Registra il tuo dispositivo
Registra il modello e l'istanza del dispositivo manualmente. o con lo strumento di registrazione (disponibile in Python).
Implementa una finestra di dialogo di conversazione di base con l'assistente
- Implementare un client gRPC per flussi bidirezionali per l'API Google Assistant Service.
- Attendi che l'utente attivi una nuova richiesta (ad es. attendi un interruzione GPIO dalla pressione di un pulsante).
Invia un
AssistRequest
con il campoconfig
impostato (vediAssistConfig
). Assicurati che il campoconfig
contenga quanto segue:- Il campo
audio_in_config
, che specifica come elaborare Dati diaudio_in
che verranno forniti nelle richieste successive (vediAudioInConfig
). - Il campo
audio_out_config
, che specifica il formato desiderato per l'elemento server da utilizzare quando restituisce i messaggiaudio_out
(vediAudioOutConfig
). - Il campo
device_config
, che identifica dispositivo registrato per l'assistente (vediDeviceConfig
). - Il campo
dialog_state_in
, che contienelanguage_code
associati alla richiesta (vediDialogStateIn
).
- Il campo
Avvia la registrazione.
Inviare più
AssistRequest
in uscita messaggi con dati audio della query vocale nel campoaudio_in
.Gestisci in arrivo
AssistResponse
messaggi.Estrai i metadati della conversazione dalla
AssistResponse
. Ad esempio, dadialog_state_out
, recupera ilconversation_state
evolume_percentage
(vediDialogStateOut
).Interrompere la registrazione quando si riceve una
AssistResponse
conevent_type
diEND_OF_UTTERANCE
.Riproduci l'audio della risposta dell'assistente con dati audio provenienti da
audio_out
.Copia il
conversation_state
che hai estratto in precedenza inDialogStateIn
messaggio inAssistConfig
per il prossimoAssistRequest
.
A questo punto, dovresti essere pronto a effettuare le prime richieste al team Assistente tramite il tuo dispositivo.
Estendere una finestra di dialogo di conversazione con Azioni dispositivo
Estendi la finestra di dialogo della conversazione di base qui sopra per attivare l'hardware univoco funzionalità del tuo particolare dispositivo:
- Nella
AssistResponse
in arrivo messaggi, estrai il campodevice_action
(vediDeviceAction
). - Analizza il payload JSON del campo
device_request_json
. Consulta le Trait del dispositivo per di trait supportati. Ogni pagina dello schema dei trait mostra un esempio di EXECUTE con i comandi e i parametri device che vengono restituiti Payload JSON.
Ottieni la trascrizione della richiesta dell'utente
Se hai un display collegato al dispositivo, potresti volerlo usare per
mostrare la richiesta dell'utente. Per ottenere questa trascrizione, analizza il campo speech_results
in AssistResponse
messaggi. Al termine del riconoscimento vocale, l'elenco conterrà un elemento
con stability
impostato su 1,0.
Recupera il testo e/o il rendering visivo della risposta dell'assistente
Se hai un display collegato al dispositivo, potresti volerlo usare per
mostra la risposta in testo normale dell'assistente alla richiesta dell'utente. Questo testo si trova
in DialogStateOut.supplemental_display_text
.
L'assistente supporta le risposte visive tramite HTML5 per alcune query (Cosa
è il tempo a Mountain View? o Che ore sono?). Per attivare questa funzionalità, imposta
il campo screen_out_config
in AssistConfig
.
La ScreenOutConfig
il messaggio ha un campo screen_mode
che deve essere impostato su PLAYING
.
La AssistResponse
per i messaggi verrà impostato il campo screen_out
. Puoi estrarre i dati HTML5 (se presenti) dal
data
.
Invio di query tramite input di testo
Se hai collegato un'interfaccia di testo (ad esempio una tastiera) al dispositivo,
imposta il campo text_query
nel campo config
(vedi AssistConfig
).
Non impostare il campo audio_in_config
.
Risoluzione dei problemi
Consulta la sezione Risoluzione dei problemi. in caso di problemi.