Skip to main content
Glama
rafael-BM08

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**


Maintenance

ActivityMaintained
ResponsivenessNo issues