O Agente de Memória é um assistente inteligente que funciona como seu "assistente virtual", capaz de:
- 🎤 Gravar áudio através do microfone
- 📝 Transcrever sua fala usando IA (Whisper da OpenAI)
- 🤖 Processar e registrar os eventos descritos no áudio usando GPT-4
- 💾 Salvar tudo em uma memória persistente para consultas futuras
Este projeto é perfeito para iniciantes em Python e IA que querem entender como integrar diferentes tecnologias de inteligência artificial.
- Como usar APIs da OpenAI (Whisper para transcrição e GPT-4 para processamento)
- Manipulação de arquivos de áudio em Python
- Gerenciamento de variáveis de ambiente
- Conceitos básicos de Agentes de IA
Algoritmos: Sequência de instruções organizadas e lógicas para resolver um problema específico. É como uma "receita" que o computador segue passo a passo para executar uma tarefa, desde as mais simples até as mais complexas.
Fetch: Função usada para fazer requisições HTTP e buscar dados de servidores ou APIs. Permite que uma página web solicite informações de outros lugares na internet de forma assíncrona, sem precisar recarregar a página.
API Whisper: Serviço de inteligência artificial da OpenAI que converte áudio em texto (transcrição). É capaz de reconhecer fala em diversos idiomas e transformar gravações de voz em texto escrito.
venv: Ferramenta do Python que cria ambientes virtuais isolados. Permite instalar bibliotecas específicas para cada projeto sem afetar outras aplicações, mantendo as dependências organizadas e separadas.
requirements.txt: Arquivo de texto que lista todas as bibliotecas e suas versões necessárias para um projeto Python funcionar. Facilita a instalação das dependências em outros computadores ou ambientes.
PyAudio: Biblioteca Python que permite gravar e reproduzir áudio. É usada para capturar som do microfone ou tocar arquivos de áudio diretamente através do código Python.
Wave: Módulo Python nativo para trabalhar com arquivos de áudio no formato WAV. Permite ler, escrever e manipular arquivos de som sem precisar instalar bibliotecas externas.
python-dotenv: Biblioteca que carrega variáveis de ambiente a partir de um arquivo .env. É útil para manter informações sensíveis como chaves de API separadas do código principal.
OpenAI: Biblioteca oficial da OpenAI para Python que facilita a integração com seus serviços de IA, como GPT e Whisper. Permite fazer chamadas para as APIs da empresa de forma simples.
Playsound: Biblioteca Python simples para reproduzir arquivos de áudio. Oferece uma maneira fácil de tocar sons em aplicações sem configurações complexas.
Pydantic: Biblioteca Python para validação de dados usando type hints. Garante que os dados estejam no formato correto e ajuda a detectar erros antes que causem problemas na aplicação.
Eventos: Ações ou ocorrências que acontecem durante a execução de um programa, como cliques do mouse, pressionamento de teclas ou chegada de dados. O programa pode "escutar" esses eventos e reagir a eles.
LangChain: Framework Python para desenvolver aplicações com modelos de linguagem (LLMs). Facilita a criação de chatbots, sistemas de perguntas e respostas e outras aplicações de IA conversacional.
- Python 3.11+ - Linguagem principal
- OpenAI API - Para transcrição (Whisper) e processamento de linguagem natural (GPT-4)
- PyAudio - Para gravação de áudio
- Pydantic - Para validação e estruturação de dados
- Python-dotenv - Para gerenciamento de variáveis de ambiente
cw-academy/
│
├── agent-memory/ # Pasta principal do projeto
│ ├── main.py # Script principal
│ ├── requirements.txt # Dependências do projeto
│ ├── memory.json # Arquivo de memória (criado automaticamente)
│ │
│ ├── utils/ # Utilitários
│ │ ├── record_audio.py # Função para gravar áudio
│ │ └── basemodel2tool.py # Conversor de modelos Pydantic para tools OpenAI
│ │
│ └── tools/ # Ferramentas do agente
│ └── daily_events.py # Modelo para eventos diários
│
├── venv/ # Ambiente virtual Python
├── .gitignore # Arquivos ignorados pelo Git
└── README.md # Este arquivo
git clone <seu-repositorio>
cd cw-academy
# Criar ambiente virtual
python -m venv venv
# Ativar ambiente virtual
# No macOS/Linux:
source venv/bin/activate
# No Windows:
venv\Scripts\activate
cd agent-memory
pip install -r requirements.txt
- Crie uma conta na OpenAI
- Gere uma API Key no painel de controle
- Crie um arquivo
.env
na pastaagent-memory/
:
# Criar arquivo .env
touch .env
- Adicione sua API Key no arquivo
.env
:
OPENAI_API_KEY=sua_chave_api_aqui
⚠️ Importante: Nunca compartilhe sua API Key! O arquivo.env
já está no.gitignore
para protegê-la.
cd agent-memory
python main.py
- Fale sobre seu dia: O programa começará a gravar automaticamente
- Conte eventos: Ex: "Hoje de manhã fui ao médico e à tarde tive uma reunião importante"
- Aguarde o processamento: O agente irá transcrever e processar sua fala
- Veja o resultado: Os eventos serão salvos e uma confirmação será exibida
🎤 Gravando... (Fale sobre seus eventos do dia)
Você: "Hoje de manhã às 9h fui ao dentista, e à tarde às 15h tive uma reunião com o cliente João"
🤖 Agente: "Evento do dia 15/01/2024 registrado com sucesso, posso te ajudar com mais alguma coisa?"
graph TD
A[Início] --> B[Gravar Áudio]
B --> C[Transcrever com Whisper]
C --> D[Processar com GPT-4]
D --> E[Identificar Eventos]
E --> F[Salvar na Memória]
F --> G[Exibir Confirmação]
G --> B
- record_audio.py: Grava áudio do microfone e salva como arquivo WAV
- main.py: Loop principal que coordena todo o processo
- daily_events.py: Modelo de dados para eventos diários
- memory.json: Arquivo onde ficam salvos todos os eventos e interações
- Crie um novo modelo em
tools/
:
from pydantic import BaseModel, Field
class TaskEvents(BaseModel):
"""Registra tarefas e compromissos"""
date: str = Field(description="Data da tarefa")
tasks: List[str] = Field(description="Lista de tarefas")
- Importe e adicione ao
main.py
:
from tools.task_events import TaskEvents
# Adicione na lista de tools
Para usar em inglês, altere no main.py
:
language="en" # Linha da transcrição
macOS: Vá em Configurações > Privacidade > Microfone e permita o acesso ao Terminal/Python
macOS:
brew install portaudio
pip install pyaudio
Ubuntu/Debian:
sudo apt-get install portaudio19-dev
pip install pyaudio
- Verifique se a chave está correta no arquivo
.env
- Confirme se há créditos na sua conta OpenAI
Depois de dominar este projeto, você pode:
- Adicionar interface gráfica com Tkinter ou Streamlit
- Integrar com calendário (Google Calendar API)
- Adicionar busca por eventos por data ou palavra-chave
- Implementar classificação automática de eventos por categoria
- Criar relatórios semanais ou mensais
- Adicionar lembretes automáticos
Este é um projeto educacional! Sinta-se à vontade para:
- Fazer fork do projeto
- Propor melhorias
- Reportar bugs
- Adicionar novas funcionalidades
Projeto desenvolvido para fins educacionais. Use, modifique e compartilhe livremente!
💡 Dica: Este projeto é uma excelente introdução ao mundo dos Agentes de IA. Continue explorando e criando!