Code Monkey home page Code Monkey logo

Comments (12)

pablodiegoss avatar pablodiegoss commented on June 3, 2024 2

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.

pablodiegoss avatar pablodiegoss commented on June 3, 2024 1

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.

pablodiegoss avatar pablodiegoss commented on June 3, 2024 1

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.

pablodiegoss avatar pablodiegoss commented on June 3, 2024 1

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.

LeoSilvaGomes-zz avatar LeoSilvaGomes-zz commented on June 3, 2024 1

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.

LeoSilvaGomes-zz avatar LeoSilvaGomes-zz commented on June 3, 2024

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.

LeoSilvaGomes-zz avatar LeoSilvaGomes-zz commented on June 3, 2024

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.

arthurTemporim avatar arthurTemporim commented on June 3, 2024

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

arthurTemporim avatar arthurTemporim commented on June 3, 2024

Olhei o Lappisudo e tenho algumas considerações:

  • Por que no Lappisudo a pasta bot foi apagada e no boilerplate não?
    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?

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

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

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

from rasa-ptbr-boilerplate.

arthurTemporim avatar arthurTemporim commented on June 3, 2024

Link do PR aqui: #68

from rasa-ptbr-boilerplate.

arthurTemporim avatar arthurTemporim commented on June 3, 2024

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.

victorcmoura avatar victorcmoura commented on June 3, 2024

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)

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.