ImgBot: Um Bot para Telegram que Gera Imagens

Não é novidade para ninguém que a IA (Inteligência Artificial) vem se tornando cada dia mais parte do nosso cotidiano. Assistentes virtuais, algoritmos de recomendação e carros autônomos são alguns exemplos de aplicações da IA que já são utilizadas por diversas pessoas ao redor do mundo. Com a inserção dessas novas tecnologias e as facilidades proporcionadas por elas, o ser humano parece não querer mais viver sem as “coisas inteligentes” (Tem gente que não vive mais sem gritar “Alexa!” por aí. kkkk).

Dentro desse contexto de uso da IA, na virada do ano 2022 para 2023, o ChatGPT tomou conta das manchetes de blogs e portais de notícias. O ChatGPT foi criado pela OpenAI e é um modelo de IA que interage com o usuário na forma de diálogo. Basicamente, o usuário inicia uma conversa no formato de chat e as respostas são geradas de acordo com a base de conhecimento que ele processa sobre o assunto.

De carona com o ChatGPT, foram sendo lançadas e ganharam relevância outras ferramentas de IA com a habilidade de conversação em linguagem natural e que geram respostas no formato de textos ou imagens, como é o caso do Google Bard e do MidJourney.

No caso do MidJourney, que é um bot, a conversação é iniciada via Discord e o usuário descreve, em inglês, como a imagem a ser gerada deve ser. A partir dessa descrição, esse bot cria 4 imagens e as exibe ao usuário, dando a possibilidade da realização do download desse resultado.

Depois dessa introdução toda… Que tal criarmos um bot com características semelhantes ao MidJourney só que voltado para o Telegram? O nosso ImgBot!

Para criarmos o ImgBot, a primeira etapa é encontrar uma API que receba uma descrição como entrada e retorne uma imagem como saída. Uma das API que possuem essa proposta é a DALL-E 2 da OpenAI. Essa API é um sistema de IA que pode criar imagens e artes realistas a partir de uma descrição em linguagem natural.

O uso da DALL-E 2 é gratuito, porém possui limite de créditos grátis, os quais podem ser adicionados mediante pagamento. Para fazer uso dela é preciso criar uma conta no site da OpenAI e criar uma API key para as requisições. Com a API key criada, basta fazer a requisição no formato abaixo:

A resposta da requisição acima será enviada pela DALL-E 2 no formato JSON da seguinte forma:

Agora que já conseguimos fazer as requisições, podemos partir para a codificação do ImgBot no Telegram. O código-fonte do nosso bot irá receber como entrada a mensagem do usuário contendo a descrição da imagem que deve ser gerada, fará a chamada à DALL-E 2 e retornará a imagem.

Como todo o processo de criação, tratamento de mensagem recebida e o envio de imagens por um bot do Telegram já foram abordados aqui no blog, não vou detalhar todas as etapas. Dessa forma, irei apenas descrever algumas observações sobre o código-fonte do ImgBot, o qual pode ser visto abaixo:

Como é possível ver no código-fonte acima, na linha 34, existe no método requestImage, o qual recebe os parâmetros, submete a requisição no formato Json e recebe a resposta da DALL-E 2. Dentre os parâmetros enviados na requisição estão a descrição (prompt), o número de imagens a serem geradas (n) e o tamanho (size).

A resposta obtida a partir do requestImage é enviada ao usuário por meio do método sendPhoto da API do Telegram na linha 25 do código.

Agora que a nossa implementação está pronta, podemos testar o ImgBot e ver como ele se comporta. É importante observar que o bot pode demorar um pouco a responder, uma vez que o tempo de resposta depende do processo geração da imagem descrita pelo usuário.

Bom, é isso!

Caso você queira testar o bot, acesse: https://t.me/example_img_bot

Para visualizar o código-fonte completo do bot que foi desenvolvido neste tutorial, acesse: Img Bot.

O bot desenvolvido neste tutorial foi hospedado na Umbler.

E aí gostou do post? Ficou com alguma dúvida? Então, deixe um comentário!

Deixe um comentário