validation_run checks that extracted values match what is in the source document, and value_manage normalizes inconsistent text values to a single canonical form.
validation_run
Verify extracted CSV data against the original source PDF. Soria uses a combination of heuristics and Gemini to compare extracted values to the source document and flag discrepancies. Validation runs automatically after extraction completes. Usevalidation_run directly when you want to manually trigger validation, re-validate after corrections, or validate a specific subset of files.
Validation currently applies to PDFs only. It compares the extracted CSV against the source PDF that was used as input.
Parameters
string
required
The workspace to run validation in.
string
required
The group containing the extracted CSV files to validate.
string[]
Limit validation to specific CSV file IDs. Defaults to all extracted CSV files in the group.
boolean
default:"false"
Re-validate files that already have validation results.
Examples
value_manage
Normalize inconsistent text values extracted from source files to a single canonical form. When Soria’s extraction AI processes different files, it may produce variations of the same concept:"total", "overall", "all ages", and "All" might all represent the same row label. value_manage lets you define which raw values are equivalent and map them to a single canonical value that downstream queries and models can rely on.
When to use value_manage
Value normalization is most useful for:- Unlabeled or ambiguous tables — where the AI produces slightly different labels for the same row across files
- Columns with a controlled vocabulary — plan types, coverage tiers, age bands, geographic regions
- Aggregation rows — where a “total” row might be labeled differently across issuers or years
Value states
Each extracted value is in one of three states:
You do not create canonicals upfront. When you map an unmapped value to another unmapped value, Soria automatically promotes the target to a canonical and maps the source to it.
Parameters
string
required
The schema column ID to manage values for. Get this from
schema_manage with read=True.boolean
default:"false"
Return all values for the column organized by state (canonicals, unmapped, mapped), with similarity suggestions for unmapped values.
boolean
default:"false"
Scan all extracted CSV files for this column and index the distinct values found. Also generates embeddings for similarity suggestions. This is a standalone operation — it cannot be combined with other parameters.Run this first after extraction completes to populate the value list before mapping.
boolean
default:"false"
Backfill vector embeddings for values that are missing them. Can be combined with
read and mutation operations.boolean
default:"false"
When used with
index=True, deletes all existing values for the column and re-indexes from scratch.object
Map source value IDs to target value IDs. If the target is currently unmapped, it is automatically promoted to a canonical.
string[]
Unmap one or more value IDs, returning them to unmapped state.
object
Rename a canonical value’s display text. Does not affect which raw values are mapped to it.
string
Required for write operations (
index, embed, map, unmap, rename).Typical workflow
1
Index values
After extraction, run
value_manage with index=True to collect all distinct values from the extracted CSVs and generate embeddings.2
Read values and suggestions
Call with
read=True to see all unmapped values and their similarity suggestions. Each unmapped value shows candidate canonicals ranked by semantic similarity.3
Map values to canonicals
Map unmapped value IDs to their canonical equivalents. You can map multiple values at once. Mapping one unmapped value to another promotes the target to a canonical automatically.
4
Rename canonicals (optional)
Give canonicals a clean display name if the raw text is ambiguous.
Example: normalizing age band labels
The extraction AI may produce all of these for the same concept across different source files:
After mapping, any downstream query against this column can filter on
"Total" and match all five variations.
Re-run
index after extracting new files to pick up any new values that appear in the latest data. Existing mappings are preserved — only new values are added.