parser_factory¶
parser_factory ¶
Factory for creating response parsers based on configuration.
create_response_parser ¶
Create appropriate response parser based on prompt specification.
This factory enables configuration-driven parser selection, supporting: - Raw text output (default, backward compatible) - JSON structured output (for multiple fields) - Regex pattern extraction (for formatted text)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
prompt_spec
|
PromptSpec
|
Prompt specification with response_format |
required |
output_columns
|
list[str]
|
Expected output column names |
required |
Returns:
| Type | Description |
|---|---|
ResponseParser
|
Configured ResponseParser instance |
Raises:
| Type | Description |
|---|---|
ValueError
|
If response_format is invalid or required config missing |
Example
JSON mode¶
parser = create_response_parser( prompt_spec=PromptSpec( template="...", response_format="json", json_fields=["score", "explanation"] ), output_columns=["score", "explanation"] )
Regex mode¶
parser = create_response_parser( prompt_spec=PromptSpec( template="...", response_format="regex", regex_patterns={ "score": r"SCORE:\s(\d+)", "explanation": r"EXPLANATION:\s(.+)" } ), output_columns=["score", "explanation"] )
Source code in ondine/stages/parser_factory.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | |