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 updatesudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.python3 -m venv envenv/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activateInstale a ferramenta de autorização:
python -m pip install --upgrade google-auth-oauthlib[tool]
Execute a ferramenta. Remova a flag
--headlessse 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
AssistRequestcom o campoconfigdefinido (consulteAssistConfig). Verifique se o campoconfigcontém o seguinte:- O campo
audio_in_config, que especifica como processar aaudio_inde 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_codeassociada à solicitação (consulteDialogStateIn).
- O campo
Iniciar gravação.
Enviar várias
AssistRequestde saída mensagens com dados de áudio da consulta falada no campoaudio_in.Processar
AssistResponsede entrada e envio de mensagens.Extrair metadados da conversa do
AssistResponsemensagem. Por exemplo, emdialog_state_out, acesse oconversation_stateevolume_percentage(consulteDialogStateOut).Parar de gravar ao receber uma
AssistResponsecom umaevent_typedeEND_OF_UTTERANCE.Tocar áudio da resposta do Google Assistente com dados de áudio da
audio_out.Copie o
conversation_stateextraído anteriormente noDialogStateInno espaçoAssistConfigda 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
AssistResponsemensagens, 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.