Siga as instruções em cada seção abaixo para integrar o Google Assistente em seu projeto.
Vinculações gRPC
O serviço do Google Assistente é baseado no gRPC, uma um framework de RPC de código aberto e alto desempenho. Essa estrutura é adequada para streaming de áudio bidirecional.
Python
Se você estiver usando Python, comece com este guia.
C++
Confira nosso exemplo de C++ no GitHub.
Node.js
Confira nosso exemplo de Node.js. no GitHub.
Android Things
Interessado em dispositivos incorporados? Conferir o SDK do Assistente sample para Android Things (em inglês).
Outros idiomas
- clonar o repositório googleapis; para saber as definições de interface do buffer de protocolo da API Google Assistant Service.
- Siga a documentação do gRPC para gerar o gRPC. vinculações para a linguagem de sua escolha
- Siga as etapas nas seções abaixo.
Autorizar e autenticar sua Conta do Google para funcionar com o Assistente
A próxima etapa é autorizar seu dispositivo a se comunicar com o Google Assistente usando sua Conta do Google.
Receber tokens OAuth com o escopo do SDK do Assistente
O SDK do Assistente usa tokens de acesso do OAuth 2.0 para autorizar seu dispositivo a conectar com o Google Assistente.
Durante a prototipagem, você pode usar a ferramenta de autorização para gerar facilmente o OAuth2.0
credenciais do arquivo client_secret_<client-id>.json
geradas quando
registrando o modelo do seu dispositivo.
Faça o seguinte para gerar as credenciais:
Usar um ambiente virtual do Python para isolar a ferramenta de autorização e suas dependências dos pacotes Python do 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
Instale a ferramenta de autorização:
python -m pip install --upgrade google-auth-oauthlib[tool]
Execute a ferramenta. Remova a flag
--headless
se você estiver executando o comando em um terminal no dispositivo (não em uma sessão 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 estiver tudo pronto para integrar a autorização como parte do provisionamento mecanismo do seu dispositivo, leia nossos guias sobre Como usar o OAuth 2.0 para acessar as APIs do Google para entender como obter, persistir e usar tokens de acesso OAuth para permitir que seus para se comunicar com a API Assistant.
Use o seguinte ao trabalhar com esses guias:
- Escopo do OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
Fluxos do OAuth com suporte:
- (Recomendado) Apps instalados
- Aplicativos do servidor da Web
Confira as práticas recomendadas sobre privacidade e segurança. para ver recomendações sobre como proteger seu dispositivo.
Autenticar a conexão gRPC com tokens OAuth
Por fim, junte todas as partes lendo como usar a autenticação baseada em token a autenticação com o Google para autenticar a conexão gRPC com a API Assistant.
Registrar o dispositivo
Registre o modelo e a instância do dispositivo manualmente ou com a ferramenta de registro (disponível em Python).
Implementar uma caixa de diálogo de conversa básica com o Google Assistente
- Implementar um cliente gRPC de streaming bidirecional. para a API Google Assistant Service.
- Aguardar o usuário acionar uma nova solicitação (por exemplo, aguardar uma interrupção de GPIO) ao pressionar um botão).
Enviar
AssistRequest
com o campoconfig
definido (consulteAssistConfig
). Verifique se o campoconfig
contém o seguinte:- O campo
audio_in_config
, que especifica como processar aaudio_in
de dados que serão fornecidos nas solicitações subsequentes ConsulteAudioInConfig
. - O campo
audio_out_config
, que especifica o formato desejado para o servidor a ser usado quando retornar mensagensaudio_out
(consulteAudioOutConfig
). - O campo
device_config
, que identifica dispositivo registrado ao Google Assistente (consulteDeviceConfig
). - O campo
dialog_state_in
, que contém olanguage_code
associada à solicitação (consulteDialogStateIn
).
- O campo
Iniciar gravação.
Enviar várias
AssistRequest
de saída mensagens com dados de áudio da consulta falada no campoaudio_in
.Processar
AssistResponse
de entrada e envio de mensagens.Extrair metadados da conversa do
AssistResponse
mensagem. Por exemplo, emdialog_state_out
, acesse oconversation_state
evolume_percentage
(consulteDialogStateOut
).Parar de gravar ao receber uma
AssistResponse
com umaevent_type
deEND_OF_UTTERANCE
.Tocar áudio da resposta do Google Assistente com dados de áudio da
audio_out
.Copie o
conversation_state
extraído anteriormente noDialogStateIn
no espaçoAssistConfig
da próximaAssistRequest
.
Com isso, você estará pronto para fazer suas primeiras solicitações ao servidor o Google Assistente pelo seu dispositivo.
Estender uma caixa de diálogo de conversa com as Ações no dispositivo
Estender a caixa de diálogo de conversa básica acima para acionar o hardware exclusivo recursos específicos do seu dispositivo:
- Na entrada
AssistResponse
mensagens, extraia o campodevice_action
(consulteDeviceAction
). - Analise o payload JSON do campo
device_request_json
. Consulte a Características do dispositivo da lista de traços compatíveis. Cada página de esquema de características mostra um exemplo de EXECUÇÃO solicitação com os comandos e parâmetros de dispositivo que são retornados no Payload JSON.
Acessar a transcrição da solicitação do usuário
Se você tem uma tela conectada ao dispositivo, talvez queira usá-la para
mostrar a solicitação do usuário. Para acessar esta transcrição, analise o campo speech_results
no formato AssistResponse
e envio de mensagens. Quando o reconhecimento de fala for concluído, esta lista conterá um item.
com stability
definido como 1,0.
Acessar o texto e/ou a renderização visual da resposta do Google Assistente
Se você tem uma tela conectada ao dispositivo, talvez queira usá-la para
mostrar a resposta de texto simples do Assistente à solicitação do usuário. Este texto está localizado
em DialogStateOut.supplemental_display_text
.
O Assistente oferece suporte a respostas visuais via HTML5 para determinadas consultas (What)
está o clima em Mountain View? ou Que horas são?). Para ativar isso, defina
o campo screen_out_config
em AssistConfig
.
O ScreenOutConfig
A mensagem tem o campo screen_mode
, que deve ser definido como PLAYING
.
O AssistResponse
as mensagens terão o campo screen_out
definido. Você pode extrair os dados HTML5 (se houver) do
data
.
Como enviar consultas por entrada de texto
Se você tem uma interface de texto (por exemplo, um teclado) conectada ao dispositivo,
Defina o campo text_query
no campo config
(consulte AssistConfig
).
Não defina o campo audio_in_config
.
Solução de problemas
Consulte a Solução de problemas página se tiver problemas.