Skip to main content
Requirements are a special type of Component used as input to the “validate” step in Instruct/Validate/Repair design patterns.

Functions

FUNC requirement_check_to_bool

requirement_check_to_bool(x: CBlock | str) -> bool
Checks if a given output should be marked converted to True. By default, the requirement check alora outputs: \{"requirement_likelihood": 0.0\}. Returns True if the likelihood value is > 0.5. Args:
  • x: ALoRA output string or CBlock containing JSON with a requirement_likelihood field.
Returns:
  • True if the extracted likelihood exceeds 0.5, False otherwise.

FUNC reqify

reqify(r: str | Requirement) -> Requirement
Map strings to Requirements. This is a utility method for functions that allow you to pass in Requirements as either explicit Requirement objects or strings that you intend to be interpreted as requirements. Args:
  • r: A [Requirement](../../core/requirement#class-requirement) object or a plain string description to wrap as one.
Returns:
  • A [Requirement](../../core/requirement#class-requirement) instance.
Raises:
  • Exception: If r is neither a str nor a [Requirement](../../core/requirement#class-requirement) instance.

FUNC req

req(*args, **kwargs) -> Requirement
Shorthand for Requirement.__init__. Args:
  • *args: Positional arguments forwarded to Requirement.__init__.
  • **kwargs: Keyword arguments forwarded to Requirement.__init__.
Returns:
  • A new [Requirement](../../core/requirement#class-requirement) instance.

FUNC check

check(*args, **kwargs) -> Requirement
Shorthand for Requirement.__init__(..., check_only=True). Args:
  • *args: Positional arguments forwarded to Requirement.__init__.
  • **kwargs: Keyword arguments forwarded to Requirement.__init__.
Returns:
  • A new [Requirement](../../core/requirement#class-requirement) instance with check_only=True.

FUNC simple_validate

simple_validate(fn: Callable[[str], Any]) -> Callable[[Context], ValidationResult]
Syntactic sugar for writing validation functions that only operate over the last output from the model (interpreted as a string). This is useful when your validation logic only depends upon the most recent model output. For example: Requirement("Answer 'yes' or 'no'", simple_validate(lambda x: x == 'yes' or x == 'no') Validation functions operate over Context. Often you do not care about the entire context, and just want to consider the most recent output from the model. Args:
  • fn: the simple validation function that takes a string and returns either a bool or (bool, str)
  • reason: only used if the provided function returns a bool; if the validation function fails, a static reason for that failure to give to the llm when repairing
Returns:
  • A validation function that takes a [Context](../../core/base#class-context) and returns a [ValidationResult](../../core/requirement#class-validationresult).
Raises:
  • ValueError: If fn returns a type other than bool or tuple[bool, str].

Classes

CLASS LLMaJRequirement

A requirement that always uses LLM-as-a-Judge. Any available constraint ALoRA will be ignored. Attributes:
  • use_aloras: Always False for this class; ALoRA adapters are never used even if they are available.

CLASS ALoraRequirement

A requirement validated by an ALoRA adapter; falls back to LLM-as-a-Judge only on error. If an exception is thrown during the ALoRA execution path, mellea will fall back to LLMaJ. That is the only case where LLMaJ will be used. Args:
  • description: Human-readable requirement description.
  • intrinsic_name: Name of the ALoRA intrinsic to use. Defaults to "requirement_check".
Attributes:
  • use_aloras: Always True; this class always attempts to use ALoRA adapters for validation.