Overview
What are Base Versions?
Base model versions are the fundamental building blocks of our processing and parsing system. They control the underlying base configuration for each processor and parser, including critical components like:
- The OCR models, layout models, reading order models, and VLMs applied in parsing
- Foundation model(s) used in the pipeline
- Post-processing rules
- Reasoning steps
- Internal validation schemes
- Base prompting strategies
- Agentic vs. non-agentic processing modes
- And other core functionalities surrounding the execution of a given processor or parser
These base configurations are essential in determining the overall performance, accuracy, and capabilities of our processing system across different use cases.
For parse processors specifically, the selected parse version controls the model versions and pipeline defaults used to transform files into structured document blocks. This includes the OCR engine, layout model, reading order model, and the VLMs used to process specific block types such as tables, key-value pairs, forms, charts, figures, formulas, and barcodes.
Versioning System
We employ a semantic versioning system for our base processors. This system allows us to communicate the nature and impact of changes clearly. Our version numbers follow the format: MAJOR.MINOR.PATCH
Major Version Updates (X.0.0)
Major version updates are reserved for changes that can potentially affect accuracy, latency, or reliability across every use case. The expectation is that a major version update would have a guaranteed impact for all users of the processor, and any consumer should expect to see changes in their output when upgrading to a new major version.
These include changes such as:
- Updates to the underlying model and downstream version
- We generally avoid upgrading to new models at the base layer unless there’s a significant, across-the-board benefit. Use case specific upgrades might still occur in an override fashion for your use case (which would be communicated separately).
- Changes to the entire structure of our base prompting system
- Fundamental changes to how a given processor works/or is configured
- Modifications that affect how data interacts with consumers of the API
- etc.
Minor Version Updates (0.X.0)
Minor version updates are for changes that could cause potentially significant changes to specific use cases, but not necessarily all use cases.
Examples include:
- Adding a new field type for extraction, e.g. the
signaturetype orenumtype - Introducing a new set of base prompt rule for specific data types to improve accuracy
- Making backwards compatible, but still material changes to the underlying processor model
- etc.
Patch Version Updates (0.0.X)
Patch updates are for changes that are not expected to meaningfully impact functionality in any way outside of very few isolated cases.
These might include:
- Addressing a bug in the processor that only affects a small subset of use cases
- Fixing typos in prompts
- Adjusting newlines or spacing in prompts
- etc.
Importance of Versioning
Understanding our versioning system is crucial for developers and users of our base processors. It allows you to:
- Anticipate the potential impact of updates on your specific use cases
- Make informed decisions about when to upgrade to newer versions
- Maintain consistency and reliability in your applications that depend on our base processors
We strive to provide detailed changelogs for each version update, ensuring you have all the information needed to understand the changes and their potential impacts on your workflows.
If you have any questions or need further clarification on our versioning system, please reach out to us on Slack.

