JSON output
Final point of an extraction portfolio: the job returns the JSON produced by the JSON extraction node(s) wired to it. No annotated document is produced. A pipeline can hold only one node of this type, and never together with a document Output or a chat entry.
An extraction portfolio accepts the usual documents (.docx, .pdf, .pptx, .xlsx, .odt, .ods, .odp) and images (.jpg, .png, .tif, .tiff, .bmp), read by a vision model.
Ports
- Input (left, JSON type): connect it from one or more JSON extraction nodes.
- No output.
Configuration
None.
Getting the result
- In the app, the JSON button of the history downloads the extracted JSON. The results column shows whether it matches the format (✓) or not (⚠).
- In the editor, the test panel shows the JSON result tab: verdict, format deviations, conflicts between pages and the full JSON.
- Through the API,
GET /api/jobs/{id}/extractionreturns:
{
"data": { "numero_facture": "FA-2024-0042", "lignes": [ … ] },
"valid": true,
"errors": [],
"conflicts": [],
"pages": 3,
"mode": "text",
"sources": [{ "node_id": "…", "label": "Invoice extraction" }],
"windows": [{ "pages": "Pages 1–3", "method": "json_schema", "attempts": 1, … }]
}
data follows the format defined in the node. valid is false when the result still deviates from it after the correction passes, and errors says where. conflicts lists values found with different contents on several pages (the first one is kept).
- Over MCP, the
get_job_resulttool returnsextraction,validanderrors(see Pipeline as an MCP server).
Several extraction nodes
With a Switch upstream, a single route runs: the result is that of its extraction node. When several extraction nodes run for the same document (for example one for the header reading text, one for the table reading images), their JSONs are merged, and a key filled differently is reported as a conflict.
What is not available
An extraction portfolio appears neither in the Benchmark, which compares annotations, nor among the pipelines offered in Microsoft Teams. It cannot be called from a Pipeline node either.