Slide 1

Slide 1 text

rasa boilerplate para criar um chatbot mais rápido que assistir senhor dos anéis usando o

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Chatbot 01 Exemplos práticos Problemas 03 Coisas quebradas Conceitos 02 Conteúdo e Métricas Curiosidades 04 Apenas isso

Slide 4

Slide 4 text

Comunicação Conteúdo Entendimento Ação Personalidade Análise de dados O que está envolvido? Projeto de chatbot Personalidade Sugestões de leitura

Slide 5

Slide 5 text

Bot em ação Telegram e webchat

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

RASA boilerplate Projeto de software livre brasileiro para a criação de chatbots RASA

Slide 9

Slide 9 text

Projeto brasileiro GPL 3.0 Link para o repositório #praTodosVerem: screenshot do repositório no github

Slide 10

Slide 10 text

Para rodar e contribuir ● docker ● docker-compose Requisitos docker docker-compose Documentação local ● gitbook gitbook

Slide 11

Slide 11 text

Bot no terminal git clone make first-run já pode conversar

Slide 12

Slide 12 text

Bot no terminal git clone make first-run já pode conversar Pode demorar um pouco por conta do treinamento do modelo.

Slide 13

Slide 13 text

Bot webchat make run-webchat abrir o navegador já pode conversar

Slide 14

Slide 14 text

Conceitos importantes Conteúdo

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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?"

Slide 19

Slide 19 text

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 - 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

Slide 20

Slide 20 text

class ActionABC(Action): def name(self): return "action_abc" def run(self, params): ... return [] class ActionTeste(Action): def name(self): return "action_teste" def run(self, dispatcher, tracker, domain): comprar_ticket_do_cinema() return [] Ações que o desenvolvedor quer que o bot faça além de responder. Custom Actions

Slide 21

Slide 21 text

Conceitos importantes Métricas e análise

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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%

Slide 30

Slide 30 text

Gerar os dados make test ver resultados analisar e melhorar

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Coisas que temos Mas estão quebradas agora

Slide 33

Slide 33 text

Analytics Analytics com Kibana e Elasticsearch. Criação e visualização de dashboards. Outras métricas de negócio do chatbot. screenshot de dashboard

Slide 34

Slide 34 text

Mensageria O rocketchat já está com um PR aberto para corrigir os problemas. Temos uma issue aberta para a integração com a twilio. rocketchat twilio

Slide 35

Slide 35 text

Visualização de stories A visualização dos stories ajuda a entender quais são os fluxos de conversa. É possível identificar problemas de fluxo conversacional. screenshot ilegível com setas saindo de um nó inicial para nós com intents e utters de um fluxo conversacional e acabando em um nó final

Slide 36

Slide 36 text

RASA X Ferramenta para desenvolvimento de conteúdo conversacional. Temos um PR aberto para resolver o bug do RASA X. screenshot ilegível da interface do RASA X para gerenciamento de conteúdo de chatbot Documentação do RASA X

Slide 37

Slide 37 text

Curiosidades O que mais?

Slide 38

Slide 38 text

Origens O projeto surgiu a partir de um trabalho desenvolvido em parceria com o antigo Ministério da Cultura. Lei de incentivo à cultura. Universidade de Brasília - Laboratório LAPPIS Trabalho de conclusão de curso do Arthur Temporim gif animado de um chat da TAIS (Assistente virtual do MinC) sobre a lei de incentivo à cultura Link para o TCC do Temporim

Slide 39

Slide 39 text

BOSS Big open source sister Programa para ajudar grupos sub-representados a darem seus primeiros passos em comunidades Open Source através de mentoria de desenvolvimento de projetos em comunidades reais Logo da iniciativa boss Aprendizado Criar bot Contribuição Autonomia

Slide 40

Slide 40 text

Muito obrigada Às amigas que me incentivaram a submeter a palestra Às participantes e mentoras da BOSS À equipe de organização da Python Brasil pelo evento Pessoas que mais perturbei pra me ajudar nos últimos tempos

Slide 41

Slide 41 text

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