rasa-pro 3.12.16__py3-none-any.whl → 3.12.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rasa-pro might be problematic. Click here for more details.

@@ -1137,15 +1137,12 @@ class ActionSendText(Action):
1137
1137
  tracker: "DialogueStateTracker",
1138
1138
  domain: "Domain",
1139
1139
  metadata: Optional[Dict[Text, Any]] = None,
1140
- create_bot_uttered_event: bool = True,
1141
1140
  ) -> List[Event]:
1142
1141
  """Runs action. Please see parent class for the full docstring."""
1143
1142
  fallback = {"text": ""}
1144
1143
  metadata_copy = copy.deepcopy(metadata) if metadata else {}
1145
1144
  message = metadata_copy.get("message", fallback)
1146
- if create_bot_uttered_event:
1147
- return [create_bot_utterance(message)]
1148
- return []
1145
+ return [create_bot_utterance(message)]
1149
1146
 
1150
1147
 
1151
1148
  class ActionExtractSlots(Action):
rasa/core/processor.py CHANGED
@@ -34,6 +34,9 @@ from rasa.dialogue_understanding.commands import (
34
34
  CannotHandleCommand,
35
35
  Command,
36
36
  NoopCommand,
37
+ RestartCommand,
38
+ SessionEndCommand,
39
+ SessionStartCommand,
37
40
  SetSlotCommand,
38
41
  )
39
42
  from rasa.dialogue_understanding.commands.utils import (
@@ -880,19 +883,61 @@ class MessageProcessor:
880
883
  tracker.has_coexistence_routing_slot
881
884
  and tracker.get_slot(ROUTE_TO_CALM_SLOT) is None
882
885
  ):
883
- # if we are currently not routing to either CALM or dm1
884
- # we make a sticky routing to CALM if there are any commands
885
- # from the trigger intent parsing
886
- # or a sticky routing to dm1 if there are no commands
886
+ # If we are currently not routing to either CALM or DM1:
887
+ # - Sticky route to CALM if there are any commands
888
+ # from the trigger intent parsing
889
+ # - Sticky route to DM1 if there are no commands present
890
+ route_to_calm_slot_value = self._determine_route_to_calm_slot_value(
891
+ nlu_adapted_commands
892
+ )
887
893
  commands += [
888
894
  SetSlotCommand(
889
- ROUTE_TO_CALM_SLOT, len(nlu_adapted_commands) > 0
895
+ ROUTE_TO_CALM_SLOT, route_to_calm_slot_value
890
896
  ).as_dict()
891
897
  ]
892
898
 
893
899
  parse_data[COMMANDS] = commands
894
900
  return parse_data
895
901
 
902
+ def _determine_route_to_calm_slot_value(
903
+ self, nlu_adapted_commands: List[Dict[str, Any]]
904
+ ) -> Optional[bool]:
905
+ """Determines what value should be assigned to `ROUTE_TO_CALM_SLOT`.
906
+
907
+ Returns:
908
+ - True: If any command other than:
909
+ - SessionStartCommand
910
+ - SessionEndCommand
911
+ - RestartCommand
912
+ is present.
913
+ - None: If only ignored system commands are present.
914
+ - False If no commands at all.
915
+ """
916
+ system_commands_to_ignore = [
917
+ SessionStartCommand.command(),
918
+ SessionEndCommand.command(),
919
+ RestartCommand.command(),
920
+ ]
921
+
922
+ # Exclude the system commands, as it doesn't originate from the user's
923
+ # input intent and shouldn't influence the decision for setting
924
+ # ROUTE_TO_CALM_SLOT.
925
+ intent_triggered_commands = [
926
+ command
927
+ for command in nlu_adapted_commands
928
+ if command.get("command") not in system_commands_to_ignore
929
+ ]
930
+
931
+ if len(intent_triggered_commands) > 0:
932
+ # There are commands other than system commands present - route to CALM
933
+ return True
934
+ elif len(nlu_adapted_commands) > 0:
935
+ # Only system command is present — defer routing decision
936
+ return None
937
+ else:
938
+ # No commands at all — route to DM1
939
+ return False
940
+
896
941
  def _update_full_retrieval_intent(self, parse_data: Dict[Text, Any]) -> None:
897
942
  """Update the parse data with the full retrieval intent.
898
943
 
@@ -119,7 +119,7 @@ class ClarifyCommand(Command):
119
119
  mapper = {
120
120
  CommandSyntaxVersion.v1: r"Clarify\(([\"\'a-zA-Z0-9_, -]*)\)",
121
121
  CommandSyntaxVersion.v2: (
122
- r"""^[\s\W\d]*disambiguate flows (["'a-zA-Z0-9_, -]*)[\W\\n]*$"""
122
+ r"""^[\s\W\d]*disambiguate flows (["'a-zA-Z0-9_, -]*)[\W]*$"""
123
123
  ),
124
124
  }
125
125
  return mapper.get(
@@ -13,6 +13,7 @@ from rasa.dialogue_understanding.commands.command_syntax_manager import (
13
13
  )
14
14
  from rasa.dialogue_understanding.commands.utils import (
15
15
  clean_extracted_value,
16
+ find_default_flows_collecting_slot,
16
17
  get_nullable_slot_value,
17
18
  )
18
19
  from rasa.dialogue_understanding.patterns.collect_information import (
@@ -136,6 +137,11 @@ class SetSlotCommand(Command):
136
137
  ):
137
138
  # Get the other predicted flows from the most recent message on the tracker.
138
139
  predicted_flows = get_flows_predicted_to_start_from_tracker(tracker)
140
+ if not predicted_flows:
141
+ # If no predicted flows, check for default flows collecting the slot.
142
+ predicted_flows = find_default_flows_collecting_slot(
143
+ self.name, all_flows
144
+ )
139
145
  use_slot_fill = any(
140
146
  step.collect == self.name and not step.ask_before_filling
141
147
  for flow in all_flows.underlying_flows
@@ -190,7 +196,7 @@ class SetSlotCommand(Command):
190
196
  r"""SetSlot\(['"]?([a-zA-Z_][a-zA-Z0-9_-]*)['"]?, ?['"]?(.*)['"]?\)"""
191
197
  ),
192
198
  CommandSyntaxVersion.v2: (
193
- r"""^[\s\W\d]*set slot ['"`]?([a-zA-Z_][a-zA-Z0-9_-]*)['"`]? ['"`]?(.+?)[\W\\n]*$""" # noqa: E501
199
+ r"""^[\s\W\d]*set slot ['"`]?([a-zA-Z_][a-zA-Z0-9_-]*)['"`]? ['"`]?(.+?)[\W]*$""" # noqa: E501
194
200
  ),
195
201
  }
196
202
  return mapper.get(
@@ -7,18 +7,18 @@ from rasa.dialogue_understanding.patterns.validate_slot import (
7
7
  )
8
8
  from rasa.shared.constants import ACTION_ASK_PREFIX, UTTER_ASK_PREFIX
9
9
  from rasa.shared.core.events import Event, SlotSet
10
+ from rasa.shared.core.flows import FlowsList
10
11
  from rasa.shared.core.slots import Slot
11
12
  from rasa.shared.core.trackers import DialogueStateTracker
12
13
 
13
14
  if TYPE_CHECKING:
14
15
  from rasa.dialogue_understanding.commands import StartFlowCommand
15
- from rasa.shared.core.flows import FlowsList
16
16
 
17
17
  structlogger = structlog.get_logger()
18
18
 
19
19
 
20
20
  def start_flow_by_name(
21
- flow_name: str, flows: "FlowsList"
21
+ flow_name: str, flows: FlowsList
22
22
  ) -> Optional["StartFlowCommand"]:
23
23
  from rasa.dialogue_understanding.commands import StartFlowCommand
24
24
 
@@ -126,3 +126,27 @@ def create_validate_frames_from_slot_set_events(
126
126
  validate_frames.append(frame)
127
127
 
128
128
  return tracker, validate_frames
129
+
130
+
131
+ def find_default_flows_collecting_slot(
132
+ slot_name: str, all_flows: FlowsList
133
+ ) -> List[str]:
134
+ """Find default flows that have collect steps matching the specified slot name.
135
+
136
+ Args:
137
+ slot_name: The name of the slot to search for.
138
+ all_flows: All flows in the assistant.
139
+
140
+ Returns:
141
+ List of flow IDs for default flows that collect the specified slot
142
+ without asking before filling.
143
+ """
144
+ return [
145
+ flow.id
146
+ for flow in all_flows.underlying_flows
147
+ if flow.is_rasa_default_flow
148
+ and any(
149
+ step.collect == slot_name and not step.ask_before_filling
150
+ for step in flow.get_collect_steps()
151
+ )
152
+ ]
@@ -53,7 +53,8 @@ class FlowStackFrameType(str, Enum):
53
53
  typ: The string to create the `FlowStackFrameType` from.
54
54
 
55
55
  Returns:
56
- The created `FlowStackFrameType`."""
56
+ The created `FlowStackFrameType`.
57
+ """
57
58
  if typ is None:
58
59
  return FlowStackFrameType.REGULAR
59
60
  elif typ == FlowStackFrameType.INTERRUPT.value:
@@ -107,7 +108,8 @@ class BaseFlowStackFrame(DialogueStackFrame):
107
108
  all_flows: All flows in the assistant.
108
109
 
109
110
  Returns:
110
- The current flow."""
111
+ The current flow.
112
+ """
111
113
  flow = all_flows.flow_by_id(self.flow_id)
112
114
  if not flow:
113
115
  # we shouldn't ever end up with a frame that belongs to a non
@@ -122,9 +124,20 @@ class BaseFlowStackFrame(DialogueStackFrame):
122
124
  all_flows: All flows in the assistant.
123
125
 
124
126
  Returns:
125
- The current flow step."""
127
+ The current flow step.
128
+ """
126
129
  flow = self.flow(all_flows)
127
- step = flow.step_by_id(self.step_id)
130
+
131
+ step_id = self.step_id
132
+ # in 3.11.4 we added the flow_id as a prefix to the step_id
133
+ # this causes issues when loading old dialogues as the prefix is missing
134
+ # (see https://rasahq.atlassian.net/jira/software/c/projects/ENG/boards/43?selectedIssue=ENG-1939)
135
+ # so we try to find the step by adding the flow prefix to old step_ids as well
136
+ # TODO: remove this in 4.0.0
137
+ alternative_step_id = f"{self.flow_id}_{self.step_id}"
138
+
139
+ step = flow.step_by_id(step_id) or flow.step_by_id(alternative_step_id)
140
+
128
141
  if not step:
129
142
  # we shouldn't ever end up with a frame that belongs to a non
130
143
  # existing step, but if we do, we should raise an error
@@ -1,7 +1,9 @@
1
1
  from contextlib import contextmanager
2
2
  from typing import Any, Dict, Generator, List, Optional, Text
3
3
 
4
- from rasa.dialogue_understanding.commands import Command
4
+ import structlog
5
+
6
+ from rasa.dialogue_understanding.commands import Command, NoopCommand, SetSlotCommand
5
7
  from rasa.dialogue_understanding.constants import (
6
8
  RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME,
7
9
  )
@@ -16,7 +18,6 @@ from rasa.shared.nlu.constants import (
16
18
  KEY_USER_PROMPT,
17
19
  PREDICTED_COMMANDS,
18
20
  PROMPTS,
19
- SET_SLOT_COMMAND,
20
21
  )
21
22
  from rasa.shared.nlu.training_data.message import Message
22
23
  from rasa.shared.providers.llm.llm_response import LLMResponse
@@ -26,6 +27,8 @@ record_commands_and_prompts = get_bool_env_variable(
26
27
  RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME, False
27
28
  )
28
29
 
30
+ structlogger = structlog.get_logger()
31
+
29
32
 
30
33
  @contextmanager
31
34
  def set_record_commands_and_prompts() -> Generator:
@@ -144,21 +147,74 @@ def _handle_via_nlu_in_coexistence(
144
147
  if not tracker:
145
148
  return False
146
149
 
150
+ commands = message.get(COMMANDS, [])
151
+
152
+ # If coexistence routing slot is not active, this setup doesn't
153
+ # support dual routing -> default to CALM
147
154
  if not tracker.has_coexistence_routing_slot:
155
+ structlogger.debug(
156
+ "utils.handle_via_nlu_in_coexistence"
157
+ ".tracker_missing_route_session_to_calm_slot",
158
+ event_info=(
159
+ f"Tracker doesn't have the '{ROUTE_TO_CALM_SLOT}' slot."
160
+ f"Routing to CALM."
161
+ ),
162
+ route_session_to_calm=commands,
163
+ )
148
164
  return False
149
165
 
166
+ # Check if the routing decision is stored in the tracker slot
167
+ # If slot is true -> route to CALM
168
+ # If slot is false -> route to DM1
150
169
  value = tracker.get_slot(ROUTE_TO_CALM_SLOT)
151
170
  if value is not None:
171
+ structlogger.debug(
172
+ "utils.handle_via_nlu_in_coexistence"
173
+ ".tracker_route_session_to_calm_slot_value",
174
+ event_info=(
175
+ f"Tracker slot '{ROUTE_TO_CALM_SLOT}' set to '{value}'. "
176
+ f"Routing to "
177
+ f"{'CALM' if value else 'NLU system'}."
178
+ ),
179
+ route_session_to_calm_value_in_tracker=value,
180
+ )
152
181
  return not value
153
182
 
154
- # routing slot has been reset so we need to check
155
- # the command issued by the Router component
156
- if message.get(COMMANDS):
157
- for command in message.get(COMMANDS):
158
- if (
159
- command.get("command") == SET_SLOT_COMMAND
160
- and command.get("name") == ROUTE_TO_CALM_SLOT
161
- ):
162
- return not command.get("value")
163
-
183
+ # Non-sticky routing to DM1 is only allowed if NoopCommand is the sole predicted
184
+ # command. In that case, route to DM1
185
+ if len(commands) == 1 and commands[0].get("command") == NoopCommand.command():
186
+ structlogger.debug(
187
+ "utils.handle_via_nlu_in_coexistence.noop_command_detected",
188
+ event_info="NoopCommand found. Routing to NLU system non-sticky.",
189
+ commands=commands,
190
+ )
191
+ return True
192
+
193
+ # If the slot was reset (e.g. new session), try to infer routing from
194
+ # attached commands. Look for a SetSlotCommand targeting the ROUTE_TO_CALM_SLOT
195
+ for command in message.get(COMMANDS, []):
196
+ # If slot is true -> route to CALM
197
+ # If slot is false -> route to DM1
198
+ if (
199
+ command.get("command") == SetSlotCommand.command()
200
+ and command.get("name") == ROUTE_TO_CALM_SLOT
201
+ ):
202
+ structlogger.debug(
203
+ "utils.handle_via_nlu_in_coexistence.set_slot_command_detected",
204
+ event_info=(
205
+ f"SetSlotCommand setting the '{ROUTE_TO_CALM_SLOT}' to "
206
+ f"'{command.get('value')}'. "
207
+ f"Routing to "
208
+ f"{'CALM' if command.get('value') else 'NLU system'}."
209
+ ),
210
+ commands=commands,
211
+ )
212
+ return not command.get("value")
213
+
214
+ # If no routing info is available -> default to CALM
215
+ structlogger.debug(
216
+ "utils.handle_via_nlu_in_coexistence.no_routing_info_available",
217
+ event_info="No routing info available. Routing to CALM.",
218
+ commands=commands,
219
+ )
164
220
  return False
@@ -5,12 +5,12 @@ mapping:
5
5
  sequence:
6
6
  - type: map
7
7
  mapping:
8
- regex;(^[a-zA-Z_]+[a-zA-Z0-9_]*$):
8
+ regex;(^[a-zA-Z_]+[a-zA-Z0-9_\-]*$):
9
9
  type: "seq"
10
10
  sequence:
11
11
  - type: map
12
12
  mapping:
13
- regex;(^[a-zA-Z_]+[a-zA-Z0-9_]*$):
13
+ regex;(^[a-zA-Z_]+[a-zA-Z0-9_\-]*$):
14
14
  type: any
15
15
 
16
16
  metadata:
@@ -129,7 +129,7 @@ mapping:
129
129
  type: "seq"
130
130
  sequence:
131
131
  - type: "str"
132
- pattern: ^[a-zA-Z_]+[a-zA-Z0-9_]*$
132
+ pattern: ^[a-zA-Z_]+[a-zA-Z0-9_\-]*$
133
133
  metadata:
134
134
  type: "str"
135
135
  pattern: ^[a-zA-Z_]+[a-zA-Z0-9_]*$
@@ -5,12 +5,12 @@ mapping:
5
5
  sequence:
6
6
  - type: map
7
7
  mapping:
8
- regex;(^[a-zA-Z_]+[a-zA-Z0-9_]*$):
8
+ regex;(^[a-zA-Z_]+[a-zA-Z0-9_\-]*$):
9
9
  type: "seq"
10
10
  sequence:
11
11
  - type: map
12
12
  mapping:
13
- regex;(^[a-zA-Z_]+[a-zA-Z0-9_]*$):
13
+ regex;(^[a-zA-Z_]+[a-zA-Z0-9_\-]*$):
14
14
  type: any
15
15
 
16
16
  metadata:
@@ -129,7 +129,7 @@ mapping:
129
129
  type: "seq"
130
130
  sequence:
131
131
  - type: "str"
132
- pattern: ^[a-zA-Z_]+[a-zA-Z0-9_]*$
132
+ pattern: ^[a-zA-Z_]+[a-zA-Z0-9_\-]*$
133
133
  metadata:
134
134
  type: "str"
135
135
  pattern: ^[a-zA-Z_]+[a-zA-Z0-9_]*$
rasa/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # this file will automatically be changed,
2
2
  # do not add anything but the version number here!
3
- __version__ = "3.12.16"
3
+ __version__ = "3.12.18"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.12.16
3
+ Version: 3.12.18
4
4
  Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
5
5
  Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
6
6
  Author: Rasa Technologies GmbH
@@ -92,7 +92,7 @@ rasa/cli/x.py,sha256=C7dLtYXAkD-uj7hNj7Pz5YbOupp2yRcMjQbsEVqXUJ8,6825
92
92
  rasa/constants.py,sha256=5OMUcJ_gjn8qglY37DeUS4g5xe2VZAiLIv8IKwIGWJ0,1364
93
93
  rasa/core/__init__.py,sha256=wTSmsFlgK0Ylvuyq20q9APwpT5xyVJYZfzhs4rrkciM,456
94
94
  rasa/core/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
- rasa/core/actions/action.py,sha256=N57qGlqJHXD_jbN3R6WxMrz-AxW96gQ5GPZssmwTlvg,42782
95
+ rasa/core/actions/action.py,sha256=_QfY3ngSF2sf2Y3QDPJo7Nd6F_FA6_zDWgw1OQSLkEk,42676
96
96
  rasa/core/actions/action_clean_stack.py,sha256=xUP-2ipPsPAnAiwP17c-ezmHPSrV4JSUZr-eSgPQwIs,2279
97
97
  rasa/core/actions/action_exceptions.py,sha256=hghzXYN6VeHC-O_O7WiPesCNV86ZTkHgG90ZnQcbai8,724
98
98
  rasa/core/actions/action_hangup.py,sha256=o5iklHG-F9IcRgWis5C6AumVXznxzAV3o9zdduhozEM,994
@@ -342,7 +342,7 @@ rasa/core/policies/policy.py,sha256=5SUnPajSTSf8PzB1-jFbQPtsvR-zLN-xkjeotWOxuJc,
342
342
  rasa/core/policies/rule_policy.py,sha256=EItfUn07JIBLRIbriPKDprsvWq_-xzZTGrlTS2erByA,50730
343
343
  rasa/core/policies/ted_policy.py,sha256=0RzIuyrtt4PxLcqQ-bfaExkZvU-TnsMbgmDcwh2SakY,87710
344
344
  rasa/core/policies/unexpected_intent_policy.py,sha256=ZXvbswf2NDy00kHmBQcyXa1OVYFyc79HQKrFkQ4gCfM,39609
345
- rasa/core/processor.py,sha256=sUEKKDFHw0uDw8BgorN4DFQa5f_kVbOS344qV4F0oDk,59821
345
+ rasa/core/processor.py,sha256=Y5Ph1mheEgOE5OfSXHFrgeX4mW5w2PqRL2NygJpHVeQ,61471
346
346
  rasa/core/run.py,sha256=N-NVdo-2wlKbaC1O1lS0t2Uraw9GjJYgZa0MkMPLdlg,11685
347
347
  rasa/core/secrets_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
348
  rasa/core/secrets_manager/constants.py,sha256=dTDHenvG1JBVi34QIR6FpdO5RDOXQwAjAxLlgJ2ZNEI,1193
@@ -372,7 +372,7 @@ rasa/dialogue_understanding/commands/can_not_handle_command.py,sha256=fKOj9ScLxu
372
372
  rasa/dialogue_understanding/commands/cancel_flow_command.py,sha256=7Jcvza6OBT8vM7bwJlTCujKsCMrC8gxR0DE6uaIb5_0,5340
373
373
  rasa/dialogue_understanding/commands/change_flow_command.py,sha256=NnD9PM0B9o4oxTtYdcb-lDBC0-oQkbAQRB-55iYCkng,2409
374
374
  rasa/dialogue_understanding/commands/chit_chat_answer_command.py,sha256=PtwNuAHJdIUQ_PIOv5bguVJMyZ_2jPtoozQQdiebKB4,2842
375
- rasa/dialogue_understanding/commands/clarify_command.py,sha256=wFQroQnSTuuTwFg7pQm6XNB-K1ZaLNMRSaR7IXRp96g,4293
375
+ rasa/dialogue_understanding/commands/clarify_command.py,sha256=mxdHWdyaQwA4uYdhVUjwAUPfl0HvqtDHU2DWKEeZal4,4290
376
376
  rasa/dialogue_understanding/commands/command.py,sha256=rhxHmllTMwvb4Uq-pDqmUdlKtu-87y8nqN5DRO-KDwE,2529
377
377
  rasa/dialogue_understanding/commands/command_syntax_manager.py,sha256=vO6sOak0g9GucEtiNximJ9bQFbHQwWJ-M5XNF1gGxz4,1893
378
378
  rasa/dialogue_understanding/commands/correct_slots_command.py,sha256=LlaBtWc3y-DyDPMF-zGG9x_J9uCe78LqiuogHIyoz5Q,10810
@@ -387,11 +387,11 @@ rasa/dialogue_understanding/commands/repeat_bot_messages_command.py,sha256=8SavU
387
387
  rasa/dialogue_understanding/commands/restart_command.py,sha256=vvmucwlVtfh6VMgdOn5hZfsP9U5HhfbDeBSG2IndX0Y,1639
388
388
  rasa/dialogue_understanding/commands/session_end_command.py,sha256=ZecUpYZDTX_68_kV1Hv4i317bbeBeVHHyhW_A7r5yzs,1770
389
389
  rasa/dialogue_understanding/commands/session_start_command.py,sha256=FA4yocMnFt5bn2dmXj48S4Pq_yTlEnOBxgK_mq-qAxg,1704
390
- rasa/dialogue_understanding/commands/set_slot_command.py,sha256=DZSr5BGZOuJjGdcfKki8UZpx4pvt54BPD5ZV83HaU00,6770
390
+ rasa/dialogue_understanding/commands/set_slot_command.py,sha256=lSJGnVrARAlqXta51NU-L5VSjtZmjnZA1A8Hmv5CCPc,7058
391
391
  rasa/dialogue_understanding/commands/skip_question_command.py,sha256=PvGpiW0Dk1xwvmntzhz7pEn99XqPv5nMQfR-cwNKxXk,3296
392
392
  rasa/dialogue_understanding/commands/start_flow_command.py,sha256=prPbTh7salW-p44JNQ2kkJHFBtnLXJCBT_3wDNsN_K4,4542
393
393
  rasa/dialogue_understanding/commands/user_silence_command.py,sha256=DQjRfZk09sV1o2emnLkmX7cZpsJwBHNeJGBDQVkejjY,1686
394
- rasa/dialogue_understanding/commands/utils.py,sha256=lyl8FSdR2kQogqdjX2NSpQVQ9D2FZpwYUG6z4yFIMlU,4057
394
+ rasa/dialogue_understanding/commands/utils.py,sha256=keNOSdTqCPEXO1ICWpKr229IyGQl_33U0IUgZP3jqPE,4748
395
395
  rasa/dialogue_understanding/constants.py,sha256=_kB0edGV23uvhujlF193N2jk6YG0R6LC599YDX5B5vo,129
396
396
  rasa/dialogue_understanding/generator/__init__.py,sha256=pBm0o6pnJA_0W0UOrGuVsiG4hsTNH_n5GLrz8BYQHM8,830
397
397
  rasa/dialogue_understanding/generator/_jinja_filters.py,sha256=KuK7nGKvKzKJz6Wg3AmrLFvzneGgIyeK825MCE379wc,248
@@ -443,11 +443,11 @@ rasa/dialogue_understanding/stack/dialogue_stack.py,sha256=cYV6aQeh0EuOJHODDqK3b
443
443
  rasa/dialogue_understanding/stack/frames/__init__.py,sha256=wczg4PXtwGlCcRWT4gdtwgO-ZHVDcEYG11qDMe5hRNw,656
444
444
  rasa/dialogue_understanding/stack/frames/chit_chat_frame.py,sha256=xuYuhQaNhzyj4B95KMI79IPx7GeQ1sFcW7Bzy8i3mTM,767
445
445
  rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py,sha256=SBTmCV4SWWU6yiQvtcnMQ3rhOAyiWlmR4KE76JR79GE,4125
446
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py,sha256=827ppz6PKr1tSN34BuMlm_iWZCYsZTgvqaNaq1QQFkc,5078
446
+ rasa/dialogue_understanding/stack/frames/flow_stack_frame.py,sha256=__W-kAZt5EFBLsIYC4XEUuy8q7zlfVkskXfmkzjkOEE,5609
447
447
  rasa/dialogue_understanding/stack/frames/pattern_frame.py,sha256=EVrYWv5dCP7XTvNV-HqtOOrseP-IkF0jD2_JacAvIYw,235
448
448
  rasa/dialogue_understanding/stack/frames/search_frame.py,sha256=Eo6tSSbJpslKcs6DLu250NmtoKMe4bDHC8_ebx5sJ60,759
449
449
  rasa/dialogue_understanding/stack/utils.py,sha256=7ETHyvsqUSyNElVmouswKm99NcGCOG6sWBWFazgXd7A,7932
450
- rasa/dialogue_understanding/utils.py,sha256=s3Y-REFv2HKYGpPS8nCgISQh86SnQgaRA8KukeFSf9Y,5445
450
+ rasa/dialogue_understanding/utils.py,sha256=p-KVd7VF21HFHwRMHp5zAnOcMs_BMkVnDgY17TLSUy8,7804
451
451
  rasa/dialogue_understanding_test/README.md,sha256=klUCq_FYd0MkIeyxlwYCfsB9EEsSmXUpTTDTxdR7EPc,17764
452
452
  rasa/dialogue_understanding_test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
453
453
  rasa/dialogue_understanding_test/command_comparison.py,sha256=LvCZGgZVFpKjWqaZE5OqPClM5xDNdFZQ4FslvNerB7s,1812
@@ -456,7 +456,7 @@ rasa/dialogue_understanding_test/constants.py,sha256=G63FEzswDUOonTxoXQicEJwI6IC
456
456
  rasa/dialogue_understanding_test/du_test_case.py,sha256=cd47xHkWj4AGuHVqAfqcTCHjJYxBw5TEklpxiB33T3U,15526
457
457
  rasa/dialogue_understanding_test/du_test_result.py,sha256=AL1T5f9OoEeTFmCIN5wmqPELXBnYrWwRn3ZtAEIBLfA,15086
458
458
  rasa/dialogue_understanding_test/du_test_runner.py,sha256=RnEIgTps9w3_dCW0S7fCm-QfncxyegmofBm_QzeBmEE,11186
459
- rasa/dialogue_understanding_test/du_test_schema.yml,sha256=zgIhb6PE8LnoigVmv4NbU3cjSsr2SkGoO-5Xh4Et9KA,4767
459
+ rasa/dialogue_understanding_test/du_test_schema.yml,sha256=nxezEXfnoc-oVZXDqHRg-Yk4fkDF3t2VatRRMdSSE2o,4773
460
460
  rasa/dialogue_understanding_test/io.py,sha256=A797fXYvjFZM4ejA7ozZwp71eFLg-ebTM4I_rZwH4yk,15127
461
461
  rasa/dialogue_understanding_test/test_case_simulation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
462
462
  rasa/dialogue_understanding_test/test_case_simulation/exception.py,sha256=RJV8CfoGKmfpC3d28y7IBKfmcAZSm2Vs6p0GkiCHlcc,1034
@@ -476,7 +476,7 @@ rasa/e2e_test/e2e_test_converter_prompt.jinja2,sha256=EMy-aCd7jLARHmwAuZUGT5ABnN
476
476
  rasa/e2e_test/e2e_test_coverage_report.py,sha256=zO_3hQIuCf4r9YIbQ2_DHM7HCWHe9pZLU4sC4msuw_M,11326
477
477
  rasa/e2e_test/e2e_test_result.py,sha256=qVurjFC4cAWIY7rOsc-A-4nIdcnnw98TaK86-bDwI7Y,1649
478
478
  rasa/e2e_test/e2e_test_runner.py,sha256=eXV5DJ0rAVY7FAXYI9aKvYqZXdfsE92y6deEUqUvrTY,47965
479
- rasa/e2e_test/e2e_test_schema.yml,sha256=0deWjuKRHNo6e_LSCnUoiw9NLIYf6dj1-zFPl_AqLYA,5632
479
+ rasa/e2e_test/e2e_test_schema.yml,sha256=0WG0I3baTRc76lff3UjQ8vGRzMUoV6qcE8r9adOAlCU,5638
480
480
  rasa/e2e_test/llm_judge_prompts/answer_relevance_prompt_template.jinja2,sha256=6Ddszg4Y6sIvhH7C1jjEAArpzke48mfCOa2KUQYbNVA,2725
481
481
  rasa/e2e_test/llm_judge_prompts/groundedness_prompt_template.jinja2,sha256=jCgDbZvWn5fncr4zvB5UQSK1VJu9xDQtpY4B8GKtlmA,8226
482
482
  rasa/e2e_test/pykwalify_extensions.py,sha256=OGYKIKYJXd2S0NrWknoQuijyBQaE-oMLkfV_eMRkGSM,1331
@@ -822,9 +822,9 @@ rasa/utils/train_utils.py,sha256=ClJx-6x3-h3Vt6mskacgkcCUJTMXjFPe3zAcy_DfmaU,212
822
822
  rasa/utils/url_tools.py,sha256=dZ1HGkVdWTJB7zYEdwoDIrEuyX9HE5WsxKKFVsXBLE0,1218
823
823
  rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
824
824
  rasa/validator.py,sha256=524VlFTYK0B3iXYveVD6BDC3K0j1QfpzJ9O-TAWczmc,83166
825
- rasa/version.py,sha256=07xkyNZWFnv5AhIz6R_2NuxaE4Mp0k4OyT6ZE4N3CmI,118
826
- rasa_pro-3.12.16.dist-info/METADATA,sha256=wpF6aeIqVLR9V5eCk9H7gvSaeyvA34-ztviscgSr4F8,10609
827
- rasa_pro-3.12.16.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
828
- rasa_pro-3.12.16.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
829
- rasa_pro-3.12.16.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
830
- rasa_pro-3.12.16.dist-info/RECORD,,
825
+ rasa/version.py,sha256=vZNYr5Zk5DwLMX6MZTlHFps4qYuaY0DFYD0tzVLkV4c,118
826
+ rasa_pro-3.12.18.dist-info/METADATA,sha256=uVOwQl-Au_O0FASWeXd1oV20va92DR8qq3zppW7pEM0,10609
827
+ rasa_pro-3.12.18.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
828
+ rasa_pro-3.12.18.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
829
+ rasa_pro-3.12.18.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
830
+ rasa_pro-3.12.18.dist-info/RECORD,,