Home Bot de ChatGPT no Telegram
Post
Cancelar

Bot de ChatGPT no Telegram

ChatGPT

“O OpenAI ChatGPT é uma ferramenta de inteligência artificial (IA) projetada pela OpenAI para gerar conversas humanas em tempo real. O ChatGPT usa um modelo de linguagem natural de última geração treinado em grandes quantidades de texto na internet para fornecer uma experiência de chatbot de alto nível. O sistema pode responder a perguntas, entender comandos e seguir tópicos de conversa, com habilidade suficiente para gerar respostas fluídas e coherentemente humanas. O OpenAI ChatGPT representa um passo significativo no futuro da IA e da comunicação humana” 1.

Bot no Telegram

Um bot no Telegram nada mais é que um programa de computador que segue uma receita de funcionamento, um algoritmo. Para funcionar é necessário que seu robô interaja com os servidores do Telegram. As instruções de como esta comunicação é feita é chamada de API, que pode ser entendida como uma interface de programação de aplicação, disponível em https://core.telegram.org/bots/api. Leia mais

Requisitos

Chave da OpenAI

A chave da OpenAI é facilmente gerada. Tendo uma conta no site da OpenAI, clique em Personal (canto superior direito) e, em seguida, em View API Keys. Crie uma chave clicando em Create new secret key.

Token do bot

Para se comunicar com o Telegram, crie um bot, caso já não possua um, falando com o @BotFather. Envie o comando /newbot e siga as instruções.

Instalação

Para criar o seu bot com ChatGPT, basta clonar o repositório ChatGPT-Telegram-Bot e seguir o passo a passo do post que explica como ter um bot na Amazon. Repare que o arquivo serverless.yml já está criado e pronto para ser usado.

Como o uso da API do ChatGPT é pago2, é necessário definir quais identificadores do Telegram3 serão respondidos pelo bot. Este controle é feito pela variável USERID, que pode conter uma lista de IDs de pessoas ou mesmo o ID de um grupo. Ou seja, no segundo caso, todos os membros do grupo serão capazes de interagir com o bot.

Consulte os preços e plano grátis de testes da API no site oficial.

Por fim, defina os valores das variáveis de ambiente necessárias para o funcionamento do bot.

1
2
3
export TOKEN=<TOKEN DO BOT>
export CHATGPTKEY=<CHAVE DO CHATGPT>
export USERID=<ID DE USUÁRIO>

Execução

Finalmente, com todos os ajustes feitos, execute o comando abaixo para que o bot seja criado na Amazon.

1
serverless deploy

No fim da instalação, não esqueça de definir o webhook usando

1
python setWebhook.py <URL DO BOT NA AMAZON>

Pronto. Seu bot deve estar funcionando.

Bot em funcionamento
Bot em funcionamento

Código

Função ask_chatgpt

A função ask_chatgpt é responsável pelas consultas à API da OpenAI. É ela que envia a mensagem e recebe a resposta. A mensagem é enviada com role: user, indicando que são as mensagens enviadas pelo usuário. Já as respostas são armazenadas com role: assistant, pois são as respostas recebidas pelo assistente. É importante armazenar o histórico de mensagens para ser mantido o contexto da conversa. Caso o contexto não seja mantido (linhas 12 e 20), a cada mensagem o bot irá se comportar como se fosse novo, como se não houvesse conversa anterior.

Parâmetros da OpenAI

  • model: Identificador do modelo usado. Cada modelo possui um custo e uma finalidade específica. Valor padrão: gpt-3.5-turbo;
  • messages: Lista de mensagens contidas na conversa;
  • n: Quantas respostas serão geradas. Valor padrão: 1;
  • temperature: Nível de aleatoriedade da resposta, variando de 0 a 2, sendo zero de maior aleatoriedade e dois de menor aleatoriedade. Valor padrão: 1;
  • max_tokens: O tamanho máximo em tokens usado em cada interação. Valor padrão 1024.

Para mais informações, consulte a API oficial.

Função clean_context

Ao receber o comando /start o bot irá limpar o histórico da conversa, perdendo todo o contexto que possui. Pode ser útil para fins de manter o custo do bot baixo.

Função message_received

Todas as mensagens, com exceção do comando /start, entram nesta função, que irá chamar a função ask_chatgpt usando o conteúdo da mensagem recebida como parâmetro.

Função hello_http

Função responsável pelo funcionamento do webhook.

Caso queira executar o bot usando polling, remova toda esta função e acrescente ao código a linha:

1
bot.infinity_polling()
  1. Este texto foi elaborado pelo próprio bot usando o ChatGPT. 

  2. Consulte os preços e planos, além do plano grátis (de testes), no site oficial

  3. Leia mais em https://blog.gabrf.com/posts/TelegramID/ 

Esta postagem está licenciada sob CC BY 4.0 pelo autor.