from typing import Dict, Any from aiflows.base_flows import AtomicFlow from aiflows.messages import FlowMessage class FixedReplyFlow(AtomicFlow): """ This class implements a FixedReplyFlow. It's used to reply with a fixed reply. *Configuration Parameters*: - `name` (str): The name of the flow. - `description` (str): A description of the flow. This description is used to generate the help message of the flow. - `fixed_reply` (str): The fixed reply to reply with. - The other configuration parameters are inherited from the default configuration of AtomicFlow (see AtomicFlow) *Input Interface*: - None Output Interface: - `fixed_reply` (str): The fixed reply. :param \**kwargs: The keyword arguments passed to the AtomicFlow constructor. Among these is the flow_config which should also contain the "fixed_reply" key. :type \**kwargs: Dict[str, Any] """ REQUIRED_KEYS_CONFIG = ["fixed_reply"] __default_flow_config = { "input_interface": [], "output_interface": ["fixed_reply"], } def __init__(self, **kwargs): super().__init__(**kwargs) def run(self, input_message: FlowMessage): """ Runs the FixedReplyFlow. It's used to reply with a fixed reply. :param input_message: The input message :type input_message: FlowMessage """ reply = self.package_output_message( input_message=input_message, response={"fixed_reply": self.flow_config["fixed_reply"]} ) self.send_message(reply)