Comments (12)
MASSA!
Vou comentar ponto a ponto o que tenho.
* Por que no `Lappisudo` a pasta `bot` foi apagada e no `boilerplate` não?
É uma prova de conceito, pois com a nova configuração daria pra fazer um bot simples sem necessariamente fazer um fork do boilerplate, apenas utilizando o bot de lá como serviço e imagem docker no compose. E caso a pessoa queira evoluir o especificamente o bot, aí sim, forkar o boilerplate e teria a pasta bot pra ser evoluido.
No caso do lappisudo, nossa ideia é ter só conteudo do lappis mesmo, melhor não ter as coisas específicas do bot, já deixei como essa versão 'clean'.
O `boilerplete` vai conter todos os arquivos de configurações e um bot que herdar do boilerplate não vai ter os aquivos dessa pasta, certo?
Isso, separei no coach inclusive uma pasta base_config que é padrão, um coach filho só precisa ou pode sobrescrever a pasta config. A base_config é oculta dele, com padrões tipo makefiles, train.py e arquivos normalmente não modificados por ninguém que vai utilizar um coach.
* Como que faz pra atualizar um bot filho? Por exemplo, quero conectar meu bot no `slack` mas preciso do arquivo `endpoint.yml` pra isso como faz em um bot que herda do `boilerplate`?
Esse é um caso que eu não tenho certeza ainda e podia ver com você, mas o que eu pensei é conseguirmos configurar estes canais apenas por variáveis de ambiente. Se alguém quiser contribuir adicionando um novo canal pro bot, faria direto no boilerplate mesmo, centralizando as evoluções do bot todas no boilerplate.
Hoje já temos os make run-**** que rodam determinados conectores e o bot.env que configura os canais do rocket, pensei em manter essa ideia pra todos os canais.
* Como faz pra executar o próprio `Lappisudo` na `RocketChat` ou `Telegram` com essa configuração? Só precisa atualizar o `command` do `docker-compose`, certo?
Exatamente
* Pra criar um bot do 0 com essa configiuração o mais importante é a pasta `data/` e o `docker-compose`, com isso da pra ter um bot Rasa?
Exatamente (2). Um serviço coach com a pasta data e config (já que as policies lá e nlu_config são bem mutáveis também pelo que entendo), mas além disso só o compose com o bot, coach e as variáveis de ambiente.
from rasa-ptbr-boilerplate.
Essa issue foi priorizada para definitivamente desacoplar o treinamento das modelos e o bot.
A estratégia planejada para execução desta tarefa é a transformação do bot em um serviço isolado, configurado através de variáveis de ambiente. E o que chamamos de Coach hoje ser transformado em um serviço similar a um banco de dados, porém, como nossos "dados" são os arquivos de model, será então um servidor ftp acessível para o bot via hostname ou URL.
A proposta então é transformar o nosso uso do Bot a um serviço mais próximo então de um modelo servidor web + database, onde teremos então o Bot stateless e os modelos que utiliza para conversar armazenados em outro serviço.
Estas modificações devem permitir remover as implementações do bot de todos os outros repositórios e apenas utilizarem a imagem provida por este projeto. Cada bot então terá apenas a implementação das suas intents, stories e utters.
from rasa-ptbr-boilerplate.
Solução sendo trabalhada na branch: ploc-v3
Coach agora realiza a compactação das models geradas através do tar.gz e já permite o acesso através da url: http://<localhost>/models.tar.gz
O checksum desse arquivo para verificação de consistencia futura está fornecido também pelo Coach em http://<localhost>/version
from rasa-ptbr-boilerplate.
Terminamos as mudanças do coach para que seja extensível e configurável para usuários que desejarem. Publiquei as imagens no meu dockerhub pessoal para podermos realizar testes nos outros repositórios, essas imagens são: pablodiegoss/bot:boilerplate e pablodiegoss/coach:boilerplate
Então prosseguimos para o repositório do lappisudo. Lá criamos uma branch ploc_validation onde montamos a estrutura de um bot utilizando essas novas imagens para prova de conceito, lá removemos a implementação do bot e no coach apenas fornecemos os dados (intents, stories e utters) e as configurações de nlu e policy.
@arthurTemporim pode verificar o progresso lá no lappisudo? Para mergear essas modificações aqui no boilerplate é necessário modificar o pipeline um pouco para publicar as novas imagens e atualizar a documentação. Mas gostaria de um feedback antes de sair concluindo tudo já que essas mudanças acabam mudando a forma que o boilerplate funciona e como as pessoas podem criar seus bots.
from rasa-ptbr-boilerplate.
Para ser implementado ainda não, só as correções que você citou no PR, vamos trabalhar nelas e colocaremos para revisão! @arthurTemporim
from rasa-ptbr-boilerplate.
Foi criado o arquivo model_downloader.py, que verifica a existência do arquivo models.tar.gz e baixa se necessário.
commit: Generate models downloader
from rasa-ptbr-boilerplate.
O bot está preparado para receber remotamente as models de um coach e não mais diretamente via dockerfile.
Agora é possível remover o arquivos de bot do lappisudo e começar os testes dessa nova arquitetura.
from rasa-ptbr-boilerplate.
@pablodiegoss @LeoSilvaGomes Vocês podem criar um Draft PR
dessa branch? Fica bem mais fácil pra ver as mudanças com a devel
.
from rasa-ptbr-boilerplate.
Olhei o Lappisudo e tenho algumas considerações:
-
Por que no
Lappisudo
a pastabot
foi apagada e noboilerplate
não?
Oboilerplete
vai conter todos os arquivos de configurações e um bot que herdar do boilerplate não vai ter os aquivos dessa pasta, certo? -
Como que faz pra atualizar um bot filho? Por exemplo, quero conectar meu bot no
slack
mas preciso do arquivoendpoint.yml
pra isso como faz em um bot que herda doboilerplate
? -
Como faz pra executar o próprio
Lappisudo
naRocketChat
ouTelegram
com essa configuração?
Só precisa atualizar ocommand
dodocker-compose
, certo? -
Pra criar um bot do 0 com essa configiuração o mais importante é a pasta
data/
e odocker-compose
, com isso da pra ter um bot Rasa?
from rasa-ptbr-boilerplate.
Link do PR aqui: #68
from rasa-ptbr-boilerplate.
Bom depois dessas explicações está tudo mais claro pra mim. E parabéns, todas essas evoluções estão MUITO eficientes! Acho super válido e concordo com elas.
- Teremos que fazer um esforço pra colocar CI, testes automatizados, lint checkers e padronizar o máximo
boilerplate
depois que esse PR for mergado. - Também fazer tutoriais e vídeos sobre.
Tem outra grande evolução a caminho que é a #63 to atualizando a versão do Rasa nela, temos que sincronizar os PRs.
Existe algo mais a ser implementado? @pablodiegoss @LeoSilvaGomes
from rasa-ptbr-boilerplate.
Foi decidido que a versão mais enxuta do boilerplate será transferida para outro respositório. Quando este for criado, deve-se referenciar esta issue e fechá-la
from rasa-ptbr-boilerplate.
Related Issues (20)
- Criar workflow para modulo elasticsearch
- Configurar workflow de webchat
- Conector com o twilio
- Atualizar os notebooks com as novas funcionalidades do rasa
- Criar um repositório com Dados de treinamento NLU
- Preparar a documentação pra rodar localmente HOT 1
- Dockerizar pagina do webchat
- Organização de modulos e variaveis de ambiente
- Conhecimento do boilerplate HOT 3
- Problema com o dockerfile para as actions HOT 3
- Loadbalacing para webchat
- Atualização do desenho da arquitetura do projeto HOT 1
- pip legacy-resolver HOT 5
- engineio and socketio versions in Rasa 2.4.1 are out of sync HOT 4
- make validate - Could not load dynamic library 'libcudart.so.10.1'; HOT 1
- ImportError: cannot import name 'json' from 'engineio' HOT 3
- Erro 404 ao tentar acessar tutorial do telegram
- Imagem/Container dos Notebooks não está subindo, devido a uma mudança nos repositórios do debian
- make: *** [Makefile:40: train] Illegal instruction (core dumped)
- AttributeError: module 'aio_pika' has no attribute 'abc' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rasa-ptbr-boilerplate.