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:
|
run_messages_state
|
Vars for the current request
TYPE:
|
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:
|
submission_vars
|
Vars for submission
TYPE:
|
on_submit_handler
|
Handler for submitting new user input
TYPE:
|
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:
|
submission_vars
|
Vars for submission
TYPE:
|
on_submit_handler
|
Handler for new submission of user_input
TYPE:
|
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:
|
set_user_input
|
Function to set the user input on change
TYPE:
|
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:
|