Skip to content

Layout

INITIALIZING_MESSAGE = RxMessage(role=MessageRoles.ASSISTANT, content='Waiting for assistant to respond...') module-attribute

NEXT_STEP_MAP = {'tool_call': 'Use tools to get more information', 'enough_steps_to_tool_call_node': 'Use tools to get more information', 'call_llm': 'Ask LLM to produce a response or call tools'} module-attribute

THINKING_MESSAGE = RxMessage(role=MessageRoles.ASSISTANT, content='Thinking before answering...') module-attribute

ControlPanelState

Bases: HasUpdatableVars, State

update(update) async

ErrorDuringRunUpdate dataclass

Bases: Update

user_input instance-attribute

__init__(user_input)

GraphInfoState

Bases: HasUpdatableVars, State

last_completed_step = None class-attribute instance-attribute

llm_call_count = 0 class-attribute instance-attribute

prompt_components_trimmed = [] class-attribute instance-attribute

create() classmethod

update(update) async

HasResumeAndCancelProtocol

Bases: Protocol

handle_cancel()

handle_resume()

PreviousMessagesState

Bases: HasUpdatableVars, State

previous_messages = rx.field([]) class-attribute instance-attribute

set_tool_group_info_level(index, info_level)

update(update) async

ResumeInterruptedRunState

Bases: HasUpdatableVars, State

Holds state related to resuming an interrupted graph run.

E.g. Possible Interrupt reasons: - Max steps reached - Tool call requires permission - Additional user input required

interrupt_description = 'Run was interrupted for an unexpected reason.' class-attribute instance-attribute

main_event_handler class-attribute

tool_calls = rx.field([]) class-attribute instance-attribute

visible = False class-attribute instance-attribute

handle_cancel() async

handle_continue() async

render_popup_window(resume_interrupted_state=None) classmethod

Popup window for resuming interrupted run.

Open state controlled by visible attribute (no button).

Note: Overlay only, doesn't show up in regular layout.

toggle_visible()

update(update) async

RunMessagesState

Bases: HasUpdatableVars, State

add_padding_at_bottom_of_messages = False class-attribute instance-attribute

current_streaming_message = None class-attribute instance-attribute

initializing = False class-attribute instance-attribute

pre_streaming_message = INITIALIZING_MESSAGE class-attribute instance-attribute

previously_streamed_messages = [] class-attribute instance-attribute

running = False class-attribute instance-attribute

thinking = False class-attribute instance-attribute

thinking_message = THINKING_MESSAGE class-attribute instance-attribute

user_input_message = rx.field(None) class-attribute instance-attribute

update(update) async

SubmissionState

Bases: HasUpdatableVars, State

user_input = '' class-attribute instance-attribute

set_user_input(value)

update(update) async

conversation_area_layout(previous_messages_state=PreviousMessagesState, run_messages_state=RunMessagesState)

Layout for the conversation area combining previous messages and run messages.

PARAMETER DESCRIPTION
previous_messages_state

Vars for previous messages

TYPE: type[PreviousMessagesState] DEFAULT: PreviousMessagesState

run_messages_state

Vars for the current request

TYPE: type[RunMessagesState] DEFAULT: RunMessagesState

conversation_input_layout(assistant_select_popover, submission_vars=SubmissionState, on_submit_handler=None)

Layout for the user input area and submit button.

PARAMETER DESCRIPTION
assistant_select_popover

Popover for selecting assistant (shows up as button next to submit on mobile only)

TYPE: Component

submission_vars

Vars for submission

TYPE: type[SubmissionState] DEFAULT: SubmissionState

on_submit_handler

Handler for submitting new user input

TYPE: Callable | None DEFAULT: None

input_area_layout(assistant_select_popover, submission_vars=SubmissionState, on_submit_handler=None)

Layout for the user input area and submit button.

PARAMETER DESCRIPTION
assistant_select_popover

Popover for selecting assistant (shows up as button next to submit on mobile only)

TYPE: Component

submission_vars

Vars for submission

TYPE: type[SubmissionState] DEFAULT: SubmissionState

on_submit_handler

Handler for new submission of user_input

TYPE: Callable | None DEFAULT: None

interrupt_description_from_partial_info(partial_info)

new_conversation_button(on_click_new_conversation)

Button to start a new conversation.

render_submit_button()

Submit button for user input.

render_user_input(user_input, set_user_input)

Text input area for user input.

Expands up to 40vh then becomes scrollable

PARAMETER DESCRIPTION
user_input

Var for user input

TYPE: StateAttr[str]

set_user_input

Function to set the user input on change

TYPE: EventCallback[str]

run_messages_layout(run_message_vars=RunMessagesState)

Layout for the messages that are part of the current request.

PARAMETER DESCRIPTION
run_message_vars

Vars for the current request

TYPE: type[RunMessagesState] DEFAULT: RunMessagesState