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

Bora fazer chatbots usando rasa

Bora fazer chatbots usando rasa

Bruna Moreira

June 27, 2021
Tweet

More Decks by Bruna Moreira

Other Decks in Education

Transcript

  1. fazer chatbots? Bora Chegue sem saber nada de chatbot e

    faça um que fala mais que minha vó na fila da lotérica
  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. Comunicação Conteúdo Entendimento Ação Personalidade Análise de dados O que

    está envolvido? Projeto de chatbot Personalidade Sugestões de leitura
  4. - link pro site: https://github.com/RasaHQ/ - link pra doc: https://rasa.com/docs/rasa/

    - vantagens - open source - fácil de começar - não precisa, mas pode mexer no ML - canais de comunicação - fácil de integrar brokers - ações (auto serviço) Rasa
  5. Rasa Entendimento de linguagem natural (NLU) Gerenciador de diálogo (ML)

    Actions (integrações) Natural Language Generation Qual a sua comida preferida? Não me alimento com os alimentos convencionais Conectores de chat Core
  6. 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
  7. 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
  8. 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
  9. 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?"
  10. 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
  11. 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
  12. Pipeline de treinamento pipeline: # If you'd like to customize

    it, adjust the pipeline. # See https://rasa.com/docs/rasa/tuning-your-model for more information. - name: WhitespaceTokenizer - name: RegexFeaturizer - name: LexicalSyntacticFeaturizer - name: CountVectorsFeaturizer analyzer: char_wb min_ngram: 1 max_ngram: 4 - name: DIETClassifier epochs: 100 - name: EntitySynonymMapper - name: ResponseSelector epochs: 100 - name: FallbackClassifier threshold: 0.3 ambiguity_threshold: 0.1 Cada componente produz um output que pode ser usado por qualquer outro
  13. Policies Através das policies, seu chatbot decide cada passo da

    conversa # Configuration for Rasa Core. # https://rasa.com/docs/rasa/core/policies/ policies: # If you'd like to customize them, adjust the policies. # See https://rasa.com/docs/rasa/policies for more information. - name: MemoizationPolicy - name: TEDPolicy max_history: 5 epochs: 100 - name: RulePolicy Como funcionam as policies no rasa 2.0
  14. 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.
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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%
  22. 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
  23. lappis boilerplate 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 boilerplate no github
  24. BOSS Big open source sibling 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 Vencedor do Gnome Challenge
  25. 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 #PL490Não