Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 1.79 KB

File metadata and controls

37 lines (28 loc) · 1.79 KB
title Parsers
description Output-fixing and retry parsers for when an LLM emits dirty JSON.
sidebarTitle Parsers

Parser examples enact what happens when the LLM gets the JSON contract slightly wrong. Sources under examples/parsers/.

Name Scenario Source
parsers_fixing LLM emits malformed JSON — OutputFixingParser re-prompts with the parse error, the model usually fixes it on the second try. src
parsers_retry When one fix isn't enough — RetryParser loops the fixer + parse cycle up to N times until parsing succeeds, surfacing the last error if all attempts fail. src

How to run

cargo run -p cognis-examples --example parsers_fixing
cargo run -p cognis-examples --example parsers_retry

When to use which

  • OutputFixingParser — model is capable of valid JSON but slipped this time. Cheaper: one repair attempt with the parse error in the prompt.
  • RetryParser — one repair pass isn't enough; loop fixer + parse up to N times. More expensive but more robust against models that produce different-but-still-broken JSON each attempt.

In production, layer them: RetryParser::with_retries(OutputFixingParser::new(inner, fixer), 3).

See also

The user guide for parsers and recovery strategies. `chains_structured_parsing` shows the parsers in a chain.