Skip to main content

portia.clarification_handler

Clarification Handler.

This module defines the base ClarificationHandler interface that determines how to handle clarifications that arise during the run of a plan. It also provides a CLIClarificationHandler implementation that handles clarifications via the CLI.

ClarificationHandler Objects

class ClarificationHandler(ABC)

Handles clarifications that arise during the execution of a plan run.

handle

def handle(clarification: Clarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle a clarification by routing it to the appropriate handler.

Arguments:

  • clarification - The clarification object to handle
  • on_resolution - Callback function that should be invoked once the clarification has been handled, prompting the plan run to resume. This can either be called synchronously in this function or called async after returning from this function.
  • on_error - Callback function that should be invoked if the clarification handling has failed. This can either be called synchronously in this function or called async after returning from this function.

handle_action_clarification

def handle_action_clarification(
clarification: ActionClarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle an action clarification.

handle_input_clarification

def handle_input_clarification(
clarification: InputClarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle a user input clarification.

handle_multiple_choice_clarification

def handle_multiple_choice_clarification(
clarification: MultipleChoiceClarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle a multi-choice clarification.

handle_value_confirmation_clarification

def handle_value_confirmation_clarification(
clarification: ValueConfirmationClarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle a value confirmation clarification.

handle_custom_clarification

def handle_custom_clarification(
clarification: CustomClarification,
on_resolution: Callable[[Clarification, object], None],
on_error: Callable[[Clarification, object], None]) -> None

Handle a custom clarification.