Pular para o conteúdo principal

Arquitetura de Software

Componentes

flowchart LR
Browser["Navegador"] --> SPA["React SPA"]
SPA --> Store["IndexedDB/localStorage"]
SPA --> API["FastAPI"]
API --> Routers["Routers HTTP"]
Routers --> UseCases["Use cases"]
UseCases --> Domain["Domain"]
UseCases --> Spacy["spaCy adapter"]
UseCases --> OpenAI["OpenAI adapter"]

Recursos de API

flowchart TD
API["/api"] --> A["/analyze"]
API --> B["/detail"]
API --> C["/sanitize"]
API --> D["/classify-clitics"]
API --> E["/model/run"]
API --> F["/report/compile"]
API --> G["/report/section/regenerate"]
API --> H["/visualize/dependencies"]
API --> I["/visualize/entities"]

Fluxo de dados

flowchart LR
D1["DocumentEntry.rawText"] --> D2["ProcessedRow[]"]
D2 --> D3["AnalyzeResponse"]
D3 --> D4["ClassifiedSentence[]"]
D4 --> D5["TriagedOccurrence[]"]
D5 --> D6["AnalysisVariable[]"]
D5 --> D7["CodifiedRow[]"]
D6 --> D7
D7 --> D8["AnalysisMatrix"]
D8 --> D9["ModelResults"]
D5 --> D10["ReportCompileRequest"]
D6 --> D10
D8 --> D10
D9 --> D10
D10 --> D11["ReportDraft"]

Entidades principais

erDiagram
PROJECT ||--o{ DOCUMENT : contains
PROJECT ||--o{ PROCESSED_ROW : prepares
PROJECT ||--o{ OCCURRENCE : triages
PROJECT ||--o{ VARIABLE : configures
OCCURRENCE ||--o{ CODIFIED_ROW : materializes
VARIABLE ||--o{ VARIABLE_LEVEL : defines
CODIFIED_ROW }o--o{ VARIABLE : labels
PROJECT ||--o| MATRIX : generates
MATRIX ||--o| MODEL_RESULT : feeds
PROJECT ||--o{ REPORT_DRAFT : compiles

Definição de objeto

flowchart TD
S["ProductionProjectSnapshot"] --> P["projectId, projectName, updatedAt"]
S --> D["dados: BatchState"]
S --> PR["preparacao.processed"]
S --> ET["etiquetagem.result"]
S --> FI["filtragem.classifiedResult"]
S --> TR["triagem.occurrences"]
S --> CO["configuracao.variables"]
S --> CD["codificacao.rows"]
S --> MT["transformacao.matrix"]
S --> AN["analise.results"]