Pular para o conteúdo principal

API e Dados

Endpoints

MétodoEndpointUso
POST/api/analyzeAnálise NLP com sentenças, POS, dependências, entidades e métricas.
POST/api/detailAnálise linguística detalhada com OpenAI.
POST/api/sanitizeSanitização textual stateless.
POST/api/classify-cliticsClassificação de clíticos em lotes de sentenças.
POST/api/model/runExecução de modelo analítico no backend.
POST/api/report/compileCompilação assistida de relatório.
POST/api/report/section/regenerateRegeneração de seção do relatório.
POST/api/visualize/dependenciesHTML SVG de dependências sintáticas.
POST/api/visualize/entitiesHTML de entidades nomeadas.

Configuração de ambiente

VariávelUso
OPENAI_API_KEYNecessária para /api/detail e /api/report/*.
OPENAI_DETAIL_MODELModelo opcional para análise detalhada.
OPENAI_REPORT_MODELModelo opcional para relatório, fallback gpt-4o-mini.
VITE_API_URLURL da API usada pelo frontend.

Snapshot de produção

O projeto de produção é serializado como ProductionProjectSnapshot.

interface ProductionProjectSnapshot {
schemaVersion: number;
projectId: string;
projectName: string;
projectDescription: string;
updatedAt: string;
dados: BatchState;
preparacao: { processed: ProcessedRow[] | null };
etiquetagem: {
pendingRequest: EtiquetagemRequest | null;
lastCompletedRequestId: number | null;
result: AnalyzeResponse | null;
enabledPOS: string[];
};
filtragem: { classifiedResult: ClassifiedSentence[] | null };
triagem: { occurrences: TriagedOccurrence[] };
configuracao: { variables: AnalysisVariable[] };
codificacao: { rows: CodifiedRow[] };
transformacao: {
method: "dummy" | "label-encoding" | "tfidf";
dropFirst: boolean;
matrix: AnalysisMatrix | null;
};
analise: {
selectedModel: "log_binomial" | "log_multinomial" | "mixed_effects";
results: ModelResults | null;
};
}

Ocorrência de clítico

Campos centrais de uma ocorrência:

CampoTipoDescrição
ocorrencia_idstringIdentificador da ocorrência.
documento_idstringUID do documento.
sentenca_idstringIdentificador da sentença.
texto_sentencastringSentença de origem.
verbo_hospedeirostringVerbo associado ao clítico.
cliticostringForma textual do clítico.
colocacao_cliticoenumproclise, enclise, mesoclise, duvidoso.
y_proclise0, 1 ou nullVariável dependente binária.
ambiente_neutroenumsim, nao, duvidoso.
ocorrencia_validabooleanElegibilidade para rodada Martins.
motivo_exclusaostringRazão da exclusão quando aplicável.
statusenumpendente, confirmado, descartado.
confidencenumberConfiança da classificação automática.

Variável analítica

interface AnalysisVariable {
id: string;
name: string;
label: string;
role: "dependent" | "independent" | "control" | "random_effect";
kind: "categorical" | "ordinal" | "numeric" | "binary" | "text";
source: "triage" | "metadata" | "linguistic" | "manual" | "derived";
sourceField?: string;
enabled: boolean;
levels: VariableLevel[];
referenceLevelId?: string;
missingPolicy: "exclude" | "keep_as_level" | "impute";
}

Matriz analítica

interface AnalysisMatrix {
columns: string[];
rows: MatrixPreviewRow[];
sampleCount: number;
method: "dummy" | "label-encoding" | "tfidf";
dropFirst: boolean;
generatedAt: string;
}

Payload de relatório

O relatório recebe um ReportCompileRequest.

interface ReportCompileRequest {
options: ReportOptions;
project: ReportProjectContext;
data: ReportDataContext;
evidenceCandidates: EvidenceCandidate[];
}

Regras de privacidade:

  • não enviar rawText integral dos documentos;
  • enviar no máximo 20 exemplos de sentenças;
  • truncar exemplos longos para 500 caracteres;
  • enviar agregações e amostras em vez da matriz completa quando grande;
  • incluir alertas sobre dados ausentes, modelo ausente ou amostra pequena.

Persistência local

Chave ou storeDescrição
PHPB Lab.productionProject.activeSnapshot ativo do projeto de produção.
IndexedDB store snapshotsArmazenamento principal dos snapshots.
localStorageFallback quando IndexedDB não está disponível.
PHPB Lab_sanitizer_presetsPresets do workbench de sanitização.