{"id":21701087,"url":"https://github.com/renatoelho/criando-bots-telegram","last_synced_at":"2026-02-14T19:01:53.652Z","repository":{"id":157801879,"uuid":"625899694","full_name":"Renatoelho/criando-bots-telegram","owner":"Renatoelho","description":"Crie seu próprio bot personalizado e comece a interagir com os usuários no Telegram de maneira única e criativa. Seja para fins de automação, entretenimento ou utilidade, este repositório é o seu ponto de partida para dominar o desenvolvimento de bots com Python para o Telegram.","archived":false,"fork":false,"pushed_at":"2023-04-15T08:12:42.000Z","size":4627,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-14T01:41:04.468Z","etag":null,"topics":["bots","chatgpt","docker","docker-compose","mysql","nifi","python","redis","telegram"],"latest_commit_sha":null,"homepage":"https://renato.tec.br/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Renatoelho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-10T11:02:59.000Z","updated_at":"2025-03-15T22:18:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef03df43-aff4-4054-a110-e811942dc823","html_url":"https://github.com/Renatoelho/criando-bots-telegram","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Renatoelho/criando-bots-telegram","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcriando-bots-telegram","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcriando-bots-telegram/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcriando-bots-telegram/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcriando-bots-telegram/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Renatoelho","download_url":"https://codeload.github.com/Renatoelho/criando-bots-telegram/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fcriando-bots-telegram/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29452586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bots","chatgpt","docker","docker-compose","mysql","nifi","python","redis","telegram"],"created_at":"2024-11-25T20:18:00.669Z","updated_at":"2026-02-14T19:01:53.627Z","avatar_url":"https://github.com/Renatoelho.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Bot Telegram\n\n![Fluxo de Desenvolvimento - Bot Telegram](bot01/deploy/fluxo-bot-telegram.png)\n\n\u003e ***Obs.:*** Este repositório é apenas para fins educacionais e não deve ser usado em ambientes produtivos, pois isso pode levar a problemas de segurança, estabilidade e desempenho.\n\n\n# Requisitos para implementação\n\n- Ubuntu 20.04 (Host)\n\n- Docker 23.0.3 (Host)\n\n- Docker-Compose 1.25.0 (Host)\n\n- Git 2.25.1 ou superior (Host) \n\n- Python 3.8 ou superior (contêiner)\n\n- Apache Nifi 1.19.0 (contêiner)\n\n- MySQL 5.7.40 (contêiner)\n\n- Redis 7.0.10 (contêiner)\n\n\u003e ***Obs.:*** Importante ter 8 GB de RAM ou mais para essa implementação.\n\n# Passos da implementação\n\n#### Passo 0 - Clonar o repositório do projeto para sua máquina\n\n```bash\ngit clone https://github.com/Renatoelho/criando-bots-telegram.git \"criando-bots-telegram\"\n```\n\n***Obs.:*** Escolha um diretório em que você tenha permissões de leitura, escrita e execução completas.\n\n\n#### Passo 1 - Criando um bot no Telegram\n\n- Abra o Telegram e pesquise por \"BotFather\".\n\n- Inicie uma conversa com o BotFather e envie o comando \"/newbot\".\n\n- Siga as instruções do BotFather para dar um nome e um username ao seu bot.\n\n- O BotFather irá gerar uma API token para o seu bot. Anote essa chave, pois ela será necessária para conectar seu bot ao Telegram.\n\n\u003e ***Lembre-se*** de que existem diversas funcionalidades que podem ser adicionadas ao seu bot, como respostas automáticas, integração com outras plataformas, criação de comandos personalizados, entre outras. \n\n\n#### Passo 2 - Criando o Token do ChatGPT\n\n- Acesse o site da OpenAI (https://openai.com/) e crie uma conta.\n\n- Após criar sua conta, acesse a página de gerenciamento de API Keys (https://beta.openai.com/docs/api-reference/authentication).\n\n- Clique no botão ***\"Create new API key\"*** para gerar uma nova chave.\n\n- Você precisará fornecer um nome descritivo para a chave que está criando.\n\n- Após criar sua chave, você poderá visualizá-la e gerenciá-la na página de gerenciamento de API Keys.\n\n\u003e ***Importante*** ressaltar que cada modelo da OpenAI tem suas próprias diretrizes e restrições de uso, e você deve seguir as políticas de uso aceitável para cada modelo.\n\n\n#### Passo 3 - Atualize o arquivo de parâmetros\n\nAcesse o arquivo ***'.env'*** e atualize com os Tokens criados.\n\n```text\nTOKEN_TELEGRAM=\u003cSeu Token do Bot Telegram\u003e\nTOKEN_CHATGPT3=\u003cSeu Token do ChatGPT\u003e\n```\n\n#### Passo 4 - Criando a imagem Docker para o Bot Telegram\n\n```bash\ncd criando-bots-telegram/bot01\n```\n\n```bash\ndocker build -f dockerfile -t bot-app:0.0.1 .\n```\n\n#### Passo 5 - Criando volumes e configurando permissões para aplicação Bot Telegram\n\n- Criando o volume do Bot Telegram\n\n```bash\ndocker volume create --name=bot-dados-telebot\n```\n\n```bash\ndocker volume create --name=bot-dados-mysql\n```\n\n- Alterando as permissões de acesso ao diretório do volume 'bot-dados-telebot'\n\n```bash\nsudo chmod 766 /var/lib/docker/volumes/bot-dados-telebot/_data\n```\n\n\u003e ***Obs.:*** Como o volume 'bot-dados-telebot' será compartilhado entre o contêiner com aplicação em Python e o contêiner com o Apache Nifi, foi necessário alterar as permissões de leitura e escrita para que ambos tenham acesso adequado.\n\n\n#### Passo 6 - UP dos Serviços via Docker-Compose\n\n```bash\ncd criando-bots-telegram/\n```\n\n```bash\ndocker-compose -f docker-compose.yaml --compatibility up -d \u0026\u0026 docker cp bot01/deploy/mysql-connector-j-8.0.31.jar bot-nifi:/home/nifi\n```\n\n![UP dos Serviços via Docker-Compose](bot01/deploy/servicos-docker-compose-up.png)\n\n\u003e ***Obs.:*** O Driver JDBC que será utilizado no Apache Nifi será enviado para o contêiner através do comando 'docker cp...', não sendo a melhor maneira, mas sim a mais prática.\n\n\n#### Passo 7 -  Configurações Finais - Apache Nifi\n\nPara configurar o fluxo do Apache Nifi que captura as interações dos usuários com o bot e, em seguida, grava no banco de dados, os seguintes passos devem ser executados:\n\n- Acesse via navegador o endereço: https://localhost:8443/nifi/\n\n\u003e ***Obs.:*** usuário e senha do Apache Nifi estão no arquivo ***'docke-compose.yaml'***\n\n- Importe o Flow existente na pasta ***'deploy'*** como um novo template.\n\n\u003e ***Obs.:*** arquivo ***'FLOW_CAPTURA_INTERACOES_BOT_TELEGRAM_....xml'***\n\n- Adicione a senha do MySQL no controle service: ***'Servidor MySQL - Central'***\n\n\u003e ***Obs.:*** senha do MySQL está no arquivo ***'docke-compose.yaml'***\n\n- Ative todo o Flow clicando em ***'Start'***.\n\n#### Flow Apache Nifi\n\n![Flow Apache Nifi Parte 1](bot01/deploy/flow-apache-nifi-parte1.png)\n\n![Flow Apache Nifi Parte 2](bot01/deploy/flow-apache-nifi-parte2.png)\n\n\n# Resultado da Implementação\n\nO bot foi implementado com 5 comandos, cada um com 2 possíveis respostas. Além disso, ele é capaz de interpretar o significado das interações, identificando se é uma saudação ou uma pergunta. Para essa funcionalidade, estamos utilizando a API da ***OpenAI (ChatGPT)***. Para evitar respostas repetitivas, todas as interações são armazenadas no ***Redis*** por um período de 24 horas.\n\n![Interação bot](bot01/deploy/interacao-bot.png)\n\nOs comandos são customizáveis e é possível adicionar novos, além de expandir a interpretação das interações para outras possibilidades.\n\n\n#### Down dos Serviços via Docker-Compose\n\n```bash\ndocker-compose -f docker-compose.yaml --compatibility down\n```\n\n![Down dos Serviços via Docker-Compose](bot01/deploy/servicos-docker-compose-down.png)\n\n# Considerações Finais\n\nAo final deste processo, você terá criado uma aplicação estruturada que utiliza as principais tecnologias e ferramentas existentes atualmente. Embora este seja um ambiente não produtivo, é válido para você entender como é feita a implementação e orquestração de tantas soluções para serem executadas em conjunto em busca de um determinado propósito.\n\n\n# Referências:\n\nPython, **python.org**. Disponível em: \u003chttps://www.python.org/\u003e. Acesso em: 6 abril de 2023.\n\nTelebot, **KyleJamesWalker**. Disponível em: \u003chttps://github.com/KyleJamesWalker/telebot\u003e. Acesso em: 7 abril de 2023.\n\nTelebot, **Pypi.org**. Disponível em: \u003chttps://pypi.org/project/telebot/\u003e. Acesso em: 6 abril de 2023.\n\nInstall Docker Engine on Ubuntu, **Docker Docs**. Disponível em: \u003chttps://docs.docker.com/engine/install/ubuntu/\u003e. Acesso em: 9 abril de 2023.\n\nDocker Compose overview, **Docker Docs**. Disponível em: \u003chttps://docs.docker.com/compose/\u003e. Acesso em: 6 abril de 2023.\n\nIntroduction, **OpenAI**. Disponível em: \u003chttps://platform.openai.com/docs/api-reference\u003e. Acesso em: 5 abril de 2023.\n\nApache NiFi Overview, **Apache Nifi**. Disponível em: \u003chttps://nifi.apache.org/docs.html\u003e. Acesso em: 6 abril de 2023.\n\nApache Nifi, **Docker Hub**. Disponível em: \u003chttps://hub.docker.com/r/apache/nifi\u003e. Acesso em: 6 abril de 2023.\n\nredis-py - Python Client for Redis, **Redis**. Disponível em: \u003chttps://redis-py.readthedocs.io/en/stable/index.html\u003e. Acesso em: 6 abril de 2023.\n\nRedis, **Docker Hub**. Disponível em: \u003chttps://hub.docker.com/_/redis\u003e. Acesso em: 6 abril de 2023.\n\nMySQL, **MySQL**. Disponível em: \u003chttps://www.mysql.com/\u003e. Acesso em: 6 abril de 2023.\n\nMySQL, **Docker Hub**. Disponível em: \u003chttps://hub.docker.com/_/mysql\u003e. Acesso em: 6 abril de 2023.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fcriando-bots-telegram","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenatoelho%2Fcriando-bots-telegram","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fcriando-bots-telegram/lists"}