# 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 1. **Configure o arquivo `.env`** com seus dados: ```env 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 ``` 2. **Crie um bot no Telegram** via @BotFather e obtenha o token. 3. **Obtenha o identificador do canal** após adicionar o bot como administrador no canal. Use o username do canal no formato `@nome_do_canal` ou o ID numérico `-100xxxxxxxxxx`. Para descobrir o ID, consulte a seção "Descobrindo o chat ID do canal" abaixo. ## Instalação ```bash 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 ```bash 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 1. Envie qualquer mensagem do canal para o bot ou adicione o bot ao canal. 2. Consulte as atualizações com: ```bash 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) " ``` 3. Procure por `"chat":{"id":-100xxxxxxxxxx` nas 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.