Code Monkey home page Code Monkey logo

rasa-ptbr-boilerplate's Introduction

Rasa Boilerplate

badge_build

For English version: README-en

O boilerplate nasceu como uma abstração genérica do projeto Tais. Hoje, tem o objetivo de tornar mais fácil a criação de um chatbot Rasa. Com a evolução do framework, atualmente o foco do boilerplate é uma documentação em código viva.

Aqui você pode encontrar um chatbot totalmente em Português Brasiliero que vai te auxiliar com exemplos de diálogo, código e uso de funcionalidades do Rasa.

Arquitetura

A arquitetura do boilerplate pode ser divida em 2 partes principais:

  • Criar

Processo que transforma arquivos de configuração .yml em um modelo treinado que contẽm a inteligência do chatbot.

arquitetura_boilerplate-v3-criar

  • Prover

O usuário interage com a Boilerplate via Telegram, que manda as mensagens para o Rasa NLU através de conectores, onde ele identifica a intent, e responde pelo Rasa Core, de acordo com as stories e actions.

As models utilizadas para a conversação foram geradas pelo módulo trainer e depois transferidas para o bot, estes modelos podem ser versionados e evoluídos entre bots.

arquitetura_boilerplate-v3-prover

Tutorial

Primeiramente, clone o repositório para sua máquina local usando o comando:

git clone https://github.com/lappis-unb/rasa-ptbr-boilerplate.git

Para ter seu chatbot Rasa funcionando, certifique-se de estar dentro da pasta do projeto e então execute no terminal o seguinte comando:

make init

Esse comando irá construir a infraestrutura necessária (subir containers com as dependências, treinar o chatbot e iniciar o chat no modo shell) para possibilitar a interação com o chatbot.

Depois que tudo for instalado, você verá a seguinte mensagem e pode começar a interagir com o bot:

Bot loaded. Type a message and press enter (use '/stop' to exit):
Your input ->

Para fechar a interação com o bot é só digitar ctrl+c.

Comandos

  • O comando de treinamento é usado para criar os modelos necessários na conversação do bot. Para treinar o seu chatbot execute o comando:
make train
  • Para executar o bot no terminal execute:
make shell

Configuração Telegram

Após realizar o tutorial de exportação de todas variávies de ambiente necessárias, é possível realizar a execução do bot no telegram corretamente.

Antes de seguir adiante. Importante: As variáveis de ambiente são necessárias para o correto funcionamento do bot, por isso não esqueça de exportá-las.

Depois execute o bot no telegram:

make telegram

Analytics

Para a visualização dos dados da interação entre o usuário e o chatbot nós utilizamos uma parte da Stack do Elastic, composta pelo ElasticSearch e o Kibana. Com isso, utilizamos um broker para fazer a gerência de mensagens. Então conseguimos adicionar mensagens ao ElasticSearch independente do tipo de mensageiro que estamos utilizando.

  • Para uma configuração rápida execute o seguinte comando:
make build-analytics

Espere até os serviço do ElasticSearch estar pronto, e execute o comando abaixo para configurar os índices:

make config-elastic

Espere até os serviço do Kibana estar pronto, e execute o comando abaixo para configurar os dashboards:

make config-kibana

O comando acima precisa ser executado apenas 1 vez e já vai deixar toda a infra de analytics pronta para o uso.

Acesse o kibana na url locahost:5601

Caso você deseje entender o processo de configuração da stack de analytics, veja a explicação completa de analytics.

Adicionando componentes customizados de treinamento

O Rasa permite a adição de módulos customizados no seu pipeline de processamento, aprenda mais AQUI.

Existe aqui um exemplo de componente customizado que implementa Análise de Sentimentos.

Para utilizá-lo basta introduzir o componente components.sentiment_analyzer.SentimentAnalyzer ao arquivo bot/config.yml. Como no exemplo:

language : "pt"

pipeline:
  - name: WhitespaceTokenizer
  - name: "components.sentiment_analyzer.SentimentAnalyzer"                                                                                        - name: RegexFeaturizer

Depois, como no exemplo do arquivo bot/components/labels.yml, adicione frases que correspondam à uma label(classificação ou sentimento).

Por último basta treinar o bot novamente, e a informação será armazenada na entidade sentiment caso o componente identifique um valor para essa entidade.

Notebooks - Análise de dados

Setup

Levante o container notebooks

make notebooks

Acesse o notebook em localhost:8888

Documentação

A documentação do projeto pode ser executada localmente utilizando o GitBook. Para instalar o gitbook via npm, é preciso ter instalado no computador Node.js e npm.

npm install -g gitbook gitbook-cli
  • Depois de instalado, na pasta raíz do projeto, execute:
gitbook build .
  • E para rodar localmente execute:
gitbook serve .
  • Acesse:
http://localhost:4000/

Contribuição: Para contribuir com a documentação do projeto leia como contribuir para a documentação

Como conseguir ajuda

Parte da documentação técnica do framework da Tais está disponível na wiki do repositório. Caso não encontre sua resposta, abra uma issue com a tag duvida que tentaremos responder o mais rápido possível.

Em caso de dúvidas em relação ao Rasa, veja o grupo Telegram Rasa Stack Brasil, estamos lá também para ajudar.

Veja mais informações de contato em nosso site: https://lappis.rocks.

Licença

Todo o framework do boilerplate é desenvolvido sob a licença GPL3

Veja a lista de dependências de licenças aqui

rasa-ptbr-boilerplate's People

Contributors

alexandrebarbaruiva avatar andre-filho avatar andreabenf avatar arthurtemporim avatar brunanayara avatar brunapinos avatar davidcarlos avatar dehatanes avatar dudanogueira avatar gabibguedes avatar giovanadionisio avatar guiaugusto avatar guilacerda avatar guilherme1guy avatar gustavololis avatar joaaogui avatar joaovitor3 avatar joenio avatar jpwakugawa avatar kahcosta avatar kimuraz avatar leo0liveira avatar matheusmiranda avatar naiieandrade avatar pablodiegoss avatar palomacmamede avatar pedroeagle avatar rafaellajunqueira avatar rochacarla avatar victorcmoura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rasa-ptbr-boilerplate's Issues

Kibana do ambiente de homologação não está coletando dados

Descrição

O Kibana não está conseguindo comunicar com o ElasticSearch e importar os dados armazenados nele. É necessário investigar o que está acontecendo.

Tarefas

  • Testar subir novamente o container para ver se resolve o problema de comunicação
  • Investigar o que pode ter acontecido - Domínio, container, SSL, etc.

Critérios de aceitação

  • É possível visualizar os dados reais no Kibana

Melhoria de Stories

Tarefas

  • Mapear Stories que precisam ser melhoradas

  • Stories
    continuar_conversa
    cumprimentar (novos exemplos de stories com o cumprimentar)
    negar_despedir

  • Melhorar Stories

  • Testar

Critérios de Aceitação

  • Documentar quais atualizações foram feitas

  • As atualizações melhoram a eficiência do Bot

  • Os testes passaram

[Kibana] Atualizar o repositório com os dashboards existentes da Tais

Descrição

Foram desenvolvidos dashboards baseados em alguns estudos desenvolvidos no repositório da Tais. Assim, é necessário reaproveitar o trabalho realizado lá para o repositório do boilerplate.

Tarefas

  • Comitar no boilerplate os dashboards desenvolvidos na Tais
  • Documentar no README como subir com os dashboards

Critérios de aceitação

  • A partir do readme é possível subir uma instância do elastic/kibana com os dashboards existentes.

Problema na Integração coma Rocket.Chat

Descreva o bug
A integração com a Rocket.Chat não está funcionando depois da atualização da versão do Rasa para 1.2.2. Esse problema está acontecendo pois o script run-rocketchat.py foi removido e a utilização padrão do rasa, usando credentials foi feita, mas o Rasa não possui a integração correta com a Rocket.Chat. Provavelmente um PR corrigindo o Rasa seja necessário.

Para reproduzir o bug
Passo-a-passo para reproduzir o comportamento do bug:

  1. Descomente a configuração da Rocket.Chat no `credentials.py
  2. Execute o container bot-rocketchat
  3. Bot não responde na rocket.chat

Comportamento esperado
O bot deveria aparecer online e responder na Rocket.chat.

Melhorar README

Para engajar a comunidade e melhorar a descrição do projeto, a evolução do README deve ser feita. Um bom exemplo é o README da tais.

Atualização do CI/CD

Descreva o bug
O CI atual não está funcionando, ele deve ser corrigido ou outra solução configurada.

Atualizar versão do Rasa

  • Atualizar a versão do Rasa

  • Atualizar arquitetura (dockers)

  • Testar o funcionamento correto das demais funcionalidades e integrações

  • Documentar nova arquitetura

  • Atualizar o README

  • Atualizar os tutoriais de uso (como fazer seu primeiro bot,)

  • Atualizar notebooks

Recepcionar o usuário automáticamente

@MatheusRich comentou comigo que acessou o Lappisudo e sentiu falta de uma interação inicial do bot na página. Acessando a página do lappis, o bot aparece lá no cantinho e a caixa de texto fica vazia, o usuário tem que "adivinhar" que a caixa de texto é um chatbot e que ele deve conversar por ali.

Procurei nas issues e não consegui encontrar algo relacionado a recepcionar usuário, mas o que ele procurava era uma recepção automática do bot "Oi, sou um chatbot, se quiser falar comigo é só digitar aqui". Similar a chatbots de sites de compras, isso é possível implementar? é problema? como fazer?

Novas stories de Teste

Aumentar a cobertura de testes do bot

Tarefas

  • Criar novas histórias com fluxos de conversas nos testes

Fluxos

  • Geral
    cumprimentar
    negar_despedir
    despedir
    tudo_bem

  • Aleatório
    religiao
    time
    linguagens
    star_wars
    license
    playlist
    comida
    de_onde_voce_eh
    relationship
    bff
    risada

Critérios de aceitação

  • Todos os testes devem passar

Erro ao rodar make train-online

Subi o bot e fui capaz de treiná-lo e usá-lo.

Ao seguir o passo-a-passo sugerido no readme.md, contudo, este comando falhou ao rodar:

sudo docker-compose run --rm bot make train-online

Starting chatbot_actions_1 ... done
python3 -m rasa_core.train -d domain.yml -s data/stories -o models/dialogue --epochs 15 --online --nlu models/nlu/current/
usage: train.py [-h] {default,compare,interactive} ...
train.py: error: unrecognized arguments: --epochs 15 --online --nlu models/nlu/current/
Makefile:19: recipe for target 'train-online' failed
make: *** [train-online] Error 2

Vale notar que não é uma falha que impede o uso do bot/projeto.

Criar módulo de integração com ElasticSearch

A integração do boilerplate com Elastic search é feita aqui, no script run-rocketchat.py. Porém caso queira coletar os dados de outro mensageiro é necessário refazer essa configuração em outro script.

O objetivo é fazer com que a integração com o ElasticSearch seja feita de forma direta, e não apenas na integração com a Rocket.Chat.

Problema na utilização do TensorFlow

Após executar o comando sudo make first-run o seguinte erro acontece:

bot_1_d64506d9a1d9 | make[1]: Leaving directory '/bot'
bot_1_d64506d9a1d9 | python3 run-rocketchat.py
bot_1_d64506d9a1d9 | 2019-07-02 15:16:31.670672: F tensorflow/core/platform/cpu_feature_guard.cc:37] The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.
bot_1_d64506d9a1d9 | make: * [run-rocketchat] Aborted (core dumped)
bot_1_d64506d9a1d9 | Makefile:2: recipe for target 'run-rocketchat' failed

Um comentário com problema semelhante aponta que o problema pode estar no TensorFlow aqui, e nesse link diz que as instruções AVX podem não funcionar em CPUs antigas.

Erro gramatical README.md

No README, no tópico de Visualização, está escrito com "Z" ao invés de "S". Segue forma correta:

Visualização

sudo docker-compose up -d kibana

Você pode acessar o kibana no locahost:5601

Translate the README to English

It is needed to create a translated README file and add it to the repository, so this boilerplate could reach more contributors.

Documentar Ecossistemas de SL

Descrição
Coletar métricas dos repositórios do Ecossistema de Software Livre (TED MinC)

Tarefas

  • Selecionar métricas a serem coletadas
  • Criar notebook geral
  • Criar notebook Tais
  • Criar notebook SalicML
  • Criar notebook Promova Cultura
  • Criar notebook BotFlow
  • Mapear se há mais repositórios a possuirem notebooks
  • Verificar se contribuições a outros softwares livres entram nas métricas (contribuições no Rasa, RocketChat...)

Critérios de Aceitação

  • Métricas validadas com algum sênior
  • Notebooks criados
  • Notebooks validados por algum sênior

Consertar README e pontos do Boilerplate

Descrição

É necessário subir toda a stack do boilerplate para validar se toda a documentação do README está correto e todos os comandos estão funcionando corretamente. Cada erro encontrado é necessário documentar e consertar.

Tarefas

  • Executar todos os comandos do README para ver se estão funcionando corretamente
  • Relatar nesta issue os erros encontrados
  • Consertar os erros encontrados e relatados

Critérios de aceitação

  • É possível subir toda a stack do boilerplate a partir do README sem nenhum problema

Nova Intent: Negar_Despedir

Importância

Guando o usuário vai despedir em qualquer contexto significa que ele não quer mais continuar perguntando ou não tem mais interesse na conversa, mas existem várias formas de fazer isso, uma delas é negar após a utter_continuar_conversa. Se o bot pergunta se ele tem mais alguma dúvida e ele não tem, isso significa uma despedida, porém é uma negação diferente de uma negação comum. Para que o bot não confunda todos esses contextos é necessário criar uma utter_negar_despedir.

Tarefas

  • criar intent

  • criar story

  • testar

Critérios de aceitação

  • a intent melhora a eficiência do bot

  • as atualizações foram documentadas

  • os testes passaram

[Kibana] Elaborar um tutorial para criação de novas visualizações

Descrição

Já existe um webinar sobre como criar visualizações e dashboards no canal do youtube, porém é necessário fazer um tutorial escrito para deixar melhor documento e não tornar obrigatório a visualização do vídeo.

Tarefas

  • Elaborar uma documentação de como criar visualizações e dashboards variados

Critérios de aceitação

  • É possível através do tutorial como criar um dashboard e visualizações no Kibana.

Dockerização total [Ploc Twist]

Com a evolução do boilerplate um problema foi identificado, toda a evolução gera um imenso retrabalho de configuração do bot.

Pessando nisso a solução proposta é dockerizar tudo. Simplesmente abstrair toda a pasta docker do projeto para um container e publica-lo no dockerhub. Dessa forma é necessário apenas uma pasta data e um docker-compose para ter um chatbot Rasa.

Tarefas:

  • Implementar "dockerzão"
  • Publicar no dockerhub "dockerzão"
  • Permitir o treinamento com o Coach em execução, não só durante a build docker
  • Identificar tudo que pode ser abstraído para um container
  • Transformar o coach em um FTP para fornecer os modelos do rasa
  • Fornecer versão das modelos através de checksum da pasta src_models
  • Adaptar o bot para obter as models através do Coach novo
  • Bot verificar por atualizações nas modelos baixadas comparando por checksum
  • Bot verificar se o coach está disponível
  • Configurar bot via variável de ambiente
  • Corrigir a obtenção dos modelos pelo container de notebooks
  • Publicar as imagens novas no dockerhub
  • Remover a implementação do bot do lappisudo e utilizar as imagens novas

Critérios de Aceitação:

  • "dockerzão" implementado
  • A garantia que a solução evita retrabalhos
  • É possível implementar um bot criando apenas o seu próprio coach

Tutorial - Como calibrar os hyperparâmetros do seu modelo - Rasa Core

Criar um tutorial que guie na escolha dos hyperparâmetros dos modelos do chatbot.

Tarefas

  • Como funciona a Policy de um chatbot (as 3 principais camadas: memoization, Keras/Embedding, FallbackPolicy)

  • Passo a passo de como escolher os algoritmos, quais hyperparâmetros, e onde atualizá-los (Keras Policy e Embedding Policy)

  • O que significa os hyperparâmetros dos modelos (Keras,Embedding) - falar tb sobre augmentation

  • Passo a passo de como calibrar e validar calibração dos hyperparâmetors

Critérios de Aceitação

  • Tutorial em formato Markdown na pasta docs/ do repositório

  • Qualquer desenvolvedor é capaz de calibrar os hyperparâmetros dos seus modelos

Exemplo de Uso de Knowledge base

Fazer um exemplo de uso, no contexto br, do uso de knowledge base com o Rasa.
Utilizar o repositório do rasa https://github.com/RasaHQ/tutorial-knowledge-base como referência. Fazer um tutorial em pt explicando quando usar, por que usar, e como usar.

  • Criar o código base utilizando tutorial-knowledge-base

  • Documentar a solução

  • Tutorial como fazer tutorial-knowledge-base

Melhoria de Intents

Tarefas

  • Mapear Intents que precisam ser melhoradas

Intents

  • Geral

  • cumprimentar

  • despedir

  • out_of_scope

  • negar_despedir

  • negar

  • diga_mais

  • tudo_bem

  • elogios

  • Aleatório

  • religiao

  • esporte

  • time

  • linguagens

  • genero

  • star_wars

  • piada

  • license

  • onde_voce_mora

  • como_estou

  • playlist

  • comida

  • cor

  • de_onde_voce_eh

  • relationship

  • me

  • filhos

  • filme

  • signo

  • triste

  • hobby

  • bff

  • historia

  • risada

  • Implementar novos exemplos de intents

  • Testar

Critérios de aceitação

  • Documentar quais atualizações foram feitas

  • As atualizações melhoram a eficiência do Bot

  • Os testes passaram

Estudar e documentar migração para o kubernetes

Descrição

A infra do lappis está no kubernetes, deve-se entender como funciona a mudança do lappisudo para o kubernets, e documenta-la

PS: Deve-se usar a branch ploc-validation

Aparentement, o davi está fazendo a issue de migrar o lappisudo, checar com ele.

Tarefas

  • Migrar lappisudo para pod do kubernetes

Critérios de aceitação

  • Lappisudo deve estar migrado para o kubernetes
  • Deve existir uma docmentação passo-a-passo genérica afim de se auxiliar a migração do boilerplate

Elaborar template de botão para o telegram

O rasa permite o envio de botões para muitos conectores como especificado nesse link da documentação. Seria interessante a criação de um template básico de botões para um dos conectores com esse suporte, no caso o telegram. A implementação pode ser feita assim como explicado aqui.

Critérios de aceitação:

  • Botão enviar mensagem correta de acordo com a opção selecionada pelo usuário
  • Botão ser exibido corretamente

Tarefas:

  • Criação de utters e stories necessárias para funcionamento do botão
  • Criação de utters e stories para redirecionamento após seleção do botão pelo usuário

Implementar testes de integração

Atualmente existem várias plataformas integradas no rasa-ptbr-boilerplate mas nenhum teste automazido foi feito para verificar se tudo funciona corretamente relacionado à integração. Uma solução deve ser feita para este problema, possíveis soluções:

  • Adicionar na integração contínua uma vericação da integração
  • Adicionar script sh nas configurações de docker

Integração com Analytics

Descreva o bug
Verificar se o Analytics está funcionando na versão 1.2.2 do Rasa na branch devel.

Para reproduzir o bug
Passo-a-passo para reproduzir o comportamento do bug:

  1. Executar a stack de Analytics
  2. Verificar se os dados podem ser visualizados no Kibana

Comportamento esperado
Conseguir visualizar todos os dados no Kibana.

Adicionar integração contínua

Descrição
Implementar integração contínua usando preferencialmente gitlab-ci deve ser implementado para verificar se todo o boilerplate está funcionando corretamente.

Tarefas:

  • Realizar mirror do repositório para o gitlab
  • Configurar arquivo .gitlab-ci.yml com os stages que foram utilizados na tais

Critérios de aceitação:

  • Pipeline ser executado corretamente no gitlab

Conexão com o telegram por meio de arquivo python

Atualmente o boilerplate realiza a conexão com o telegram por meio desse comando no Makefile:

run-telegram:
	python -m rasa_core.run -d /models/dialogue -u /models/nlu/current --port 5001 --credentials credentials.yml --endpoints endpoints.yml

Isso poderia ser realizado por meio do telegram input em um arquivo python (assim como a conexão do rocketchat é feita por meio do arquivo em bot/run-rocketchat.py) conforme mostrado nesse link da documentação do rasa e na imagem a seguir:

image

Tutorial - Como avaliar o seu Dataset de treinamento (Intents + stories)

Criar um tutorial que guie o usuário na avaliação da qualidade do chatbot, ou seja, a capacidade do chatbot de classificar corretamente as intents e as stories.

Tarefas

  • Passo a passo como subir o jupiter-notebook das intents + stories

  • passo a passo executar o notebook

  • Explicação sobre o que significa a matriz de confusão das intents e stories

  • Explicação sobre como refinar os dados de treinamento (exemplos de intents e stories) de modo a melhorar a assertividade do seu chatbot

Critérios de Aceitação

  • Tutorial em formato Markdown na pasta docs/ do repositório

  • Qualquer desenvolvedor é capaz de avaliar a matriz de confusão da sua base de treinamento e saber refatorar os dados de treinamentos pertinentets (tanto intents quanto stories)

[Kibana] Diferenciação de usuário

Descrição

Foi disponibilizado a feature de segurança que faz a diferenciação de usuário no plano Basic, após a atualização do Kibana para a versão 7.3.0. Com isso, não existe mais a necessidade de mantermos os serviços do dados.lappis.rocks e do analytics.lappis.rocks. São serviços que criamos para fazer a diferenciação de usuários.

É preciso estudar como que faz para configurar os usuários na nova versão.

Tarefas

  • Habilitar o security no elastic
  • Criar usuário administrador com total permissão
  • Criar usuário apenas para visualização dos dashboards, sem direito a editar

Critérios de aceitação

  • É possível acessar como administrador e editar os dashboards/visualizações
  • É possível acessar o kibana como usuário comum somente para visualizar, sem permissão para editar os dashboards/visualizações

[Fallbeck] Remover hardcodes do custom fallback

Descrição

No custom fallback foi desenvolvida uma condição que se as confianças das respostas dos sub-bots forem menor do que o core_threshold o bot principal responde com o seu próprio fallback. Porém é necessário passar esse valor via variável de ambiente, ainda encontra-se hardcoded.

Além disso, é necessário alterar a lógica para retornar ao fallback do próprio bot. Neste momento ele retonar se for menor do que o core_threshold como explicado acima. Contudo, antes de entrar na condição para saber se é menor do que o threshold, ele faz uma soma da confiança da intent com a confiança da utter, com isso é bem provável que a soma seja maior do que o core_threshold, mesmo se a confiança da intent for menor do que o esperado.

Tarefas

  • O valor do core_threshold e do nlu_threshold deve ser passado via variável de ambiente para a config do bot
  • Substituir o número mágico do core_threshold para a variável de ambiente
  • Eliminar da lista de resposta qualquer uma que não tenha a confiança mínima da intent (core_threshold)

Critérios de aceitação

  • É utilizado variável de ambiente ao invés de números mágicos
  • Intents com confiança menor do que o core_threshold não são aceitas

Tutorial - como criar o primeiro chatbot

Criar um tutorial que guie a criação de um primeiro chatbot

Tarefas

  • Passo a passo como criar um novo projeto

  • passo a passo como subir o boilerplate e executá-lo

  • Passo a passo como criar uma utter

  • Passo a Passo como criar uma intent

  • Passo a passo como criar stories

  • Passso a passs de como treinar e validar o novo conteúdo

Critérios de Aceitação

  • Tutorial em formato Markdown na pasta docs/ do repositório

  • Qualquer desenvolvedor é capaz de criar um chatbot no seu contexto

  • O desenvolvedor é capaz de validar o novo conteúdo no chatbot em ambiente local

Adicionar configuração de virtualenv

É necessário ter configurações básicas de uso do boilerplate utilizando virtualenv além de docker images.

Scripts que ajudem na criação de uso de virtual env e documentações devem ser adicionadas.

Automatizar a importação dos dashboards

Descrição

A importação é feita de modo manual, precisando acessa a página de saved_objects no Kibana e fazendo o upload manual do arquivo responsável por armazenar os ids e estrutura dos dashboards, visualizações e índices.

É necessário "desburocratizar" a importação dos dashboards.

Tarefas

  • Analisar a API do Kibana referente à importação e exportação de dashboards
  • Implementar um script para automatizar a importação

Critérios de aceitação

  • Os dashboards se encontram disponíveis após subir a stack do analytics

Erros no notebook das stories

Estou tendo alguns problemas ao rodar ./notebooks/stories/stories-analysis.ipynb .

Ao rodar a terceira chunck de código há essa mensagem:

Processed Story Blocks: 100%|██████████| 19/19 [00:00<00:00, 637.54it/s, # trackers=1]
Processed Story Blocks: 100%|██████████| 19/19 [00:00<00:00, 284.42it/s, # trackers=16]
Processed Story Blocks: 100%|██████████| 19/19 [00:00<00:00, 227.21it/s, # trackers=15]
Processed Story Blocks: 100%|██████████| 19/19 [00:00<00:00, 190.55it/s, # trackers=18]
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-9-ec4aa28a3bd6> in <module>
     13     training_data,
     14     validation_split=0.1,
---> 15     epochs = 10
     16 )
     17 

/usr/local/lib/python3.6/site-packages/rasa_core/agent.py in train(self, training_trackers, **kwargs)
    499         if kwargs.get('epochs') or kwargs.get('max_history') or kwargs.get(
    500                 'batch_size'):
--> 501             raise Exception("Passing policy configuration parameters "
    502                             "to `agent.train(...)` is not supported "
    503                             "anymore. Specify parameters directly in the "

Exception: Passing policy configuration parameters to `agent.train(...)` is not supported anymore. Specify parameters directly in the policy configuration instead. More info https://rasa.com/docs/core/migrations.html

Ao remover o argumento das epochs, o problema é resolvido, mas são usadas 100 epochs para treinar o agente.

agent.train(
    training_data,
    validation_split=0.1
)

Na chunk seguinte há outro erro

!{python} -m rasa_core.evaluate -d models/dialogue -s ../../bot/data/stories -o matrix.pdf --failed 
failed_stories.md
/usr/local/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
usage: evaluate.py [-h] {default,compare} ...
evaluate.py: error: unrecognized arguments: -d models/dialogue --failed failed_stories.md

As versões usadas são:
rasa_nlu: 0.14.1 rasa_core: 0.13.1

Permitir criar um canal de conversa pela API

Criar um endpoint na API do Rasa para criar um canal de comunição (novo id de conversa).

Problema: hoje o rasa só permite acesso à uma conversa via API via ID ou \default. Para que diferentes bots possam "compartilhar" conteúdo, há a necessidade de criar um canal de conversa via api de forma segura

Traduzir intents gerais

Existem intents com títulos em inglês usadas nos arquivos domain.yml e aleatorio.md nos arquivos de intents e stories. É necessário traduzi-los para português para manter o padrão do projeto.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.