Agendar uma consulta - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Agendar uma consulta

O exemplo de bot neste exercício marca consultas em uma clínica odontológica. O exemplo também ilustra o uso de cartões de resposta para obter entradas do usuário com botões. Especificamente, o exemplo ilustra a geração dinâmica de cartões de resposta em runtime.

Você pode configurar cartões de resposta no momento da construção (também chamados de cartões de resposta estáticos) ou gerá-los dinamicamente em uma AWS Lambda função. Neste exemplo, o bot usa os seguintes cartões de resposta:

  • Um cartão de resposta que lista botões para o tipo de consulta. Para obter um exemplo, veja a imagem a seguir.

    Cartão de resposta solicitando o tipo de consulta a ser agendada e três opções: limpeza (30 minutos), canal radicular (60 minutos) e clareamento (90 minutos).
  • Um cartão de resposta que lista botões para a data de consulta. Para obter um exemplo, veja a imagem a seguir.

    Cartão de resposta perguntando a data para agendar a consulta e três opções: 2-15, 2-16 e 2-17.
  • Um cartão de resposta que lista botões para confirmar um horário de consulta sugerido. Para obter um exemplo, veja a imagem a seguir.

    Cartão de resposta solicitando a confirmação da hora e data da consulta com duas opções: sim e não.

As datas e os horários de consulta disponíveis variam, o que exige que você gere cartões de resposta em runtime. Você usa uma AWS Lambda função para gerar esses cartões de resposta dinamicamente. A função do Lambda retorna cartões de resposta em sua resposta a Amazon Lex. Amazon Lex inclui o cartão de resposta em sua resposta ao cliente.

Se um cliente (por exemplo, Facebook Messenger) oferecer suporte a cartões de resposta, o usuário poderá escolher na lista de botões ou digitar a resposta. Caso contrário, o usuário simplesmente digitará a resposta.

Além do botão mostrado no exemplo anterior, você também pode incluir imagens, anexos e outras informações úteis a serem exibidas nos cartões de resposta. Para obter mais informações sobre cartões de resposta, consulte Cartões de resposta.

Neste exercício, você faz o seguinte:

  • Crie e teste um bot (usando o ScheduleAppointment blueprint). Para este exercício, você usará um esquema de bot para configurar e testar o bot rapidamente. Para obter uma lista de esquemas disponíveis, consulte Amazon Lex e esquemas AWS Lambda.Este bot está pré-configurado com uma intenção (MakeAppointment).

     

  • Crie e teste uma função Lambda (usando o lex-make-appointment-python esquema fornecido pelo Lambda). Configure a intenção MakeAppointment para usar essa função do Lambda como um hook de código para executar a inicialização, a validação e o cumprimento de tarefas.

    nota

    A função do Lambda de exemplo fornecida exibe uma conversa dinâmica baseada na disponibilidade inventada de uma consulta odontológica. Em uma aplicação real, você pode usar um calendário real para definir uma consulta.

  • Atualize a configuração de intenção MakeAppointment para usar a função do Lambda como hook de código. Em seguida, teste a end-to-end experiência.

  • Publique o bot de agendamento de consultas no Facebook Messenger para você possa ver os cartões de resposta em ação (atualmente, o cliente no console do Amazon Lex não oferece suporte a cartões de resposta).

As seções a seguir fornecem informações resumidas sobre os esquemas usados por você neste exercício.

Visão geral do Bot Blueprint () ScheduleAppointment

O ScheduleAppointment esquema que você usa para criar um bot para este exercício é pré-configurado com o seguinte:

  • Tipos de slot – um tipo de slot personalizado chamado AppointmentTypeValue, com os valores de enumeração root canal, cleaning e whitening.

  • Intenção – uma intenção (MakeAppointment), que está pré-configurada da seguinte forma:

    • Slots – a intenção está configurado com os seguintes slots:

      • Slot AppointmentType, do tipo de slot personalizado AppointmentTypes.

      • Slot Date, do tipo de slot integrado AMAZON.DATE.

      • Slot Time, do tipo de slot integrado AMAZON.TIME.

    • Declarações: a intenção está pré-configurada com as seguintes declarações:

      • "Eu gostaria de marcar uma consulta"

      • "Marcar uma consulta"

      • “Reserve um {AppointmentType}”

      Se o usuário disser qualquer um desses, Amazon Lex determinará que MakeAppointment é a intenção e, em seguida, usará os prompts para escolher os dados de slot.

    • Prompts – a intenção está pré-configurada com os seguintes prompts:

      • Prompt do slot AppointmentType – "Que tipo de consulta você deseja marcar?"

      • Solicitar a Date vaga — “Quando devo agendar seu {AppointmentType}?”

      • Solicitar o Time horário — “A que horas você deseja agendar o {AppointmentType}?” e

        "Em que horário em {Date}?"

      • Prompt de confirmação – "{Time} está disponível. Posso prosseguir e marcar sua consulta?"

      • Mensagem de cancelamento – "OK, não marcarei a consulta."

Visão geral da função Lambda Blueprint () lex-make-appointment-python

A função Lambda blueprint (lex-make-appointment-python) é um gancho de código para bots que você cria usando o blueprint do ScheduleAppointment bot.

Esse código de esquema da função do Lambda pode executar tarefas de inicialização/validação e de atendimento.

  • A função do Lambda exibe uma conversa dinâmica baseada em um exemplo de disponibilidade para uma consulta odontológica (em aplicativos reais, você pode usar um calendário). Para o dia ou a data que o usuário especificar, o código será configurado da seguinte forma:

    • Se não houver consultas disponíveis, a função do Lambda retornará uma resposta direcionando o Amazon Lex a solicitar outro dia ou data ao usuário (definindo o tipo dialogAction como ElicitSlot). Para obter mais informações, consulte Formato de resposta.

    • Se houver apenas uma consulta disponível no dia ou data especificada, a função do Lambda sugerirá o horário disponível na resposta e direcionará o Amazon Lex a obter a confirmação do usuário definindo a dialogAction na resposta como ConfirmIntent. Isso ilustra como você pode melhorar a experiência do usuário sugerindo proativamente o horário disponível para uma consulta.

    • Se houver várias consultas disponíveis, a função do Lambda retornará uma lista de horários disponíveis na resposta ao Amazon Lex. Amazon Lex retorna uma resposta ao cliente com a mensagem da função do Lambda.

  • Como o hook de código de atendimento, a função do Lambda retorna um mensagem de resumo indicando que uma consulta está agendada (ou seja, a intenção está atendida).

nota

Neste exemplo, mostramos como usar cartões de resposta. A função do Lambda cria e retorna um cartão de resposta ao Amazon Lex. As listas de cartão de resposta lista dias e horários disponíveis como botões para o usuário escolher. Ao testar o bot usando o cliente fornecido pelo console do Amazon Lex, não é possível ver o cartão de resposta. Para vê-lo, você deve integrar o bot com uma plataforma de mensagens, como Facebook Messenger. Para obter instruções, consulte Integração de um bot do Amazon Lex com o Facebook Messenger. Para obter mais informações sobre cartões de resposta, consulte Gerenciamento de mensagens .

Quando o Amazon Lex invoca a função do Lambda, ela passa os dados do evento como entrada. Um dos campos do evento é invocationSource, que a função do Lambda usa para escolher entre uma validação de entrada e uma atividade de atendimento. Para obter mais informações, consulte Formato de eventos de entrada.

Próxima etapa

Etapa 1: criar um bot do Amazon Lex