Pular para o conteúdo principal

Arquitetura

O PHPB Lab usa uma arquitetura cliente-servidor. O frontend mantém o estado operacional do projeto e chama a API para operações de NLP, classificação, modelagem e relatório.

Componentes principais

flowchart LR
U["Usuário"] --> F["Frontend React/Vite"]
F --> S["Estado local: IndexedDB/localStorage"]
F --> A["API FastAPI"]
A --> N["spaCy pt_core_news_lg"]
A --> O["OpenAI"]
A --> M["Casos de uso de domínio"]
M --> R["Schemas e entidades"]

Separação no backend

O backend segue a separação interfaces -> application -> domain <- infrastructure.

CamadaResponsabilidade
interfacesRouters HTTP e schemas de request/response.
application/use_casesOrquestração dos fluxos de análise, sanitização, classificação, modelagem e relatório.
domainEntidades, value objects e regras centrais.
infrastructureAdaptadores spaCy e OpenAI.

Sequência de upload até visualização

sequenceDiagram
participant User as "Usuário"
participant UI as "Frontend"
participant Store as "IndexedDB"
participant API as "FastAPI"
participant NLP as "spaCy"
participant LLM as "OpenAI"

User->>UI: Importa arquivos .txt
UI->>Store: Salva snapshot do projeto
User->>UI: Prepara sentenças
User->>UI: Solicita etiquetagem
UI->>API: POST /api/analyze
API->>NLP: Processa sentenças
NLP-->>API: POS, dependências, entidades
API-->>UI: AnalyzeResponse
User->>UI: Filtra e classifica clíticos
UI->>API: POST /api/classify-clitics
API-->>UI: Ocorrências candidatas
User->>UI: Triagem, configuração e codificação
UI->>API: POST /api/model/run
API-->>UI: ModelResults
User->>UI: Compila relatório
UI->>API: POST /api/report/compile
API->>LLM: Geração assistida
LLM-->>API: Rascunho estruturado
API-->>UI: ReportDraft

Persistência

O snapshot de produção guarda:

  • dados do projeto;
  • documentos e metadados;
  • segmentos preparados;
  • requisição e resultado de etiquetagem;
  • resultado da filtragem e classificação;
  • ocorrências triadas;
  • variáveis analíticas;
  • linhas codificadas;
  • matriz;
  • modelo selecionado e resultados.

O autosave é local. Para mover um projeto entre máquinas ou navegadores, use Exportar projeto em JSON e Importar projeto de JSON.

Privacidade do relatório

O compilador de relatórios não envia o corpus integral ao backend. O frontend monta um contexto sanitizado com contagens, agregações, amostras, exemplos truncados e resultados já calculados.