O SwitchBot é um Agente de Inteligência Artificial (Agentic AI) projetado para rodar localmente no seu computador (Windows). Mais do que apenas conversar, o SwitchBot pode agir no seu sistema através de Skills (habilidades) escritas em Python, funcionando como um verdadeiro assistente pessoal que executa tarefas por você.
- Inteligência Híbrida: Funciona tanto na Nuvem (via Groq API para respostas ultrarrápidas com Llama 3) quanto Localmente (via Ollama para total privacidade e uso offline).
- Sistema de Skills Dinâmicas: A IA pode utilizar ferramentas existentes (como abrir programas, ler a área de transferência, ler sites) ou criar e salvar novas skills em tempo real se precisar.
- Modos de Visualização:
- Modo Chat (Desenvolvedor): Mostra o "Chain of Thought" (linha de raciocínio) do modelo, exibindo exatamente o que a IA está pensando e executando.
- Modo Mascote: Uma interface minimalista onde um mascote animado flutua na sua tela, com balões de fala e expressões.
- Memória Persistente: Usa um banco de dados SQLite local para lembrar das conversas anteriores e aprender as suas preferências.
- Gamificação: Sistema de "XP" e Níveis integrado. Ganhe pontos ao concluir tarefas com o assistente!
- Segurança Integrada: Possui verificações (regex) para impedir que a IA crie códigos maliciosos ou destrutivos.
Siga os passos abaixo para clonar e rodar o SwitchBot na sua máquina.
- Python 3.10 ou superior instalado no Windows.
- (Opcional, mas recomendado) Ollama instalado, caso queira rodar modelos locais sem depender de internet.
1. Clone o repositório:
git clone [https://github.com/jose-pires-neto/SwitchBot.git\](https://github.com/jose-pires-neto/SwitchBot.git)
cd switchbot
2. Crie e ative um Ambiente Virtual (Recomendado):
python -m venv venv
# Ative o ambiente:
venv\Scripts\activate
3. Instale as dependências:
pip install -r requirements.txt
4. Configure as Variáveis de Ambiente:
Crie um arquivo chamado .env na raiz do projeto (mesma pasta do main.py) e adicione a sua chave de API do Groq (necessária se for usar o provedor Cloud).
GROQ_API_KEY=sua_chave_api_aqui_sk_...
5. Rode o Servidor:
python main.py
O SwitchBot abrirá automaticamente uma interface web como um "App" no seu navegador padrão.
Com o app aberto, você pode interagir com o SwitchBot de forma natural.
- Alt + O: Esconde ou mostra a janela do assistente de forma rápida (Overlay).
- Configurações (⚙️): Clique no ícone da engrenagem para alternar entre Groq (Nuvem) e Ollama (Local), e gerenciar o download de novos modelos de IA.
- Troca de Modo: Clique no ícone ao lado das configurações para alternar entre o Modo Chat e o Modo Mascote.
Tente enviar estes comandos no chat para ver a IA agindo:
- "Abra a calculadora"
- "Copiei um texto longo, leia a minha área de transferência e faça um resumo em 3 tópicos."
- "Acesse o site https://www.google.com/search?q=https://pt.wikipedia.org/wiki/Intelig%C3%AAncia\_artificial e me dê um resumo."
- "Crie um formulário de login moderno usando Tailwind e mostre no visualizador."
A arquitetura do SwitchBot permite que você crie novas habilidades muito facilmente. O motor da IA analisa a pasta /skills automaticamente.
Para criar uma skill manualmente:
- Crie um arquivo .py na pasta skills/ (ex: tocar_musica.py).
- Adicione uma docstring na primeira linha do arquivo. A IA usa esse texto para entender o que a skill faz.
- Crie uma função def run(**kwargs):. Esta é a função que será executada.
Exemplo básico:
"""
Toca um som de bipe simples para alertar o usuário.
"""
import winsound
def run(frequencia: int = 1000, duracao: int = 500, **kwargs):
try:
winsound.Beep(int(frequencia), int(duracao))
return f"Sucesso: Bipe tocado (Freq: {frequencia}Hz, Duração: {duracao}ms)"
except Exception as e:
return f"Erro ao tocar bipe: {str(e)}"
- main.py: Servidor Flask e rotas da API, além da lógica de renderização da janela (App Mode).
- jarvis_core.py: O "Cérebro". Lida com a comunicação com os modelos (Groq/Ollama) e força as respostas no formato JSON necessário para o roteamento de ações.
- model_manager.py: Gerencia os provedores, incluindo download e exclusão de modelos Ollama via UI.
- memory.py: Lida com o banco de dados SQLite para salvar histórico de chat e "fatos/preferências" do usuário.
- skill_manager.py: Lê, valida (Syntax Check) e executa as funções Python da pasta /skills.
- security.py: Camada de regex que previne a execução de comandos destrutivos no Windows.
- /ui: Contém os arquivos de interface (index.html, script.js, style.css).
- /skills: Pasta onde todas as ferramentas da IA ficam guardadas.
- Backend: Python, Flask, SQLite.
- Frontend: HTML5, CSS3, Vanilla JavaScript.
- Integrações AI: Groq API (Llama 3, DeepSeek), Ollama (Local Models).
Feito por JOSÉ PIRES O.N para tornar a automação local acessível, facil e inteligente.