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.
145 lines
5.0 KiB
Markdown
145 lines
5.0 KiB
Markdown
# 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.
|