Integrar o Assistente ao seu projeto (outros idiomas)

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

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:

  1. 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
    
  2. Instale a ferramenta de autorização:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. 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:

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

  1. Implementar um cliente gRPC de streaming bidirecional. para a API Google Assistant Service.
  2. Aguardar o usuário acionar uma nova solicitação (por exemplo, aguardar uma interrupção de GPIO) ao pressionar um botão).
  3. Enviar AssistRequest com o campo config definido (consulte AssistConfig). Verifique se o campo config contém o seguinte:

    • O campo audio_in_config, que especifica como processar a audio_in de dados que serão fornecidos nas solicitações subsequentes Consulte AudioInConfig.
    • O campo audio_out_config, que especifica o formato desejado para o servidor a ser usado quando retornar mensagens audio_out (consulte AudioOutConfig).
    • O campo device_config, que identifica dispositivo registrado ao Google Assistente (consulte DeviceConfig).
    • O campo dialog_state_in, que contém o language_code associada à solicitação (consulte DialogStateIn).
  4. Iniciar gravação.

  5. Enviar várias AssistRequest de saída mensagens com dados de áudio da consulta falada no campo audio_in.

  6. Processar AssistResponse de entrada e envio de mensagens.

  7. Extrair metadados da conversa do AssistResponse mensagem. Por exemplo, em dialog_state_out, acesse o conversation_state e volume_percentage (consulte DialogStateOut).

  8. Parar de gravar ao receber uma AssistResponse com uma event_type de END_OF_UTTERANCE.

  9. Tocar áudio da resposta do Google Assistente com dados de áudio da audio_out .

  10. Copie o conversation_state extraído anteriormente no DialogStateIn no espaço AssistConfig da próxima AssistRequest.

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:

  1. Na entrada AssistResponse mensagens, extraia o campo device_action (consulte DeviceAction).
  2. 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.