document
Documento
Documento com extração por OCR/IA e mapeamento dos campos extraídos para colunas do cabeçalho e das linhas.
- Kind:
component - Key:
document - Categoria:
ficheiro - Envelope: mapa (um objeto JSON em
config)
Campos
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
buttonLabel | string | não | - | Rótulo do botão de carregar. | - |
hintText | string | não | - | Texto de ajuda do campo. | - |
allowedExtensions | list de string | não | ["pdf","jpg","jpeg","png","bmp","gif","webp"] | Extensões aceites. | - |
maxFileSizeMB | integer | não | - | Tamanho máximo do documento em MB; vazio = sem limite. | - |
enableOCR | boolean | não | true | Extrai o texto do documento por OCR. | - |
enableAIProcessing | boolean | não | true | Passa o texto extraído por um modelo de IA para o estruturar. | - |
ocrProvider | enumeration | não | "google_ml_kit" | Motor de OCR usado. | - |
aiProvider | enumeration | não | "openai" | Fornecedor do modelo que estrutura a extração. | - |
openaiApiKey | string | não | - | Chave de API do fornecedor de IA: é um SEGREDO da organização e nunca sai num template. Segredo. O exportador substitui este valor por vazio e nomeia o caminho em redacted[]: nunca sai num pacote de template. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
aiPrompt | string | não | - | Instrução de extração escrita pelo utilizador; vazio usa a do tipo de documento. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
expectedStructure | json | não | - | Estrutura JSON que se espera da extração, escrita pelo utilizador. Opaco: transporta dados do utilizador e nenhum resolvedor entra aqui. | - |
autoProcess | boolean | não | false | Processa o documento logo ao carregar, sem esperar pelo botão. | - |
showPreview | boolean | não | true | Mostra a pré-visualização do documento. | - |
pdfRenderDPI | number | não | 150 | Resolução a que as páginas do PDF são rasterizadas antes do OCR. | - |
processAllPages | boolean | não | true | Processa todas as páginas; falso processa só a primeira. | - |
maxPagesToProcess | integer | não | - | Máximo de páginas processadas; vazio = sem limite. | - |
combinePageTexts | boolean | não | true | Junta o texto de todas as páginas numa só extração. | - |
saveDocument | boolean | não | true | Guarda o documento original no bucket além da extração. | - |
autoFillFields | boolean | não | true | Preenche as colunas mapeadas com os valores extraídos. | - |
headerMappings | map | não | {} | Caminho na extração → coluna DESTA tabela que recebe o valor do cabeçalho. | - |
linesMappings | map | não | {} | Caminho dentro de cada linha extraída → coluna da tabela das linhas que recebe o valor. | - |
linesTargetFeatureId | uuid | não | - | Tabela onde se criam as linhas do documento; vazio só preenche o cabeçalho. | feature (uuid) |
linesNumberColumnName | string | não | - | Coluna da tabela das linhas que recebe o número de ordem. | coluna de linesTargetFeatureId (nome) |
headerIdColumnName | string | não | - | Coluna DESTA tabela que identifica o cabeçalho nas linhas. | coluna (nome) |
linesHeaderIdColumnName | string | não | - | Coluna da tabela das linhas que recebe o id do cabeçalho. | coluna de linesTargetFeatureId (nome) |
autoMatchFields | map | não | {} | Campo da linha → onde procurar o registo que lhe corresponde. | - |
enableAutoMatching | boolean | não | false | Liga o auto-match nos campos das linhas. | - |
headerAutoMatchFields | map | não | {} | Coluna do cabeçalho (por nome) → onde procurar o registo que lhe corresponde. | chave: coluna (nome) |
enableHeaderAutoMatching | boolean | não | false | Liga o auto-match nos campos do cabeçalho. | - |
headerCreationMappings | map | não | {} | Coluna do cabeçalho (as MESMAS chaves de headerAutoMatchFields) → o que a criação do registo em falta leva. | chave: coluna (nome) |
lineCreationMappings | map | não | {} | Campo da linha (as MESMAS chaves de autoMatchFields) → o que a criação do registo em falta leva. | - |
ocrApiEndpoint | string | não | - | URL de um serviço de OCR próprio; vazio usa o do produto. | - |
useOcrForAllDocuments | boolean | não | false | Força o OCR mesmo em documentos com texto embutido. | - |
documentType | enumeration | não | "invoice" | Editor usado na revisão: fatura (com linhas e totais) ou genérico. | - |
requiredExtractionFields | list de string | não | - | Caminhos da extração marcados como CRÍTICOS: em falta, o editor avisa antes de gravar (nunca bloqueia). Só na fatura. | - |
autoMatchFields{}
Cada entrada de autoMatchFields é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
featureId | uuid | não | - | Tabela onde se procura a linha correspondente. | feature (uuid) |
searchColumn | string | não | - | Coluna dessa tabela onde se procura o texto extraído. | coluna de featureId (nome) |
valueColumn | string | não | - | Coluna dessa tabela cujo valor fica na célula do match. | coluna de featureId (nome) |
displayColumn | string | não | - | Coluna dessa tabela que se mostra ao utilizador. | coluna de featureId (nome) |
renderType | string | não | - | Reservado para a forma de render do campo; hoje só "textfield". | - |
headerAutoMatchFields{}
Cada entrada de headerAutoMatchFields é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
featureId | uuid | não | - | Tabela onde se procura a linha correspondente. | feature (uuid) |
searchColumn | string | não | - | Coluna dessa tabela onde se procura o texto extraído. | coluna de featureId (nome) |
valueColumn | string | não | - | Coluna dessa tabela cujo valor fica na célula do match. | coluna de featureId (nome) |
displayColumn | string | não | - | Coluna dessa tabela que se mostra ao utilizador. | coluna de featureId (nome) |
renderType | string | não | - | Reservado para a forma de render do campo; hoje só "textfield". | - |
headerCreationMappings{}[]
Cada elemento de cada entrada de headerCreationMappings é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
targetColumn | string | não | - | Coluna a preencher na tabela do auto-match deste campo do cabeçalho. uuid OU nome: buildCreationOverrides aceita os dois. | coluna da mesma chave de headerAutoMatchFields (uuid ou nome) |
sourceField | string | não | - | Caminho do valor na extração do documento (ex.: "supplier.taxId"). | - |
lineCreationMappings{}[]
Cada elemento de cada entrada de lineCreationMappings é um objeto:
| Chave | Tipo | Obrigatório | Omissão | Descrição | Referência |
|---|---|---|---|---|---|
targetColumn | string | não | - | Coluna a preencher na tabela do auto-match deste campo da linha. uuid OU nome: buildCreationOverrides aceita os dois. | coluna da mesma chave de autoMatchFields (uuid ou nome) |
sourceField | string | não | - | Chave do valor dentro da linha extraída (ex.: "unit"). | - |
Exemplo JSON
{
"allowedExtensions": [
"pdf",
"jpg",
"jpeg",
"png",
"bmp",
"gif",
"webp"
],
"enableOCR": true,
"enableAIProcessing": true,
"ocrProvider": "google_ml_kit",
"aiProvider": "openai",
"autoProcess": false,
"showPreview": true,
"pdfRenderDPI": 150,
"processAllPages": true,
"combinePageTexts": true,
"saveDocument": true,
"autoFillFields": true,
"headerMappings": {},
"linesMappings": {},
"autoMatchFields": {},
"enableAutoMatching": false,
"headerAutoMatchFields": {},
"enableHeaderAutoMatching": false,
"headerCreationMappings": {},
"lineCreationMappings": {},
"useOcrForAllDocuments": false,
"documentType": "invoice"
}
Gerado de definitions.json versão 17f3e0bc59d9. Esta página nasce no build: não se edita à mão.