Implement message splitting for messages exceeding Telegram's 4096 character limit. Update header branding, increase max_tokens to 4000, adjust END_HOUR to 20, update default AI model, and revise documentation to reflect channel setup instead of groups.
5.0 KiB
ThorAgentIA
Sistema automatizado de envio de insights via Telegram, utilizando inteligência artificial para gerar conteúdo sobre diversos temas relevantes para negócios, marketing, desenvolvimento pessoal e gestão empresarial.
Funcionalidades
- Gera insights profundos em português brasileiro sobre temas pré-definidos.
- Envia automaticamente os insights para um canal do Telegram.
- Opera em horários configuráveis (padrão: 07:00 às 22:00).
- Funciona de segunda a domingo (dias configuráveis).
- Intervalo entre envios configurável.
- Seleção aleatória de tópicos cadastrados.
- Suporte a múltiplos provedores de IA: OpenAI, OpenRouter, StepFun ou LlamaCPP local.
Pré-requisitos
- Python 3.10 ou superior
- Chave de API de IA: OpenAI, OpenRouter, StepFun ou LlamaCPP local
- Bot criado no Telegram via BotFather
- Sistema Linux (Debian 12 recomendado)
Configuração
- Configure o arquivo
.envcom seus dados:
TELEGRAM_BOT_TOKEN=seu_token_bot_telegram
TELEGRAM_CHAT_ID=seu_chat_id
INTERVAL_MINUTES=60
START_HOUR=7
END_HOUR=22
TOPICS=Marketing,Negócios,Lei da Atração,...
# Provedor preferencial: OpenRouter
OPENROUTER_API_KEY=sua_chave_openrouter
OPENROUTER_MODEL=inclusionai/ling-3.0-tiny:free
# Alternativa: StepFun
STEPFUN_BASE_URL=https://api.stepfun.ai/step_plan/v1/
STEPFUN_API_KEY=sua_chave_stepfun
STEPFUN_MODEL=step-3.7-flash
# Alternativa: LlamaCPP local
LLAMACPP_BASE_URL=http://localhost:8080/v1/
LLAMACPP_API_KEY=not-needed
LLAMACPP_MODEL=qwen2.5-coder-3b-instruct-q4_k_m.gguf
-
Crie um bot no Telegram via @BotFather e obtenha o token.
-
Obtenha o identificador do canal após adicionar o bot como administrador no canal. Use o username do canal no formato
@nome_do_canalou o ID numérico-100xxxxxxxxxx. Para descobrir o ID, consulte a seção "Descobrindo o chat ID do canal" abaixo.
Instalação
chmod +x iniciar.sh
./iniciar.sh
O script irá:
- Criar o ambiente virtual Python
- Instalar todas as dependências
- Preparar o sistema para execução
Execução
source venv/bin/activate
python3 main.py
Para rodar como serviço em background no Linux, utilize systemd ou screen/tmux.
Variáveis de Ambiente
| Variável | Descrição | Padrão |
|---|---|---|
OPENAI_API_KEY |
Chave da API da OpenAI | opcional |
OPENROUTER_API_KEY |
Chave da API OpenRouter | opcional |
OPENROUTER_MODEL |
Modelo no OpenRouter | inclusionai/ling-3.0-tiny:free |
STEPFUN_BASE_URL |
URL base StepFun | https://api.stepfun.ai/step_plan/v1/ |
STEPFUN_API_KEY |
Chave StepFun | opcional |
STEPFUN_MODEL |
Modelo StepFun | step-3.7-flash |
LLAMACPP_BASE_URL |
URL base LlamaCPP | http://localhost:8080/v1/ |
LLAMACPP_API_KEY |
Chave LlamaCPP | not-needed |
LLAMACPP_MODEL |
Modelo LlamaCPP | qwen2.5-coder-3b-instruct-q4_k_m.gguf |
DEFAULT_AI_MODEL |
Modelo usado quando houver apenas OpenAI | gpt-4o-mini |
TELEGRAM_BOT_TOKEN |
Token do bot Telegram | obrigatório |
TELEGRAM_CHAT_ID |
Username do canal (ex: @nome_do_canal) ou ID numérico (ex: -100xxxxxxxxxx) |
obrigatório |
INTERVAL_MINUTES |
Intervalo entre envios (minutos) | 60 |
START_HOUR |
Hora inicial de funcionamento | 7 |
END_HOUR |
Hora final de funcionamento | 22 |
DAYS_OF_WEEK |
Dias permitidos (1=Seg, 7=Dom) | 1,2,3,4,5,6,7 |
TOPICS |
Lista de tópicos separados por vírgula | ver .env |
LANGUAGE |
Idioma dos insights | pt-BR |
MIN_LINES |
Mínimo de linhas por insight | 20 |
Prioridade de provedor: OpenRouter > StepFun > LlamaCPP > OpenAI
Estrutura do Projeto
ThorAgenteIA/
├── .env # Configurações sensíveis (não versionar)
├── .gitignore
├── iniciar.sh # Script de setup automático
├── main.py # Código principal
├── requirements.txt # Dependências Python
├── RULES.md # Regras para IA coder
└── README.md # Documentação
Descobrindo o chat ID do canal
Após adicionar o bot como administrador no canal, use um dos métodos abaixo:
Método 1: Usando o username
Se o canal tiver um username público, basta usar o formato @nome_do_canal em TELEGRAM_CHAT_ID.
Método 2: Usando o ID numérico
- Envie qualquer mensagem do canal para o bot ou adicione o bot ao canal.
- Consulte as atualizações com:
python3 -c "
import requests, os
from dotenv import load_dotenv
load_dotenv()
token = os.getenv('TELEGRAM_BOT_TOKEN')
r = requests.get(f'https://api.telegram.org/bot{token}/getUpdates', timeout=15)
print(r.text)
"
- Procure por
"chat":{"id":-100xxxxxxxxxxnas mensagens relacionadas ao canal.
Solução de Problemas
- Erro de API Key: Verifique se pelo menos um provedor está configurado no
.env. - Mensagem não enviada: Confira o token do bot e o identificador do canal.
- Horário incorreto: Verifique o fuso horário do servidor Linux.
- Bot sem permissão no canal: Certifique-se de que o bot é administrador do canal com permissão para postar mensagens.