Skip to content

IsaacDuart/mandamus-petition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gerador de Mandado de Segurança Automatizado

Conceito Jurídico

O Mandado de Segurança é uma ação constitucional de natureza civil, regulada pela Lei nº 12.016/2009, que protege direito líquido e certo não amparado por habeas corpus ou habeas data, quando o responsável pela ilegalidade ou abuso de poder for autoridade pública ou agente de pessoa jurídica no exercício de atribuições do Poder Público.

Características essenciais:

  • Direito líquido e certo: Comprovado de plano, sem dilação probatória
  • Ato coator: Ameaça ou violação concreta por autoridade pública
  • Cabimento subsidiário: Quando não houver outro recurso eficaz

Arquitetura e Estrutura do Projeto

O projeto foi organizado seguindo boas práticas de engenharia de software com separação clara de responsabilidades (SoC) para garantir:

Manutenibilidade
Escalabilidade
Testabilidade
Reusabilidade

📁 Estrutura de Pastas

.
├── venv/                    # Ambiente virtual Python (ignorado no git)
├── app/
│   ├── clients/             # Comunicação com APIs externas
│   │   └── openai_client.py
│   ├── core/                # Lógica compartilhada
│   │   └── error_handlers.py
│   ├── routers/             # Endpoints da API
│   │   └── writ.py
│   ├── schemas/             # Validação de dados
│   │   └── writ_schema.py
│   └── services/           # Lógica de negócio
│       └── writ_generator.py
├── env/                     # Variáveis de ambiente (ignorado no git)
├── .gitignore
├── requirements.txt
└── run.py

Camadas Principais

  1. Apresentação (routers/writ.py):

    • Gerencia requisições HTTP
    • Formata respostas
  2. Serviço (services/writ_generator.py):

    • Orquestra a geração do documento
    • Constrói prompts especializados
  3. Infraestrutura (clients/openai_client.py):

    • Gerencia comunicação com OpenAI
    • Implementa políticas de retry
  4. Validação (schemas/writ_schema.py):

    @field_validator('lawyer_oab')
    def validate_oab_format(cls, v):
        if not re.match(r'^\d{1,6}/[A-Z]{2}$', v):
            raise ValueError('Formato OAB inválido. Use: 123456/UF')
        return v.upper()

Fluxo de Processamento

  1. Entrada:

    • Recebe JSON via POST /petitions/generate
    {
     "author_name": "Ana Rodrigues",
     "author_cpf": "123.456.789-09",
     "author_address": "Rua Exemplo, 123 - São Paulo/SP",
     "lawyer_name": "Dr. Jurídico",
     "lawyer_oab": "123456/SP",
     "respondent_authority": "Prefeito Municipal",
     "authority_position": "Município de São Paulo",
     "facts": "Negativa indevida de acesso a documento público...",
     "violated_right": "Direito fundamental de acesso à informação",
     "request": "Concessão de segurança para fornecimento do documento"
     }
  2. Validação:

    • Verifica CPF, OAB e campos obrigatórios
  3. Geração:

    • Monta prompt jurídico
    • Chama API da OpenAI (temperatura: 0.7)
  4. Saída:

    • Retorna documento formatado ou erros padronizados

Vantagens da Estrutura

  • Isolamento de mudanças: Alterações na OpenAI afetam apenas openai_client.py
  • Testabilidade: Serviços podem ser testados independentemente
  • Organização: Separação clara por responsabilidades
  • Documentação: Schemas definem contratos explicitamente

Tecnologias:

  • Python 3.8+
  • Flask, Pydantic, OpenAI API

Regra de Ouro: Cada componente tem uma única responsabilidade clara.

Esta arquitetura permite a evolução sustentável do sistema, mantendo o rigor técnico e jurídico necessário para documentos oficiais.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages