Skip to content

Capabilities ​

Purple8 DocIntel handles the full document intelligence lifecycle — from raw bytes to a structured knowledge graph — across every common enterprise format.

Supported formats ​

Purple8 DocIntel natively parses 70+ document formats across 6 categories — no pre-conversion required.

Office & productivity ​

FormatExtension(s)Notes
PDF.pdfText extraction + OCR fallback for scanned pages
Word.docx, .doc, .odtParagraph, heading, table structure preserved
Excel.xlsx, .xls, .odsAll sheets; cell values + types
PowerPoint.pptx, .ppt, .odpSlide text, notes, shape labels
RTF.rtfRich text formatting stripped to plain
EPUB.epubSpine chapters extracted as ordered pages

Web & text ​

FormatExtension(s)Notes
HTML.html, .htmTags stripped; structure preserved via headings
Plain text.txt, .md, .markdown, .rstDecoded UTF-8, latin-1 fallback
Email.eml, .msgHeaders + body; attachments enumerated
CSV / TSV.csv, .tsvRendered as pipe-delimited markdown tables
JSON.jsonPretty-printed as structured text
XML.xmlTags preserved as structured context

Images (OCR) ​

FormatExtension(s)Engine
Raster images.png, .jpg, .jpeg, .tiff, .bmp, .webpTesseract · Azure Document Intelligence · Google Cloud Vision · AWS Textract
Sketch / whiteboard.sketchGPT-5 vision · Azure AI Vision 4.0 · Google Cloud Vision

CAD & BIM ​

FormatExtension(s)Extracted content
IFC.ifc, .ifczipProject, site, building, storeys, spaces, IfcElements, materials, property sets, quantities, type objects
DXF.dxfLayers, entities, blocks, dimensions, text
DWG.dwgVia LibreDWG conversion to DXF
STEP.step, .stpAssembly tree, part names, B-rep metadata
STL.stlTriangle count, bounding box, part name
OBJ.objMesh groups, material references
GLTF / GLB.gltf, .glbScene hierarchy, mesh names, materials
G-code.gcodeTool paths, layer count, estimated print time

Code & config ​

.py, .js, .ts, .css, .sql, .sh, .env, .yaml, .yml, .toml, .ini, .cfg — extracted as structured text with language metadata.

SAP ​

FormatExtension(s)Notes
IDoc.idocFixed-width 1000-byte record format; segment tree reconstructed
ABAP source.abapExtracted as plain text with structure markers

LLM providers ​

Configure via LLM__PROVIDER environment variable:

ProviderValueNotes
OpenAIopenaiDefault; uses ModelRegistry tiers
Azure OpenAIazureSet LLM__AZURE_ENDPOINT + LLM__AZURE_DEPLOYMENT
AnthropicanthropicClaude 3.x via tool-use mode
Google GeminigeminiVia Vertex AI or AI Studio
OllamaollamaSet LLM__BASE_URL; air-gapped deployments

Model tiers (ModelRegistry) ​

TierCurrent modelUsed for
FLAGSHIPgpt-5.6-solAEC, Legal/Contract
DEFAULTgpt-5.6-terraFinancial, Scientific, General
VISIONgpt-5.6-solSketch / image parsing
NANOgpt-6-lunaHigh-volume, cost-sensitive extraction

All four constants live in config.ModelRegistry. Upgrading models = changing four lines.

OCR engines ​

EngineOCR__ENGINE valueNotes
TesseracttesseractDefault; local, no API key needed
Azure Document Intelligenceazure_doc_intelBest for structured forms + tables
Google Cloud Visiongoogle_visionStrong multilingual support
AWS TextracttextractBest for US healthcare + financial forms

Domain extraction profiles ​

See Extraction Profiles → for full ontology details.

Profileprofile= valueModel tierChunkingConfidence
AEC / BIMaecFLAGSHIPtable_aware≥ 0.75
Legal / ContractcontractFLAGSHIPclause≥ 0.75
Financial / ERPfinancialDEFAULTtable_aware≥ 0.68
ScientificscientificDEFAULTsection≥ 0.70
GeneralgeneralDEFAULTparagraph≥ 0.65

Source connectors ​

See Connectors → for configuration details.

ConnectorAuthProtocol
Microsoft SharePointAzure AD service principalBatch pull + change webhooks
Atlassian ConfluenceAPI tokenBatch pull by space key
AWS S3IAM credentials / instance profileBatch pull with prefix + glob filter
Generic webhookBearer token (header)POST file bytes or URL

Job persistence ​

Jobs and SHA-256 content hashes are persisted in an embedded durable p8l log (SessionContentStore) at /data/docintel_jobs.p8l by default — zero external Redis or SQLite dependencies required. Child CPU workers use lazy initialisation (_LazySessionContentStore) so multi-core worker pools spawn with zero startup replay overhead.

Confidence calibration v0.12.5 ​

LLMs systematically produce overconfident scores (clustered 0.85–1.0). DocIntel applies temperature scaling (T = 2.0) to spread the distribution via a logit → scale → sigmoid transform:

Raw LLM scoreCalibrated score
0.95~0.82
0.90~0.74
0.80~0.62
0.70~0.58
0.500.50 (fixed point)

Applied after fuzzy dedup, before the per-profile confidence threshold. Invoice ECE improved from 0.30 → 0.13.

Read more →

Table extraction v0.6.7 ​

Structured tables from PDFs, DOCX, and XLSX are no longer flattened into running text:

  1. _tables_to_markdown() converts ParsedDocument.raw_tables into markdown table strings
  2. _inject_table_windows() creates dedicated LLM context windows from those tables
  3. Large tables are auto-split by row with header preservation
  4. Each window is tagged with is_table=True metadata

This ensures line items, amounts, dates, and columnar data in tabular form get full extraction attention.

Read more →

Incremental processing v0.6.7 ​

Resubmitting the same document (via any connector or API) costs zero processing:

  1. SHA-256 content_hash computed from raw document bytes
  2. All three job stores (memory, redis, sqlite) support get_by_hash() lookup
  3. If a completed job with the same hash exists, the cached ExtractionResult is returned immediately
  4. The new job is marked completed with a pipeline.incremental_skip log entry

Read more →

Multi-language support v0.12.5 ​

Automatic language detection across 75+ languages via Lingua, paired with rich per-language extraction conventions:

LanguageScriptKey guidance
GermanLatinCompound nouns split; formal Sie/du handling
FrenchLatinAccented characters preserved; date format DD/MM/YYYY
ChineseCJKSimplified & traditional; no spaces between characters
JapaneseCJK + KanaKanji names with furigana; honorifics preserved
KoreanHangulHangul + Hanja; family-name-first convention
ArabicArabicRight-to-left; Hijri date normalisation
HindiDevanagariDevanagari + Latin transliteration; honorifics
+ 8 moreVariousSpanish, Portuguese, Italian, Dutch, Russian, Turkish, Polish, Swedish

All entity names are extracted in native script with optional romanisation. JSON keys always returned in English.

Read more →

Purple8 DocIntel v0.12.5 · Universal Document Intelligence · NVIDIA Inception Member · Red Hat Technology Partner.