End-to-End Workflow
Putting the pieces together, a typical metadata-QA cycle for a catalogue of records looks like this:
- Configure a client once, choosing a provider (Quick Start).
- Submit each record and collect its results. For many records, submit them and wait in turn, or submit a batch and wait on each Job handle.
- Assemble a workbook with one row per record and the issue array as a JSON string (Review Board).
- Triage in the review board — a human opens the workbook, works through projects highest-severity-first, and confirms which suggestions to apply (Review Board).
- Apply accepted fixes back to your metadata system as a separate
step, using the key paths in
current_metadata/suggested_metadatato target each field.
A minimal batch driver that submits everything first, then gathers results:
jobs = {name: client.submit(md) for name, md in catalogue.items()}
results = {}
for name, job in jobs.items():
try:
results[name] = job.wait_sync(timeout=300)
except RuntimeError as exc:
print(f"{name}: {exc}")
results[name] = []
Throughput tip
Submitting many jobs at once issues many concurrent LLM calls, which can hit provider rate limits. If you see rate-limit errors surface as failed jobs, submit in smaller waves, or run sequentially (submit, wait, repeat) to keep concurrency low.