The platform does the heavy lifting. Ingestion captures source metadata (
Last Modified, File Type, Created By, Folder Structure, and more) on every document, the versioning and duplicate detection engines work on content without LLM calls, and classification extracts the standard quality tags (Title, Author, Document Type, Document Date, Version). The SDK orchestrates and reuses that metadata; it never re-implements it.The Flow
Configuration
The quality tags below are the platform’s standard extracted tags. The coverage threshold and freshness cutoff are your use case’s rules; the same file can be ready for one use case and not another.Step 1. Expire Stale Files First
Last Modified comes from the source system and was captured automatically at ingestion, so this filter costs nothing. Files older than your cutoff get Data Quality Status = expired, written through metadata.upsert, the same signal-write path the app’s freshness service uses. Every file expired here is a file you never pay to classify.
Last Modified is the free first pass. After classification runs in Step 3, Document Date (the date a document states about itself) is the stronger signal; re-apply the cutoff with it for precision, as in Keep Answers Current Over Time.Step 2. Drop Duplicates and Old Versions
Versioning clusters documents that are versions of the same logical document by content, no LLM calls involved. Run it, then let the platform’s selection keep the latest copy per group.Document Date if present, then source-system timestamps like Last Modified, then extracted Version identifiers. The platform’s duplicate detection (the Uniqueness tab in the app) applies that priority, recommends the canonical copy, and tags the rest Data Quality Status = redundant. Superseded copies are tagged and excluded, not deleted, so every decision is auditable and reversible.
Exact duplicates (
...copy 2, re-uploads) are caught by content hash the same way and also receive Data Quality Status = redundant. Every duplicate flagged here is another file you never pay to classify. Identity-based grouping gets even better once tags exist, so heavily duplicated sources are worth a second dedup pass after Step 3.Step 3. Classify Only the Survivors
Now the expensive step, scoped to the smallest possible set. Create a working slice that excludes everything flagged so far, check tag coverage on it, and run the classification job against that slice only. Expired and redundant files never touch the LLM.Step 4. Select the Relevant Files and Create the AI-Ready Slice
Readiness has two sides. Quality says a file is trustworthy; relevance says it belongs to this use case. Both are decided by metadata:- Relevance is a positive selection on the tags you extracted. A contracts assistant wants
Document Typein contracts and agreements, not canteen menus that happen to live in the same library. - Quality is an exclusion on
Data Quality Status, the platform’s shared quality flag. A document tagged with it is eitherredundant(a duplicate or superseded copy, written by the platform’s duplicate detection),expired(out of date for this use case, written by the freshness rule), or otherwise flagged as unfit, such asirrelevant. A document with noData Quality Statustag has passed every quality check.
not_exists exclusion the platform’s own AI-ready slice creation uses. Filtering to a slice is the heart of the experience: a slice is a use case.
Step 5. Ship It
Only data that passes the gate reaches the destination.How to Use This
- In your own pipeline. Everything above is plain SDK calls: trigger the scan, write the signals, produce the slice, ship it. Schedule it with a Workflow or your own orchestrator.
- Cost order matters. Freshness and dedup are metadata and content checks; classification is the LLM spend. Filtering first means you tag the smallest possible set, and re-runs only classify what’s new.
- Per use case. Run it once per use case with different quality tags, thresholds, cutoffs, and relevance selections. The same file can be ready for one slice and not another.
- In the app. The Data Quality screen runs this same flow interactively, with review steps for duplicates and expiring files, and the Command Center tracks the background jobs.
Next Steps
Keep Answers Current Over Time
The full freshness flow, including the Document Date refinement.
Protect Sensitive Data
Add the opt-in sensitivity dimension to the gate.
Clean Up a RAG Index
Ship the curated slice into a vector database.
Data Slices
The condition syntax behind the gate.
