Bases: IOMessageVisitor
Initialize the MesopGUIMessageVisitor object.
PARAMETER | DESCRIPTION |
level | The level of the message. TYPE: int |
conversation_id | The ID of the conversation. TYPE: str |
conversation_message | Conversation message that wraps the visited io_message TYPE: ConversationMessage |
read_only | Input messages are disabled in read only mode TYPE: bool DEFAULT: False |
Source code in fastagency/ui/mesop/message.py
| def __init__(
self,
level: int,
conversation_id: str,
conversation_message: ConversationMessage,
read_only: bool = False,
) -> None:
"""Initialize the MesopGUIMessageVisitor object.
Args:
level (int): The level of the message.
conversation_id (str): The ID of the conversation.
conversation_message (ConversationMessage): Conversation message that wraps the visited io_message
read_only (bool): Input messages are disabled in read only mode
"""
self._level = level
self._conversation_id = conversation_id
self._readonly = read_only
self._conversation_message = conversation_message
|
process_message
Source code in fastagency/ui/mesop/message.py
| def process_message(self, message: IOMessage) -> Optional[str]:
return self.visit(message)
|
visit
Source code in fastagency/base.py
| def visit(self, message: IOMessage) -> Optional[str]:
method_name = f"visit_{message.type}"
method = getattr(self, method_name, self.visit_default)
return method(message)
|
visit_default
Source code in fastagency/ui/mesop/message.py
| def visit_default(self, message: IOMessage) -> None:
base_color = "#aff"
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
border_radius=16,
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color)
me.markdown(message.type)
|
visit_function_call_execution
Source code in fastagency/ui/mesop/message.py
| def visit_function_call_execution(
self, message: FunctionCallExecution
) -> Optional[str]:
base_color = "#7ff"
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
align_self="flex-start",
width="95%",
border_radius=16,
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color, title="Function Call Execution")
with me.box():
me.text(message.function_name)
me.markdown(json.dumps(message.retval))
return ""
|
visit_multiple_choice
Source code in fastagency/ui/mesop/message.py
| def visit_multiple_choice(self, message: MultipleChoice) -> str:
if message.single:
return self._visit_single_choice(message)
else:
return self._visit_many_choices(message)
|
visit_suggested_function_call
Source code in fastagency/ui/mesop/message.py
| def visit_suggested_function_call(
self, message: SuggestedFunctionCall
) -> Optional[str]:
base_color = "#8ff"
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
align_self="flex-start",
width="95%",
border_radius=16,
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color, title="Suggested Function Call")
with me.box():
me.text(message.function_name)
me.markdown(json.dumps(message.arguments))
return ""
|
visit_system_message
Source code in fastagency/ui/mesop/message.py
| def visit_system_message(self, message: SystemMessage) -> None:
base_color = "#bff"
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
border_radius=16,
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color, title="System Message")
me.markdown(json.dumps(message.message, indent=2))
|
visit_text_input
Source code in fastagency/ui/mesop/message.py
| def visit_text_input(self, message: TextInput) -> str:
def on_input(feedback: str) -> Iterator[None]:
self._conversation_message.feedback = [feedback]
self._conversation_message.feedback_completed = True
yield from self._provide_feedback(feedback)
def value_if_completed() -> Optional[str]:
message = self._conversation_message
return message.feedback[0] if message.feedback_completed else None
base_color = "#dff"
prompt = message.prompt if message.prompt else "Please enter a value"
if message.suggestions:
suggestions = ",".join(suggestion for suggestion in message.suggestions)
prompt += "\n Suggestions: " + suggestions
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
border_radius=16,
align_self="flex-end",
width="95%",
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color, title="Input requested")
me.markdown(prompt)
input_text(
on_input,
"prompt",
disabled=self._readonly or self._has_feedback(),
value=value_if_completed(),
)
return ""
|
visit_text_message
Source code in fastagency/ui/mesop/message.py
| def visit_text_message(self, message: TextMessage) -> None:
base_color = "#fff"
with me.box(
style=me.Style(
background=base_color,
padding=me.Padding.all(16),
border_radius=16,
align_self="flex-start",
width="95%",
margin=me.Margin.symmetric(vertical=16),
)
):
self._header(message, base_color, title="Text message")
me.markdown(message.body)
|
visit_workflow_completed
Source code in fastagency/base.py
| def visit_workflow_completed(self, message: WorkflowCompleted) -> Optional[str]:
return self.visit_default(message)
|