Como Fazer Seu Assistente J.A.R.V.I.S. Guardar Tarefas com Python Puro
🌌 Projeto CodeVerse Python – #40/2025
👋 Fala, galera dev!
🚀 Chegamos ao artigo #40 da nossa jornada no Projeto CodeVersePython2025, e hoje vamos dar ao nosso Jarvis mais uma habilidade que todo assistente real precisa ter: guardar lembretes e agenda de tarefas.
Afinal, de que adianta ter um assistente inteligente que abre programas e pesquisa informações, mas não consegue lembrar que você tem uma reunião amanhã às 9h? 🤔 É como se o Tony Stark tivesse o Jarvis para controlar as armaduras, mas o sistema esquecesse de avisar que o Conselho da S.H.I.E.L.D. estava esperando por ele na sala de reuniões. 😅
Nosso objetivo aqui é simples: vamos ensinar o Jarvis a guardar compromissos e lembrar você depois, tudo usando Python puro, de uma forma bem simples e usando apenas bibliotecas nativas, ou seja, menos código e mais agilidade para adiiconarmos mais essa funcionalidade ao nosso projeto de assitente.
🧠 Como vamos fazer isso?
A lógica é bem parecida com a de uma agenda de papel, só que digital, e para isso vamos fazer o comando de uma forma bem natural, para tornar bem proximo de uma conversa com um assitente, utilizando ocnceitos aprendidos nos ultimos artigos, as famosas wake words.
- Quando você disser: “Jarvis, lembre-me de revisar o código amanhã às 10h”, ele vai salvar essa informação.
- Depois, sempre que o programa rodar, ele pode checar os lembretes e te avisar.
Para isso, vamos usar:
- speech_recognition → o ouvido do Jarvis.
- pyttsx3 → a voz do Jarvis.
- json → a “memória” onde os compromissos vão ser guardados.
- datetime → para comparar horários e saber quando é hora de te lembrar.
🐍 Parte 1 – Criando um lembrete simples
Antes de levarmos essa ideia direto para o Jarvis, vamos construir uma versão bem básica do sistema de lembretes. Assim conseguimos entender de forma clara como salvar e recuperar informações, sem misturar com outras funções do assistente.
import json
from datetime import datetime
arquivo_lembretes = "lembretes.json"
# Salvar lembrete
def salvar_lembrete(texto, horario):
try:
with open(arquivo_lembretes, "r") as f:
lembretes = json.load(f)
except FileNotFoundError:
lembretes = []
lembretes.append({"texto": texto, "horario": horario})
with open(arquivo_lembretes, "w") as f:
json.dump(lembretes, f)
# Checar lembretes
def verificar_lembretes():
try:
with open(arquivo_lembretes, "r") as f:
lembretes = json.load(f)
except FileNotFoundError:
return []
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
return [l for l in lembretes if l["horario"] == agora]
# Exemplo prático
salvar_lembrete("Reunião com os Vingadores", "05/10/2025 09:00")
print("Lembretes para agora:", verificar_lembretes())
👉 O que acontece aqui?
- Criamos uma lista de lembretes com texto e horário.
- Salvamos no arquivo lembretes.json.
- Sempre que rodamos, verificamos se a hora atual bate com algum lembrete.
🤖 Parte 2 – Integrando ao Jarvis
Agora que já sabemos como a lógica funciona isoladamente, é hora de unir tudo ao nosso Jarvis. Dessa forma, poderemos criar lembretes diretamente por voz e ouvir o próprio assistente nos avisando quando chegar a hora.
import speech_recognition as sr
import pyttsx3
import json
from datetime import datetime
engine = pyttsx3.init()
r = sr.Recognizer()
arquivo_lembretes = "lembretes.json"
def falar(texto):
engine.say(texto)
engine.runAndWait()
def salvar_lembrete(texto, horario):
try:
with open(arquivo_lembretes, "r") as f:
lembretes = json.load(f)
except FileNotFoundError:
lembretes = []
lembretes.append({"texto": texto, "horario": horario})
with open(arquivo_lembretes, "w") as f:
json.dump(lembretes, f)
def verificar_lembretes():
try:
with open(arquivo_lembretes, "r") as f:
lembretes = json.load(f)
except FileNotFoundError:
return []
agora = datetime.now().strftime("%d/%m/%Y %H:%M")
return [l for l in lembretes if l["horario"] == agora]
with sr.Microphone() as source:
falar("Estou ouvindo, senhor. Qual lembrete deseja salvar?")
audio = r.listen(source)
try:
comando = r.recognize_google(audio, language="pt-BR").lower()
if "lembrar" in comando:
# Exemplo: "lembrar reunião amanhã às 9 horas"
salvar_lembrete("Reunião", "05/10/2025 09:00")
falar("Lembrete salvo com sucesso.")
lembretes_atuais = verificar_lembretes()
for l in lembretes_atuais:
falar(f"Senhor, lembrete: {l['texto']}")
except:
falar("Não consegui entender, senhor.")
👉 Agora o Jarvis consegue:
- Ouvir quando pedimos para lembrar algo.
- Guardar em memória.
- Verificar se chegou a hora e nos avisar.
✨ Personalizando (dando um toque humano)
Aqui é onde você pode brincar e dar mais personalidade ao Jarvis. Quando ele for lembrar algo, ao invés de falar sempre a mesma frase, você pode criar respostas diferentes, como:
- “Senhor, está na hora da sua reunião com os Vingadores.”
- “Carlos, lembrete ativado: revisar o código do Jarvis.”
- “Não se esqueça do compromisso que me pediu para lembrar.”
Isso faz toda a diferença para o Jarvis parecer menos robótico e mais humano.
🔮 Concluindo...
Chegamos ao fim de mais um passo na evolução do nosso Jarvis. Hoje vimos que até mesmo algo aparentemente simples, como criar lembretes, pode transformar nosso assistente em algo muito mais útil no dia a dia. O importante e diferencial é termos as idéias de como podemos complementar nosso assitente e colocar as idéias em prática adicionando mais funcionalidades a cada dia, tendo o céu como limite. É como no universo Marvel: às vezes não é a armadura nova cheia de mísseis que faz a diferença, mas sim um detalhe estratégico que muda tudo na batalha. Da mesma forma, essa função básica abre espaço para que o Jarvis seja não só um assistente, mas um verdadeiro aliado na nossa rotina.
✅ Nesse artigo aprendemos a salvar lembretes em um arquivo.
✅ Neste artigo fizemos o Jarvis criar lembretes por voz.
✅ Neste artigo vimos como personalizar as respostas para deixá-lo mais natural.
Nos próximos artigos, vamos expandir esse sistema e abrindo musicas no youtube por camando de voz, criando anotações para guardra insights, criando o modo privado do jarvis onde ele para de ouvir suas conversdas, além de muitas outras funcionalidades, criando um Jarvis ainda mais útil no nosso dia a dia.
👉 Curtiu? Me siga no GitHub e no LinkedIn para acompanhar a evolução do Projeto CodeVersePython2025.
Porque o futuro não é esperar a tecnologia chegar. É a gente criar ela hoje. ⚡