Participe do Call for Code Global Challenge! | O prazo termina em 31 de Julho Comece agora

Crie um robô de bate-papo de comunicação de crise e conecte-o às notícias e fontes de dados da COVID-19

Em tempos de crise, os robôs de bate-papo podem ajudar as pessoas a encontrar rapidamente as respostas que precisam para perguntas críticas. No caso de uma pandemia como a COVID-19, as pessoas podem estar tentando encontrar informações básicas sobre teste, sintomas, resposta da comunidade e outros recursos.

Este tutorial mostra como criar um robô de bate-papo de comunicação de crise usando o IBM® Watson™ Assistant e como incluir webhooks do Watson Assistant para consultar dados dinâmicos usando APIs do Watson Discovery e da COVID-19.”

Objetivos do aprendizado

Neste tutorial, você vai:

  • Provisionar uma instância do Watson Assistant
  • Incluir uma aptidão de diálogo na instância do Watson Assistant
  • Conectar o Watson Assistant ao Watson Discovery
  • Criar o Cloud Functions
  • Integrar as fontes de dados por meio de um webhook do Watson Assistant

Pré-requisito

Registre-se para obter uma conta do IBM Cloud.

Tempo estimado

Este tutorial leva cerca de 40 minutos para ser concluído.

Crie o robô de bate-papo configurando uma instância do Watson Assistant

Mostramos como criar um robô de bate-papo usando o Watson Assistant, uma ferramenta que permite criar interfaces de conversação em qualquer aplicativo, dispositivo ou canal.

  1. No catálogo do IBM Cloud, navegue até Serviços e provisione uma instância do Watson Assistant.

    Catálogo do Watson Assistant, todas as categorias

  2. Inicie o serviço Watson Assistant.

  3. Clique em Create assistant e siga essas instruções detalhadas de como criar um assistente.

    Tela assistants, com botão para criação de assistants

  4. Nomeie a instância do Watson Assistance como COVID Crisis Communication.

    Caixa de diálogo para input do nome, com o enable preview link selecionado

  5. Clique em Add dialog skill para o assistente. Siga a documentação se você tiver dúvidas.

    Tela onde o desenvolvedor deverá adicionar um dialog skill

  6. Clique em Import Skill > Choose JSON file e importe o arquivo Covid Json.

    Aba para importar um skill

  7. Retorne à página Todos os assistentes. No menu de ação ( ), abra Settings.

    Página todos os assistentes, selecionar settings a partir do menu de integrações

  8. Na guia Configurações, clique em API Details localizado à esquerda e anote o Assistant ID e a API Key para uso futuro.

    Configurações do assistant, e caixas de detalhes do API

  9. Retorne à página Todos os assistentes e clique no link Skills.

    Tela assistants, com o link Skills a ser ativado

  10. Na página Aptidões, clique no menu de ações ( ⋮ ) e abra View API Details.

    Página de Skills e menu de ações, View API details selecionado

  11. Na página Detalhes da aptidão, anote o ID da Aptidão para uso futuro.

    Página detalhes de skills, e o skill ID

  12. Retorne à aptidão do diálogo e clique no botão Preview Link ao lado para obter um link para testar e verificar o assistente.

    Página com o preview link gerado

  13. Faça algumas perguntas ao robô de bate-papo do Watson Assistant sobre a COVID-19.

    Tela do IBM Watson Assistant, com o texto de apresentação do Bot

Integre o robô de bate-papo às fontes de dados

Agora que você já criou o robô de bate-papo ativado para o Watson Assistant, é necessário conectá-lo a uma fonte dos dados. A seção a seguir mostra como fazer isso incluindo webhooks que consultam dados dinâmicos ao Watson Assistant.

Nosso robô de bate-papo de comunicação de crise usa três fontes de dados diferentes:

Definindo webhooks

Primeiro, vamos analisar o que os webhooks fazem. Um webhook é um mecanismo que permite chamar um programa externo com base em algo que esteja ocorrendo no seu programa. Quando usado em uma aptidão de diálogo, um webhook é acionado quando o assistente processa um nó que tem um webhook ativado. O webhook coleta os dados que você especifica ou coleta do usuário durante a conversa e salva em variáveis de contexto.

Ele envia os dados como parte de uma solicitação de HTTP POST à URL que você especifica como parte da definição do webhook. A URL que recebe o webhook é o listener. Ele executa uma ação predefinida usando as informações que você transmite, conforme a especificação nas definições do webhook, como opção, pode retornar uma resposta.

Use o Watson Discovery para obter informações de notícias

  1. Na conta do IBM Cloud, acesse o Watson Discovery.

    Abaixo de Services, caixa do Discovery selecionada

  2. Crie um novo serviço lite clicando em Create.

    Tela Discovery e o botão Create a ser selecionado

  3. Anote a Chave de API e a URL. Você precisa dessas informações nas próximas etapas.

    Tela com a chave da API e a URL. Anote-as

  4. Abra o serviço NEWS do Watson Discovery, que é um conjunto de dados de descoberta já preenchido, atualizado e mantido pela equipe do Watson Discovery.

    Tela de gerenciamento de dados, com a caixa de News do Watson Discovery

  5. No canto superior direito, abra a guia API. Anote o ID da coleção e o ID do ambiente.

    Guia da API expandida, com o ID da coleção e o ID do ambiente

Obtenha uma Chave de API da Weather Company

É necessária uma Chave de API para usar a API da The Weather Company para o rastreamento da doença COVID-19. Os participantes do Call for Code podem ler os Termos de Serviço e registrar-se para participar do Desafio da COVID do Call for Code 2020 e solicitar uma Chave de API da TWC.

  1. Acesse https://callforcode.weather.com/register/

  2. Inscreva-se para obter uma Chave de API com suas informações. Sua Chave de API será enviada a você por email.

  3. Salve a Chave de API para uso futuro.

Crie o Cloud Functions

  1. No catálogo do IBM Cloud, acesse IBM Cloud Functions.

  2. Clique em Iniciar criação.

    Tela IBM Cloud functions, e o botão Start creating a ser clicado

  3. Selecione Create Action.

    Entre as opções da página, selecionar Create Action

  4. Nomeie a ação. No menu suspenso Tempo de execução, selecione Node.js 10.

    Caixas de texto e menu suspenso

  5. Substitua o código por action/covid-webhook.js

    A direita na página, caixa de texto, com o código a ser substituído

  6. Nosso código tem duas partes principais. Decidimos chamar a API da COVID-19 ou o Watson Discovery com base em um parâmetro enviado na chamada de função. Se um parâmetro de consulta type=api estiver configurado, chame a API da COVID-19 no terminal de resumo.

    Ele retorna os dados no seguinte formato:

     {
       Countries: [
         {
           Country: "",
           Slug: "",
           NewConfirmed: 0,
           TotalConfirmed: 0,
           NewDeaths: 0,
           TotalDeaths: 0,
           NewRecovered: 0,
           TotalRecovered: 0
         },
         {
           Country: " Azerbaijan",
           Slug: "-azerbaijan",
           NewConfirmed: 0,
           TotalConfirmed: 0,
           NewDeaths: 0,
           TotalDeaths: 0,
           NewRecovered: 0,
           TotalRecovered: 0
         },
         ...
       ]
     }
    
  7. Se houver uma localização específica (país/código de país/estado dos EUA) selecionada, procure essa localização usando a API da The Weather Company ou na resposta de resumo e retorne o status desse local.

    Por exemplo, a resposta para type=api e location=United States of America é mostrada abaixo.

     {
       "result": "Total Cases: 65778\nTotal Deaths: 942\nTotal Recovered: 361\n\nSource: Johns Hopkins CSSE"
     }
    
  8. Se você desejar fazer uma chamada para o serviço Discovery, será necessário configurar alguns parâmetros que permitam chamar o serviço ativado para IAM. À esquerda, clique na guia Parameters. Inclua os parâmetros a seguir:

    • api_key(Chave de API do Discovery)
    • twcApiKey (Chave de API da The Weather Company)
    • url (URL da instância do serviço Discovery)
    • collection_id
    • env_id

      Caixa de parâmetros com nomes a esquerda e valores a direita

  9. Ativar a ação como uma ação da web. Para fazer isso, selecione a guia Endpoints à esquerda. Clique na caixa de seleção ao lado de Enable as Web Action.

    Menu a esquerda, com Endpoints selecionado, e as ações web a direita na página

  10. Anote a URL HTTP. Você usará essa URL como o webhook do assistente. Será necessário incluir .json no final dessa URL para que ela funcione como um webhook.

    Destaque para a URL HTTP

Integre as fontes de dados por meio de um webhook do Watson Assistant

Para obter instruções detalhadas de como integrar fontes de dados por meio de um webhook, confira nossa documentação: Fazendo chamadas programáticas do Watson Assistant.

Aqui estão as etapas específicas para incluir um webhook no robô de bate-papo da COVID-19.

  1. Ative o assistente da COVID-19 que você já havia criado. Encontre-o em sua conta do IBM Cloud, em Serviços > IBM Watson Assistant. Abra o diálogo clicando em CDC COVID FAQ.

    Caixa de diálogo aberta

  2. Clique em Options à esquerda.

    Menu a esquerda, Options selecionado

  3. Em Opções > Webhooks, na caixa de texto de URL, cole a URL da etapa do Cloud Function. Inclua um .json no final da URL.

    Menu a esquerda, Webhooks selecionado

  4. Selecione Dialog na navegação à esquerda.

    Menu a esquerda, Dialog selecionado

  5. Abra qualquer nó de diálogo para o qual deseja incluir uma chamada de webhook.

  6. Depois de selecionar o nó, clique em Customize.

    Link Customize selecionado

  7. Ative seus webhooks movendo o botão de alternância para On na seção Webhooks. Clique em Salvar.

    Botão de On e Off, mover para On

  8. Inclua todos os parâmetros necessários para o webhook. Eles serão enviados como parâmetros de consulta.

    Caixas com parâmetros

  9. Teste se a integração do webhook está funcionando acessando a guia Try It e iniciando um diálogo que chame o webhook.

    Iniciar teste de diálogo na aba Try it out

É possível usar facilmente os webhooks para fornecer acesso ao Watson Assistant a várias APIs e bancos de dados externos.

Próximas etapas

Agora que você já sabe como criar um robô de bate-papo da COVID-19 e conectá-lo ao Watson Discovery e à API da COVID-19, há alguns caminhos de integração diferentes que são possíveis de seguir. Os tutoriais a seguir mostram como integrar esse robô de bate-papo ao Slack, a um aplicativo da web simples ou a um painel do Node-RED.

Assuma a COVID-19

Agora você sabe como criar um robô de bate-papo usando o Watson Assistant e conectá-lo às fontes de dados da API do Discovery e da COVID-19, que fornecem informações oportunas sobre essa pandemia. Agora é sua vez de usar essas tecnologias para ajudar a combater a pandemia e fazer a diferença aceitando o desafio da COVID-19!

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.