The outcome
Label or score thousands of documents on many dimensions at a cost measured in dollars rather than hundreds, without a chain of dependent prompts.
Step by step
A workflow you can repeat.
- 01
Write the full set of questions up front — the classification Choice, the relevance Nouls, the quality Scores — including speculative ones your pipeline only needs in some branches, because an extra question costs only its own tokens and almost no latency.
- 02
Filter each record in code before it becomes state: trim to the fields the questions actually read, since accuracy drops as unrelated material grows and the limit is 64k tokens for state plus questions.
- 03
Batch through the async SDK client with a concurrency cap under the published rate limits (1,200 requests per minute and 250,000 tokens per second at launch) and let the SDK's default retry policy handle 429 and 529 responses.
- 04
Store the raw probabilities alongside each label so downstream analysis can re-threshold without re-running the corpus, and treat the score field as a position between your levels, not as a precise number.
- 05
Sample the low-confidence tail for human review and use what you find to tighten the criteria wording, then pin the versioned model ID so a future jev-latest release cannot silently shift your labels.
Working standard
What good use looks like.
- Filter before you send.
- Pin the model version for reproducible labels.
- Review the low-confidence tail, not a random sample.
Official references
Check the current product documentation.
- TypeSafe AI: Introducing System One Models & Jev ↗
- TypeSafe docs: Quick start ↗
- TypeSafe docs: Primitives (Choice, Score, Noul) ↗
- TypeSafe docs: Confidence ↗
- TypeSafe docs: Models, pricing and rate limits ↗
- TypeSafe docs: HTTP API reference ↗
- TypeSafe docs: Jev 1.13 jaggedness (known failure modes) ↗
- TypeSafe workflow evals ↗
- TypeSafe agent skill for Claude Code and other agents ↗