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

Tutorial chatbot

Tutorial chatbot

Bruna Moreira

November 08, 2020
Tweet

More Decks by Bruna Moreira

Other Decks in Programming

Transcript

  1. rasa boilerplate Chegue sem saber nada de chatbot e faça

    um que fala mais que minha vó na fila da lotérica from zero to hero
  2. Quem sou eu Bruna Moreira Saudades de dançar um forró,

    mas feliz que tenho meus gatos e a barra de pole dance por perto. Engenheira de software PyLadies DF Organizadora da BOSS Acompanha Legis Forrozeira #praTodosVerem: foto estilo retrato, mulher branca com cabelos ondulados e curtos. Está sorrindo e com uma camiseta laranja. Aprendendo libras
  3. Mão na massa 01 Instalação Criar entidade 03 Sinônimos Criar

    conversa 02 Intent, utter, story Criar ações 04 Python!!!
  4. Rasa webchat 05 Bot no navegador Telegram 06 Bot no

    telegram Análise 07 Métricas e mais métricas
  5. Comunicação Conteúdo Entendimento Ação Personalidade Análise de dados O que

    está envolvido? Projeto de chatbot Personalidade Sugestões de leitura
  6. Para rodar e contribuir • docker • docker-compose Requisitos docker

    docker-compose Documentação local • gitbook gitbook
  7. Bot no terminal git clone make first-run já pode conversar

    Pode demorar um pouco por conta do treinamento do modelo.
  8. Intents Intenção do usuário: o que ele quer falar e

    como ele fala ## intent:comida - Qual a sua comida preferida? - Que comida você gosta? - Que comida vc gosta? - qual a melhor comida? - Qual seu lanche preferido? ## intent:onde_voce_mora - onde voce mora - onde voce vive - onde voce habita - em que lugar você vive - onde voce está agora
  9. utter_comida: - text: "Na verdade, eu sou um bot. Não

    nos alimentamos com os alimentos convencionais ;P" - text: "Digamos que os bots não se alimentam dos mesmos alimentos que os humanos. Na verdade, Nem lembro da última vez que comi alguma coisa hahaha" utter_risada: - text: "Hahahaha... Engraçadinho" - text: "kkkkkkkkkk Você está feliz hoje, hein!?" Respostas possíveis: - definir uma ou mais respostas - o bot escolhe aleatoriamente Utters
  10. Fluxos de diálogos: • Intent + utter • Depende do

    objetivo da conversa ## path_onde_voce_mora 1 * onde_voce_mora - utter_onde_voce_mora - utter_continuar_conversa ## path_onde_voce_mora 2 * cumprimentar - utter_cumprimentar * onde_voce_mora - utter_onde_voce_mora - utter_continuar_conversa intents utters Stories
  11. Respostas diferentes screenshot de um chat no telegram Mesma pergunta

    feita duas vezes seguida Respostas com textos diferentes #praTodosVerem: screenshot de um chat no telegram. A pergunta repetida foi: "Qual sua licensa". A primeira resposta foi: "Eu sou e sempre serei um robô livre, open source, GNU v3.0". A segunda foi "Sou um software livre. Licenciado com a GNU v3.0". Após ambas ele pergunta: "E aí qual nosso próximo assunto?"
  12. Entities ## intent:relationship - Você tem [namorada](relationship)? - Você [namora](relationship)?

    - [Namora](relationship) comigo? - Quer [namorar](relationship)? - Tem [boyfriend](relationship)? - Tem [girlfriend](relationship)? ## synonym:lei_rouanet <!-- synonyms, method 2 --> - lei rouanet - Lei Rouanet - Lei de Incentivo a Cultura - ruane - ruanê - ruanet - rouane - rouanê As entidades são temas que ajudam a categorizar as conversas
  13. Criar ações 04 Criar entidade na nlu.md Colocar entidade na

    domain.yml Criar action na actions.py Colocar action como resposta na stories.md
  14. Criar entidade na nlu.md Colocar entidade na domain.yml Criar action

    na actions.py Colocar action na domain.yml Colocar action como resposta na stories.md Treinar: make train
  15. Só rodar um comando Incorporar ao site Webchat #praTodosVerem: screenshot

    de um chat no web chat. O bot responde um cumprimento do usuário. O usuário pergunta sobre a licensa e o bot responde que é GPL v3.0 e convida a fazer outra pergunta. Por último, o usuário pergunta sobre religião e a resposta do bot está cortada.
  16. BotFather ngrok Conector configurado Rodar E só isso! Telegram Configurando

    o bot no telegram #praTodosVerem: screenshot de um chat no telegram. O bot cumprimenta em resposta ao usuário. O usuário pergunta se o bot gosta de música, e o bot responde com o link de uma playlist. O bot não entende a pergunta sobre comida, e responde que sua licensa é GPL v3.0
  17. Conversar com BotFather • Criar username • Ter um token

    Passos Ngrok • Download • Extrair • Executar o comando
  18. Exportar as variáveis • Abrir arquivo env/bot-telegram.env • Adicionar username

    • Adicionar token • Adicionar webhook Mais passos
  19. Atualizar credenciais • Descomentar blocos • Não precisa mexer em

    mais nada Outros passos Rodar o comando • Rodar o bot • Conversar no telegram
  20. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta As colunas representam a predição de intenção feita pelo bot. As linhas representam as intenções reais. O ideal é que tenhamos a maior quantidade na diagonal da matriz. Ou seja, a predição foi correta.
  21. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta Verdadeiro positivo: O bot entendeu corretamente Verdadeiro negativo: O bot sabe que não sabe Falso positivo: O bot entendeu errado Falso negativo: O bot pensou que não sabia, mas ele sabia
  22. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta Verdadeiro positivo: O bot entendeu corretamente Verdadeiro negativo: O bot sabe que não sabe Falso positivo: O bot entendeu errado Falso negativo: O bot pensou que não sabia, mas ele sabia
  23. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta Verdadeiro positivo: O bot entendeu corretamente Verdadeiro negativo: O bot sabe que não sabe Falso positivo: O bot entendeu errado Falso negativo: O bot pensou que não sabia, mas ele sabia
  24. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta Verdadeiro positivo: O bot entendeu corretamente Verdadeiro negativo: O bot sabe que não sabe Falso positivo: O bot entendeu errado Falso negativo: O bot pensou que não sabia, mas ele sabia
  25. Matriz de confusão intent 1 intent 2 intent 3 fallback

    intent 1 17 0 0 1 intent 2 1 13 2 0 intent 3 0 2 15 1 fallback 0 0 0 12 Predição Correta Verdadeiro positivo: O bot entendeu corretamente Verdadeiro negativo: O bot sabe que não sabe Falso positivo: O bot entendeu errado Falso negativo: O bot pensou que não sabia, mas ele sabia
  26. Métricas Precisão vp / (vp+fp) Recall vp / (vp +

    fn) Acurácia acertos/total F1 2* (precision * recall)/ (precision + recall) Interpretação das métricas
  27. Histograma Confiança é a certeza que o bot tem da

    predição feita As barras da cor lilás representam os a quantidade de acertos. As barras da cor rosa representam os a quantidade de erros. Quanto mais a direita, mais certeza o bot tinha quanto a sua precisão. Acertos Erros Confiança Quantidade 100%
  28. Na pasta /bot/results • Relatório de intents • Erros de

    stories • Relatório de entidades • Matriz de confusão de stories Outros dados "license": { "precision": 0.7647058823529411, "recall": 0.9285714285714286, "f1-score": 0.8387096774193549, "support": 14 } "comida": { "precision": 1.0, "recall": 0.6923076923076923, "f1-score": 0.8181818181818181, "support": 13, "confused_with": { "cor": 4 } }, Relatório de intent Relatório de entidade
  29. CREDITS: This presentation template was created by Slidesgo, including icons

    by Flaticon, and infographics & images by Freepik. Contato brunanayara.github.io/ pra me achar: Juntas podemos criar coisas melhores Leiam Angela Davis Bebam água Comam vegetais #justiçapormariferrer