Este projeto é uma aplicação web completa que serve como base para um Sistema Multi-Agentes (SMA). Ele inclui uma API RESTful robusta construída com FastAPI e uma interface web de administração para gerenciamento de usuários. O sistema possui um módulo de autenticação seguro com JWT e cookies, papéis de usuário (admin/comum) e uma fundação pronta para a integração de agentes de IA com LangChain.
- API RESTful: Construída com FastAPI e Pydantic para alta performance e validação de dados.
- Autenticação Híbrida:
- Login via API com Tokens JWT (Bearer Token).
- Login via Interface Web com Cookies seguros (
HttpOnly).
- Sistema de Papéis: Diferenciação entre usuários
adminecomumpara controle de acesso. - Painel de Administração: Uma interface web (servida pelo FastAPI) onde administradores podem:
- Listar todos os usuários.
- Criar novos usuários (comuns ou administradores).
- Atualizar informações de usuários.
- Deletar usuários.
- Segurança:
- Hashing de senhas
- Criação automática de um usuário administrador na inicialização a partir de variáveis de ambiente seguras.
- Containerização: Aplicação 100% containerizada com Docker e Docker Compose para fácil configuração e implantação.
- Backend: Python 3.13, FastAPI
- Banco de Dados: MySQL 8.0
- ORM: SQLAlchemy
- Autenticação: Passlib, Python-JOSE
- Validação de Dados: Pydantic
- Interface Web: Jinja2, Bootstrap 5 (via CDN)
- Containerização: Docker, Docker Compose
Siga os passos abaixo para configurar e executar o projeto localmente.
- Docker
- Docker Compose (geralmente incluído no Docker Desktop)
-
Clone o repositório para a sua máquina local.
-
Crie o arquivo de configuração de ambiente. Na raiz do projeto, crie uma cópia do arquivo
.env.exemploe renomeie-a para.env.cp .env.exemplo .env
-
Preencha as variáveis no arquivo
.env. Abra o arquivo.enve substitua os valores de exemplo pelas suas senhas e configurações.# Configurações do Banco de Dados MYSQL_ROOT_PASSWORD=sua_senha_root_super_secreta MYSQL_DATABASE=sma_db MYSQL_USER=sma_user MYSQL_PASSWORD=sua_senha_de_usuario # Credenciais do Usuário Administrador Padrão ADMIN_NOME=Administrador ADMIN_USUARIO=admin ADMIN_SENHA=admin_super_seguro
-
Construa e inicie os contêineres. No terminal, na raiz do projeto, execute o seguinte comando:
docker-compose up --build
A aplicação estará disponível em
http://localhost:8000após a inicialização.
Na primeira vez que a aplicação é iniciada, um usuário administrador é criado automaticamente com as credenciais que você definiu em ADMIN_USUARIO e ADMIN_SENHA no arquivo .env.
- Abra seu navegador e acesse
http://localhost:8000. - Você verá a página de login. Use as credenciais do administrador para entrar.
- Após o login, você será redirecionado para o painel em
http://localhost:8000/dashboard. - No painel, você pode gerenciar todos os usuários do sistema. O botão "Sair" no canto superior direito encerra sua sessão.
A documentação interativa da API (Swagger UI) está disponível em:
http://localhost:8000/docs
Você pode usar essa interface para testar todos os endpoints da API. Para os endpoints protegidos, siga os seguintes passos:
- Use o endpoint
POST /autenticacao/loginpara obter um token de acesso. - Clique no botão "Authorize" no canto superior direito da página.
- Na janela que abrir, cole o seu token no campo de valor no formato
Bearer <seu_token>. - Agora você pode executar os endpoints protegidos.