O Que e um Assistente de IA Pessoal
Um assistente de IA pessoal e um programa que recebe mensagens suas, pensa usando um modelo de linguagem e executa tarefas. Voce ja conhece o ChatGPT no navegador. A diferenca aqui e que o assistente vive no SEU chat (Telegram), responde 24 horas por dia, e pode fazer coisas de verdade: consultar a previsao do tempo, salvar uma nota, criar um lembrete. Ele nao so conversa: ele age.
🧠 Analogia: O Estagiario que Mora no Chat
Pense num estagiario super dedicado. Voce manda uma mensagem no chat: "ve quanto tempo falta para a reuniao". Ele le, entende, vai checar a agenda e te responde. Voce nao precisa explicar como buscar na agenda: ele sabe. Seu assistente de IA e exatamente isso, mas digital e disponivel a qualquer hora.
- •Voce manda: uma mensagem em linguagem natural ("resume esse texto pra mim")
- •Ele pensa: o modelo de IA interpreta o que voce quer
- •Ele age: usa uma ferramenta (uma "tool") se precisar
- •Ele responde: manda a resposta de volta no chat
💡 Por que "Jarvis"?
Jarvis e o assistente do Homem de Ferro nos filmes: voce fala, ele entende e faz. O seu Jarvis nao vai pilotar uma armadura, mas vai te ajudar no dia a dia. O conceito e o mesmo: um ajudante que escuta em linguagem natural e executa. Voce vai descobrir que montar um e mais simples do que parece: basta juntar tres pecas (um chat, um cerebro e algumas ferramentas).
A Arquitetura Basica
Todo assistente segue o mesmo fluxo de quatro etapas: o bot recebe a mensagem, o modelo de IA pensa, as ferramentas executam, e a resposta volta. Entender esse caminho deixa tudo mais facil, porque cada peca que voce montar nos proximos topicos se encaixa nesse desenho.
👁 As quatro etapas, em ordem
- 1.Recebe: voce manda "que horas sao em Tokyo?" no Telegram. O bot (seu codigo) recebe esse texto.
- 2.Pensa: o bot envia sua mensagem ao modelo de IA. O modelo entende a intencao.
- 3.Executa: se precisar de dados externos, o modelo pede para usar uma ferramenta (ex: consultar a hora).
- 4.Responde: a resposta final volta pelo bot ate o seu chat no Telegram.
💡 Dica: tres pecas, nada mais
No fundo, o assistente todo cabe em tres pecas: o chat (Telegram, onde a conversa acontece), o cerebro (o LLM, que pensa) e as ferramentas (funcoes que executam acoes). Se voce sempre souber em qual peca esta mexendo, nunca vai se perder no codigo.
Criando o Bot no Telegram
O Telegram tem uma forma oficial e gratuita de criar bots: o BotFather. E um bot que cria bots. Voce conversa com ele, da um nome ao seu assistente e recebe um token (uma senha unica que da ao seu codigo o controle do bot). Sem token, seu codigo nao consegue mandar nem receber mensagens.
Abra o BotFather
No Telegram, procure por @BotFather (o oficial tem selo azul de verificado). Clique em "Iniciar".
Crie o bot
Envie o comando e siga as perguntas: nome de exibicao e nome de usuario (precisa terminar em "bot").
/newbot
# BotFather pergunta o nome:
Meu Jarvis
# E o username (deve terminar em "bot"):
meu_jarvis_bot
Guarde o token
O BotFather responde com o token. Ele se parece com isto (copie e guarde com cuidado):
Use this token to access the HTTP API:
7891234567:AAH4k_exemplo-de-token-NAO-use-o-real
Polling (mais simples)
Seu codigo fica perguntando ao Telegram "tem mensagem nova?" de tempos em tempos. Nao precisa de dominio nem HTTPS. Ideal para comecar e para rodar no VPS.
- ✓Roda em qualquer lugar
- ✓Zero configuracao de rede
Webhook (mais avancado)
O Telegram avisa o seu servidor sempre que chega uma mensagem. Mais eficiente, mas exige um endereco publico com HTTPS. Deixe para depois.
- ✓Resposta instantanea
- ✓Menos gasto de rede
⚠️ Erro Comum
Problema: "Colei o token num arquivo e subi pro GitHub. Agora ele vazou."
Solucao: O token e uma senha. Quem tiver ele controla seu bot. Nunca coloque o token direto no codigo nem em repositorio publico. Use um arquivo .env (voce vai ver no topico 6) e adicione .env no .gitignore. Se vazou, fale com o BotFather e use /revoke para gerar um token novo.
Conectando o Cerebro: Claude ou GPT
Agora o seu bot precisa de um cerebro. Em vez de programar regras "se a mensagem for X, responda Y", voce manda a mensagem do usuario para um modelo de IA (Claude da Anthropic ou GPT da OpenAI) e ele devolve a resposta. Tecnicamente, isso e uma chamada de API: seu codigo manda um pedido pela internet e recebe a resposta de volta.
O bot que so responde (sem IA ainda)
Comece simples: receber uma mensagem e repetir. Aqui em Python com a biblioteca python-telegram-bot.
# instalar a biblioteca
$ pip install python-telegram-bot anthropic
import os
from telegram.ext import Application, MessageHandler, filters
async def responder(update, ctx):
texto = update.message.text
await update.message.reply_text("Voce disse: " + texto)
🤖 Agora com o cerebro de IA
Em vez de repetir o texto, voce envia a mensagem para o modelo e devolve o que ele responde. A "API key" e a senha que da acesso ao modelo (sai de console.anthropic.com ou platform.openai.com).
from anthropic import Anthropic
cliente = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
async def responder(update, ctx):
resp = cliente.messages.create(
model="claude-3-5-haiku-latest",
max_tokens=500,
messages=[{"role": "user",
"content": update.message.text}])
texto = resp.content[0].text
await update.message.reply_text(texto)
O prompt e o conteudo que voce manda; a resposta vem em resp.content[0].text.
👁 O que voce vai ver no chat
# Voce no Telegram:
Voce: explica o que e Git em uma frase
# O bot (cerebro de IA) responde:
Jarvis: Git e um sistema que salva o
historico do seu codigo, deixando voce
voltar no tempo e trabalhar em equipe.
💡 Dica: comece pelo modelo barato
Cada chamada de API custa dinheiro (centavos, mas soma). Enquanto voce testa e erra, use um modelo pequeno e barato (como Haiku ou GPT-mini). Quando o assistente estiver redondo, voce troca uma linha (o nome do modelo) para um mais forte. Assim voce nao gasta a toa aprendendo.
Skills e Comandos
Ate aqui seu Jarvis so conversa. Para ele executar acoes, voce cria comandos. No Telegram, comandos comecam com barra: /start, /ajuda, /nota. Cada comando aponta para uma funcao do seu codigo. E o jeito mais simples de dar "skills" (habilidades) ao seu assistente.
Mapeando /comando para uma acao
Voce registra um CommandHandler para cada comando. Quando o usuario digita /nota comprar pao, a funcao recebe o texto e age.
from telegram.ext import CommandHandler
async def cmd_start(update, ctx):
await update.message.reply_text("Ola! Eu sou o Jarvis.")
async def cmd_nota(update, ctx):
texto = " ".join(ctx.args)
salvar_nota(texto) # sua funcao
await update.message.reply_text("Nota salva: " + texto)
app.add_handler(CommandHandler("start", cmd_start))
app.add_handler(CommandHandler("nota", cmd_nota))
👁 O que voce vai ver no chat
Voce: /nota comprar pao e leite
Jarvis: Nota salva: comprar pao e leite
Voce: /ajuda
Jarvis: Comandos: /nota, /tempo, /lembrete
✓ O que FAZER
- ✓Criar sempre um
/ajudaque lista os comandos - ✓Dar nomes curtos e claros (
/tempo,/nota) - ✓Confirmar a acao com uma resposta ("Nota salva")
✗ O que NAO fazer
- ✗Criar 20 comandos antes do bot funcionar
- ✗Nomes confusos (
/xpt2) - ✗Deixar o usuario sem feedback (silencio = parece quebrado)
💡 Dica: comandos no menu do Telegram
Volte ao BotFather e use /setcommands para registrar a lista de comandos. Assim, quando o usuario digita "/" no chat, aparece um menu bonito com os comandos disponiveis. E um detalhe que faz o seu Jarvis parecer profissional.
Deploy: Rodando 24/7 no VPS
Seu Jarvis so responde enquanto o codigo esta rodando. No seu computador, ele para quando voce fecha o terminal ou desliga a maquina. Para responder a qualquer hora, ele precisa morar num VPS (o servidor da Trilha 3) e rodar como um servico do systemd, que liga sozinho e reinicia se cair.
Passo 1: Suba o codigo e crie o .env
No VPS, o arquivo .env guarda os tokens fora do codigo.
$ nano .env
# dentro do arquivo:
TELEGRAM_TOKEN=7891234567:AAH...
ANTHROPIC_API_KEY=sk-ant-...
# e proteja para ninguem ler
$ chmod 600 .env
Passo 2: Crie o servico do systemd
Crie o arquivo /etc/systemd/system/jarvis.service.
[Unit]
Description=Jarvis Bot
After=network.target
[Service]
WorkingDirectory=/home/deploy/jarvis
EnvironmentFile=/home/deploy/jarvis/.env
ExecStart=/usr/bin/python3 bot.py
Restart=always
[Install]
WantedBy=multi-user.target
Passo 3: Ligue e veja rodando
# recarrega a lista de servicos
$ sudo systemctl daemon-reload
# liga agora e tambem no boot
$ sudo systemctl enable --now jarvis
# confere o status
$ sudo systemctl status jarvis
● jarvis.service - Jarvis Bot
Active: active (running)
⚠️ Erro Comum
Problema: "O servico nao sobe e o status diz failed."
Solucao: Quase sempre e caminho errado ou variavel faltando. Veja os logs com journalctl -u jarvis -n 50. Confira se o WorkingDirectory existe, se o .env tem os dois tokens e se o caminho do Python esta certo (teste com which python3).
✓ O que FAZER
- ✓Guardar tokens no
.env, nunca no codigo - ✓Usar
Restart=alwayspara reerguer se cair - ✓Olhar
journalctlquando algo der errado
✗ O que NAO fazer
- ✗Rodar com
python bot.pyno terminal e fechar a sessao - ✗Commitar o
.envno Git - ✗Esquecer o
enable(nao sobe depois de um reboot)
🏆 Parabens!
Se voce chegou ate aqui, tem um assistente de IA que vive no seu Telegram, pensa com Claude ou GPT, executa comandos e roda 24 horas por dia no seu servidor. Esse e o esqueleto de qualquer assistente. No proximo modulo, voce vai aprofundar o cerebro do seu Jarvis e dar a ele memoria e raciocinio mais ricos.
📚 Resumo do Modulo
Proximo Modulo:
5.2 - Intelecto: dando memoria e raciocinio mais profundo ao seu assistente de IA