Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CHATBOT no SIDI: como desenvolvemos a partir do zero

Frederico Oliveira
June 20, 2021
46

CHATBOT no SIDI: como desenvolvemos a partir do zero

Palestra realizada no TDC 2018, trilha Chatbot.
https://thedevconf.com/tdc/2018/saopaulo/trilha-chatbots

Frederico Oliveira

June 20, 2021
Tweet

More Decks by Frederico Oliveira

Transcript

  1. Globalcode – Open4education CHATBOT no SIDI: como desenvolvemos a partir

    do zero Frederico Oliveira [email protected] Coordenador de Projetos Rafael Soares [email protected] Líder Técnico
  2. Globalcode – Open4education Objetivo Compartilhar as principais lições aprendidas no

    desenvolvimento de um Chatbot feito no SIDI em parceria com o Cin/UFPE, que tem o propósito de atuar na primeira linha de atendimento do “Fale Conosco” de um programa de capacitação e engajamento de vendedores.
  3. Globalcode – Open4education SIDI (SAMSUNG Instituto de Desenvolvimento para a

    Informática) • Centro de P&D criado em 2004 pela SAMSUNG; • Reconhecida nas áreas de soluções móveis, plataformas baseadas na Nuvem e segurança; • Samsung Concierge, Samsung Pay, Samsung Kids, Rio 2016, dentre outras soluções. www.sidi.org.br
  4. Globalcode – Open4education CHATBOT • O objetivo de um Chatbot

    é simular uma conversa humana com o objetivo de executar uma tarefa para um usuário. • “Você deveria enviar uma mensagem para uma empresa do mesmo jeito que envia para um amigo. Você deve ter uma resposta rápida e isso não deve exigir sua atenção total, como uma ligação telefônica exige. E você não deveria ter que instalar um novo aplicativo.” Mark Zuckerberg, CEO do Facebook
  5. Globalcode – Open4education Gartner: Top 10 – Conversational Platform -

    “These platforms will continue to evolve to even more complex actions (...)”; - “The challenge that conversational platforms face is that users must communicate in a very structured way, and this is often a frustrating experience.” - “Chatbots are here to stay but 2018 needs to be the year of maturity for them!” https://chatbotsmagazine.com/chatbot-design-trends-2018-253fb356d3a3
  6. Globalcode – Open4education 1. Criação da Identidade • Qual o

    seu alvo? • Seja específico no seu público-alvo para criar um bot que atenda às necessidades. • O que você quer que o seu bot faça bem? • “Not generalists bots!” • Bots que fazem tudo, tem mais chances de falhar! • Defina e foque em um caso de uso principal. • Seu bot fará uma comunicação informal ou formal?
  7. Globalcode – Open4education 1. Criação da Identidade Objetivo: canal de

    comunicação entre os vendedores e a equipe de comunicação da Samsung. Solucionar em tempo real as dúvidas de forma objetiva e simples.
  8. Globalcode – Open4education 2. Pense no fluxo bot x usuário

    • Um fluxo de conversação deve suportar o maior número possível de consultas do usuário. • Guie os usuários durante a conversa para que eles nunca se perguntem o que fazer ou dizer.
  9. Globalcode – Open4education 3. Base de conhecimento • Comece configurando

    o núcleo do conhecimento do bot e, em seguida, trabalhe em camadas para expandir o que ele deve entender; • Use alguma representação de modelo das entidades e seus relacionamentos (ontologia); • Crie um documento (roteiro) para representar exemplos de intenções e respostas que serão dados pelo bot.
  10. Globalcode – Open4education 4. Construção • Framework open source (MIT)

    baseado em regras; • Correspondência forte de padrões; • Boa documentação e suporte da comunidade; • Desempenho. • Não há suporte NLP para português nativo.
  11. Globalcode – Open4education 4. Construção • NLP executa: • Análise

    de conversação humana; • Análise sintática; • Extração de unidades básicas de linguagem (lexemas, morfemas, ...). Exemplo: As palavras “quebrado, quebrei, quebrou, quebraram” são todas partes do mesmo lexema “quebrar”. • No ChatScript, uma única regra para “quebrar” é suficiente.
  12. Globalcode – Open4education 4. Construção Envia mensagem pelo chat Validação

    de usuário Correção ortográfica e lexemas Mensagem NLP Busca regra correspondente e prepara resposta Complementa com dados de usuário Recebe resposta Meu telefone tá quebrado Meu telefone estar quebrar Entendi, danos causados por quedas ...
  13. Globalcode – Open4education 4. Construção # Concepts for Categories Ontology

    concept: ~forget [esquecer equecimento "não lembrar"] concept: ~training [treinamento pergunta prova provar treinar quiz questão] concept: ~restitution [repor reposição repetir repetição] concept: ~confuse [confundir] concept: ~date[data] concept: ~theft [roubo roubar assalto assaltar furto furtar] ChatScript - Conceitos
  14. Globalcode – Open4education 4. Construção ChatScript - Regras # R5

    Dúvida sobre reposição em caso de esquecimento u: REST_FORGET([<<~forget [~training ~restitution]>> <<"perder" ~training>> <<~confuse ~date ~training>>] !~theft) $CURRENT_CONVERSATION_POINT = restitutionrules.REST_FORGET $_response = ^jsoncreate(object) $_response.replies = ^jsoncreate(array) ^jsonarrayinsert($_response.replies ^jsoncreatedefault("Entendi, você esqueceu de realizar o treinamento/quiz.")) ... ^jsonarrayinsert($_response.replies ^createYesNoChoice()) ^customJsonWrite($_response) a: ([~yes]) ^jsoncreateclosechat($KIND_RESTITUTION $SUBKIND_OTHER_REASONS) a: ([~no]) ^createBotFeedbackAction(3)
  15. Globalcode – Open4education • Chatbots deveriam introduzir eles mesmos; •

    Envio de mensagens customizadas para o usuário; • Direcione suas conversações para ações; • Respostas curtas; • Feedback, sempre! • Em caso de dúvida, Chatbot deve dizer que ele não sabe. • Dependendo do caso, um ser humano pode agir. 5. Elementos Design
  16. Globalcode – Open4education • Dê atenção para essa fase do

    projeto; • Alterne entre as pessoas dentro e fora do seu público-alvo; • Testes usando as mensagens originais do “Fale Conosco” de produção; • Automação de testes. • SOAPUI • Testes automatizados > 500 cenários. 6. Testes
  17. Globalcode – Open4education • “Don´t think you are done when

    your bot is in production!” • Veja quais intenções estão sendo usadas e repense, se necessário, a estrutura do seu bot; • Concentre-se em descobrir o que seus usuários perguntam que seu bot não cobre; • Use as métricas corretas é a chave para o desenvolvimento de um bot bem-sucedido para seu público. 7. Monitoramento