Executando verificação de segurança...
1
marcus
3 min de leitura ·

tabnews_bot: chat bot para Telegram que usa a API do tabnews (Golang + GitHub Copliot)

Saudações pessoal,

Esse é meu primeiro post e gostaria de dividir minha experiência construindo um chatBOT em Golang utilizando o Github Copilot.

Trata-se de um chatbot simples que permite ao usuário acessar os 10 posts recentes, relevantes ou antigos. É possível ler os artigos dentro do próprio Telegram e acredito que há outras possibilidades para implementarmos.

Antes de contar minha experiência gostaria de saber como está o uso do GH Copilot na empresa ou nos estudos de vocês.

Por que construir um chatbot? A ideia é aprender Golang e já havia tido contato com a API de Bots do Telegram e pensei em unir o útil ao agradável. Creio que a API de bots do Telegram oferece inúmeras possibilidades para negócios em geral por ser simples de usar e de ir do zero a produção.

Logo no início do projeto decidi começar pela API de bots do Telegram, embora não cheguei a implementar minha própria lib para consumir a API do Telegram, achei interessante testar o Copilot: como as APIs do Telegram são publicas bastou apenas alguns comentários em um arquivo .go vazio e foi possível criar inúmeros "dtos" para enviar mensagens, links, arquivos, etc. É surreal os detalhes que ele propõe, mas nem tudo são flores.

Algumas sugestões do Copilot possuiam alguns erros como campos com nomes incorretos ou no mapeamento em JSON, ou as vezes um pequeno loop de ficar repetindo alguns campos, coisa simples para nos lembrar que nós somos o piloto. Um outro exemplo bem interessante foi quando coloquei um cache em memória no projeto. O robo já detectou que eu estava em um pacote de cache e começou a me sugerir uma implementação exatamente do que eu estava precisando, embora mais uma vez a ferramenta de IA começou a sugerir algumas coisas estranhas como construtores diferentes que faziam a mesma coisa.

Sobre a linguagem não há muito o que falar. É uma ferramenta interessante e qualquer outra resolveria esse problema. Pra mim está sendo legal aprender a usar Go de um jeito mais "nativo" sem depender de frameworks, isso com certeza vai me ajudar em qualquer outra linguagem a refletir sobre como eu resolverei outros problemas, creio que é importante em nossa área conhecer como as coisas funcionam por "baixo dos panos". Esses dias estava pesquisando sobre o http.Client do Go e foi bem interessante entender seu funcionando e aprofundar em alguns detalhes para otimizar requisições http e como eu venho do mundo Java (SpringBoot) então foi interessante sair do meu "mundinho" e comparar como ambas as linguagens resolvem o mesmo problema.

Por fim, graças a API do tabnews foi possível criar esse pequeno projeto de estudos. Aprecio indicações de estudos relacionadas ao Golang. Ahhh e sobre o Copilot, acredito fortemente que vai mudar a forma como trabalhamos... é bem interessante utiliza-lo como nosso par de programação, creio que com o seu uso é possível aumentar a produtividade principalmente em tarefas como: mapear "dtos", criar de endpoints HTTP,
consumir serviços externos que já são bem conhecidos, ler e processar arquivos e por ai vai...o mais importante, nós estaremos no Piloto.

Carregando publicação patrocinada...
1