Arquiteto Planner I.A.
by rafael-BM08
README.md
# 🛠️ Arquiteto Planner I.A.
O **Arquiteto Planner I.A.** é um assistente inteligente baseado em Inteligência Artificial para planejamento de projetos de software. A partir de uma descrição de ideia fornecida pelo usuário, o agente atua como um arquiteto de software, estruturando a stack de tecnologias recomendada, mapeando a arquitetura de pastas/arquivos e planejando o passo a passo para o desenvolvimento do projeto.
O projeto demonstra a implementação prática do **Model Context Protocol (MCP)** utilizando a biblioteca **FastMCP**, permitindo que o modelo de linguagem interaja de forma dinâmica com ferramentas locais de arquitetura.
---
## 🚀 Funcionalidades
- **Recomendação de Stack:** Sugere tecnologias de backend, frontend, banco de dados e testes com base no tipo do projeto (API, I.A., Automação, Site, Análise de Dados ou Terminal).
- **Esboço de Arquitetura:** Gera a estrutura recomendada de pastas e arquivos para o projeto.
- **Roteiro de Desenvolvimento (Etapas):** Sugere a sequência lógica de etapas para construir o projeto do zero.
- **Orquestração Inteligente:** Combina a flexibilidade do LangChain com a dinamicidade de ferramentas MCP locais.
---
## 📂 Estrutura do Projeto
Abaixo estão os arquivos e a respectiva responsabilidade de cada componente no projeto:
```text
├── agent.py # Orquestração do agente LangChain e integração com ferramentas MCP
├── cliente.py # Inicializador do cliente MCP conectado ao servidor local
├── servidor.py # Servidor FastMCP que define as ferramentas (tools) de apoio à decisão
├── main.py # Interface CLI que recebe a entrada do usuário e executa o fluxo
├── requirements.txt # Lista de dependências Python para execução do projeto
└── .env # Variáveis de ambiente contendo credenciais (ex: OPENAI_API_KEY)
```
### Detalhes Técnicos:
* **[main.py](./main.py)**: Ponto de entrada do sistema. Solicita a ideia de projeto e chama o agente de forma assíncrona.
* **[agent.py](./agent.py)**: Configura o modelo `gpt-4o-mini` da OpenAI e o prompt de sistema do Arquiteto. Carrega dinamicamente as ferramentas MCP e roda o agente LangChain.
* **[cliente.py](./cliente.py)**: Configura o cliente `FastMCP` que se conecta via stdio ao servidor Python local.
* **[servidor.py](./servidor.py)**: Define o servidor MCP com três ferramentas principais:
- `escolher_stack`: Seleciona tecnologias com base em termos chave da ideia.
- `gera_estrutura`: Retorna a árvore de pastas e arquivos padrão.
- `gera_etapas`: Retorna uma lista de tarefas necessárias para o desenvolvimento.
---
## 🛠️ Tecnologias Utilizadas
- **Python 3.10+**
- **[LangChain](https://github.com/langchain-ai/langchain)** (Agente e prompts)
- **[FastMCP](https://github.com/jasonjmcghee/fastmcp)** (Protocolo de ferramentas de modelo de linguagem - MCP)
- **OpenAI API (`gpt-4o-mini`)**
- **python-dotenv** (Leitura do arquivo `.env`)
---
## ⚙️ Instalação e Configuração
Siga os passos abaixo para preparar e rodar o projeto localmente:
### 1. Clonar o repositório
```bash
git clone https://github.com/seu-usuario/Arquiteto_planer.I.A.git
cd Arquiteto_planer.I.A
```
### 2. Criar e ativar o ambiente virtual (venv)
No Windows (PowerShell):
```powershell
python -m venv .venv
.venv\Scripts\Activate.ps1
```
No Linux/macOS:
```bash
python -m venv .venv
source .venv/bin/activate
```
### 3. Instalar as dependências
```bash
pip install -r requirements.txt
```
### 4. Configurar as variáveis de ambiente
Crie um arquivo `.env` na raiz do projeto e configure a sua chave da OpenAI:
```env
OPENAI_API_KEY=sua_chave_de_api_aqui
```
---
## 🎮 Como Executar
Com o ambiente virtual ativado e a chave da API configurada, execute a aplicação com o seguinte comando:
```bash
python main.py
```
### Exemplo de uso:
1. O console irá solicitar:
```text
Ideia de projeto: Quero criar um bot de automação do instagram usando selenium
```
2. O agente processará a ideia, acessará as ferramentas locais no servidor MCP e exibirá uma resposta detalhada no terminal contendo:
- **Nome sugerido do projeto**
- **Descrição**
- **Stack recomendada** (ex: Python, Selenium, PyTest)
- **Arquitetura de arquivos**
- **Explicação dos arquivos**
- **Etapas sugeridas de desenvolvimento**
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues