18. 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] = []
Note
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.