notice
This is unreleased documentation for Rasa Documentation Main/Unreleased version.
For the latest released documentation, see the latest version (3.x).
rasa.core.processor
MessageProcessor Objects
The message processor is interface for communicating with a bot model.
__init__
Initializes a MessageProcessor
.
handle_message
Handle a single message with this processor.
run_action_extract_slots
Run action to extract slots and update the tracker accordingly.
Arguments:
output_channel
- Output channel associated with the incoming user message.tracker
- A tracker representing a conversation state.
Returns:
the given (updated) tracker
run_anonymization_pipeline
Run the anonymization pipeline on the new tracker events.
Arguments:
tracker
- A tracker representing a conversation state.
predict_next_for_sender_id
Predict the next action for the given sender_id.
Arguments:
sender_id
- Conversation ID.
Returns:
The prediction for the next action. None
if no domain or policies loaded.
predict_next_with_tracker
Predict the next action for a given conversation state.
Arguments:
tracker
- A tracker representing a conversation state.verbosity
- Verbosity for the returned conversation state.
Returns:
The prediction for the next action. None
if no domain or policies loaded.
fetch_tracker_and_update_session
Fetches tracker for sender_id
and updates its conversation session.
If a new tracker is created, action_session_start
is run.
Arguments:
metadata
- Data sent from client associated with the incoming user message.output_channel
- Output channel associated with the incoming user message.sender_id
- Conversation ID for which to fetch the tracker.
Returns:
Tracker for sender_id
.
fetch_tracker_with_initial_session
Fetches tracker for sender_id
and runs a session start if it's a new
tracker.
Arguments:
metadata
- Data sent from client associated with the incoming user message.output_channel
- Output channel associated with the incoming user message.sender_id
- Conversation ID for which to fetch the tracker.
Returns:
Tracker for sender_id
.
get_tracker
Get the tracker for a conversation.
In contrast to fetch_tracker_and_update_session
this does not add any
action_session_start
or session_start
events at the beginning of a
conversation.
Arguments:
conversation_id
- The ID of the conversation for which the history should be retrieved.
Returns:
Tracker for the conversation. Creates an empty tracker in case it's a new conversation.
fetch_full_tracker_with_initial_session
Get the full tracker for a conversation, including events after a restart.
Arguments:
conversation_id
- The ID of the conversation for which the history should be retrieved.output_channel
- Output channel associated with the incoming user message.metadata
- Data sent from client associated with the incoming user message.
Returns:
Tracker for the conversation. Creates an empty tracker with a new session initialized in case it's a new conversation.
get_trackers_for_all_conversation_sessions
Fetches all trackers for a conversation.
Individual trackers are returned for each conversation session found
for conversation_id
.
Arguments:
conversation_id
- The ID of the conversation for which the trackers should be retrieved.
Returns:
Trackers for the conversation.
log_message
Log message
on tracker belonging to the message's conversation_id.
Optionally save the tracker if should_save_tracker
is True
. Tracker saving
can be skipped if the tracker returned by this method is used for further
processing and saved at a later stage.
execute_action
Execute an action for a conversation.
Note that this might lead to unexpected bot behavior. Rather use an intent
to execute certain behavior within a conversation (e.g. by using
trigger_external_user_uttered
).
Arguments:
sender_id
- The ID of the conversation.action_name
- The name of the action which should be executed.output_channel
- The output channel which should be used for bot responses.nlg
- The response generator.prediction
- The prediction for the action.
Returns:
The new conversation state. Note that the new state is also persisted.
predict_next_with_tracker_if_should
Predicts the next action the bot should take after seeing x.
This should be overwritten by more advanced policies to use ML to predict the action.
Returns:
The index of the next action and prediction of the policy.
Raises:
ActionLimitReached if the limit of actions to predict has been reached.
handle_reminder
Handle a reminder that is triggered asynchronously.
trigger_external_user_uttered
Triggers an external message.
Triggers an external message (like a user message, but invisible; used, e.g., by a reminder or the trigger_intent endpoint).
Arguments:
intent_name
- Name of the intent to be triggered.entities
- Entities to be passed on.tracker
- The tracker to which the event should be added.output_channel
- The output channel.
parse_message
Interprets the passed message.
Arguments:
message
- Message to handle.tracker
- Tracker to use.only_output_properties
- IfTrue
, restrict the output to Message.only_output_properties.
Returns:
Parsed data extracted from the message.
is_action_limit_reached
Check whether the maximum number of predictions has been met.
Arguments:
tracker
- instance of DialogueStateTracker.should_predict_another_action
- Whether the last executed action allows for more actions to be predicted or not.
Returns:
True
if the limit of actions to predict has been reached.
should_predict_another_action
Determine whether the processor should predict another action.
Arguments:
action_name
- Name of the latest executed action.
Returns:
False
if action_name
is ACTION_LISTEN_NAME
or
ACTION_SESSION_START_NAME
, otherwise True
.
execute_side_effects
Send bot messages, schedule and cancel reminders that are logged in the events array.
save_tracker
Save the given tracker to the tracker store.
Arguments:
tracker
- Tracker to be saved.