rasa-pro 3.12.0.dev3__py3-none-any.whl → 3.12.0.dev4__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.

@@ -35,7 +35,6 @@ from rasa.dialogue_understanding_test.du_test_runner import (
35
35
  DialogueUnderstandingTestRunner,
36
36
  )
37
37
  from rasa.dialogue_understanding_test.io import (
38
- print_test_results,
39
38
  read_test_suite,
40
39
  write_test_results_to_file,
41
40
  )
@@ -249,6 +248,12 @@ def execute_dialogue_understanding_tests(args: argparse.Namespace) -> None:
249
248
  failing_test_results, passing_test_results, command_metrics
250
249
  )
251
250
 
251
+ # Do not move this import to the top of the file as it will break the
252
+ # instrumentation of this function: the CLI module is initialized before the
253
+ # instrumentation is set up, and we won't be able to "replace" the function
254
+ # with the instrumented wrapper
255
+ from rasa.dialogue_understanding_test.io import print_test_results
256
+
252
257
  # write results to console and file
253
258
  print_test_results(test_suite_result, output_prompt=args.output_prompt)
254
259
  if not args.no_output:
@@ -18,6 +18,16 @@ if typing.TYPE_CHECKING:
18
18
  KEY_TEST_CASES_ACCURACY = "test_cases"
19
19
  KEY_USER_UTTERANCES_ACCURACY = "user_utterances"
20
20
 
21
+ OUTPUT_NUMBER_OF_FAILED_TESTS = "number_of_failed_tests"
22
+ OUTPUT_NUMBER_OF_PASSED_TESTS = "number_of_passed_tests"
23
+ OUTPUT_TEST_CASES_ACCURACY = "test_cases_accuracy"
24
+ OUTPUT_USER_UTTERANCES_ACCURACY = "user_utterances_accuracy"
25
+ OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES = "number_of_passed_user_utterances"
26
+ OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES = "number_of_failed_user_utterances"
27
+ OUTPUT_COMMAND_METRICS = "command_metrics"
28
+ OUTPUT_NAMES_OF_FAILED_TESTS = "names_of_failed_tests"
29
+ OUTPUT_NAMES_OF_PASSED_TESTS = "names_of_passed_tests"
30
+
21
31
 
22
32
  class DialogueUnderstandingTestResult(BaseModel):
23
33
  """Result of a single dialogue understanding test case."""
@@ -260,10 +270,10 @@ class DialogueUnderstandingTestSuiteResult:
260
270
  "test_cases": self.accuracy[KEY_TEST_CASES_ACCURACY],
261
271
  "user_utterances": self.accuracy[KEY_USER_UTTERANCES_ACCURACY],
262
272
  },
263
- "number_of_passed_tests": self.number_of_passed_tests,
264
- "number_of_failed_tests": self.number_of_failed_tests,
265
- "number_of_passed_user_utterances": self.number_of_passed_user_utterances,
266
- "number_of_failed_user_utterances": self.number_of_failed_user_utterances,
273
+ OUTPUT_NUMBER_OF_PASSED_TESTS: self.number_of_passed_tests,
274
+ OUTPUT_NUMBER_OF_FAILED_TESTS: self.number_of_failed_tests,
275
+ OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES: self.number_of_passed_user_utterances, # noqa: E501
276
+ OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES: self.number_of_failed_user_utterances, # noqa: E501
267
277
  }
268
278
 
269
279
  cmd_metrics_output = {}
@@ -274,10 +284,10 @@ class DialogueUnderstandingTestSuiteResult:
274
284
  else:
275
285
  pass
276
286
 
277
- result_dict["command_metrics"] = cmd_metrics_output
287
+ result_dict[OUTPUT_COMMAND_METRICS] = cmd_metrics_output
278
288
 
279
- result_dict["names_of_passed_tests"] = self.names_of_passed_tests
280
- result_dict["names_of_failed_tests"] = self.names_of_failed_tests
289
+ result_dict[OUTPUT_NAMES_OF_PASSED_TESTS] = self.names_of_passed_tests
290
+ result_dict[OUTPUT_NAMES_OF_FAILED_TESTS] = self.names_of_failed_tests
281
291
 
282
292
  failed_steps_list = []
283
293
  for failed_test_step in self.failed_test_steps:
@@ -1,6 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- import copy
4
3
  import logging
5
4
  from typing import Any, Dict, List, Optional, Text, Tuple, Type, Union
6
5
 
@@ -186,8 +185,6 @@ def undo_fallback_prediction(prediction: Dict[Text, Any]) -> Dict[Text, Any]:
186
185
  if len(intent_ranking) < 2:
187
186
  return prediction
188
187
 
189
- prediction = copy.deepcopy(prediction)
190
188
  prediction[INTENT] = intent_ranking[1]
191
189
  prediction[INTENT_RANKING_KEY] = prediction[INTENT_RANKING_KEY][1:]
192
-
193
190
  return prediction
@@ -21,6 +21,20 @@ from rasa.dialogue_understanding.commands import Command
21
21
  from rasa.dialogue_understanding.generator import LLMBasedCommandGenerator
22
22
  from rasa.dialogue_understanding.generator.constants import FLOW_RETRIEVAL_KEY
23
23
  from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
24
+ from rasa.dialogue_understanding_test.du_test_result import (
25
+ KEY_TEST_CASES_ACCURACY,
26
+ KEY_USER_UTTERANCES_ACCURACY,
27
+ OUTPUT_COMMAND_METRICS,
28
+ OUTPUT_NAMES_OF_FAILED_TESTS,
29
+ OUTPUT_NAMES_OF_PASSED_TESTS,
30
+ OUTPUT_NUMBER_OF_FAILED_TESTS,
31
+ OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES,
32
+ OUTPUT_NUMBER_OF_PASSED_TESTS,
33
+ OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES,
34
+ OUTPUT_TEST_CASES_ACCURACY,
35
+ OUTPUT_USER_UTTERANCES_ACCURACY,
36
+ DialogueUnderstandingTestSuiteResult,
37
+ )
24
38
  from rasa.engine.graph import ExecutionContext, GraphModelConfiguration, GraphNode
25
39
  from rasa.engine.training.graph_trainer import GraphTrainer
26
40
  from rasa.shared.constants import (
@@ -571,6 +585,44 @@ def extract_attrs_for_advance_flows(
571
585
  }
572
586
 
573
587
 
588
+ def extract_attrs_for_du_print_test_results(
589
+ test_suite_result: DialogueUnderstandingTestSuiteResult,
590
+ output_prompt: bool,
591
+ ) -> Dict[str, Any]:
592
+ """Extract the attributes for
593
+ `rasa.dialogue_understanding_test.io.print_test_results` function.
594
+ """
595
+ from rasa.tracing.instrumentation.instrumentation import (
596
+ DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
597
+ )
598
+
599
+ attributes_dict = {
600
+ "module_name": DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
601
+ OUTPUT_TEST_CASES_ACCURACY: test_suite_result.accuracy[KEY_TEST_CASES_ACCURACY],
602
+ OUTPUT_USER_UTTERANCES_ACCURACY: test_suite_result.accuracy[
603
+ KEY_USER_UTTERANCES_ACCURACY
604
+ ],
605
+ OUTPUT_NUMBER_OF_PASSED_TESTS: test_suite_result.number_of_passed_tests,
606
+ OUTPUT_NUMBER_OF_FAILED_TESTS: test_suite_result.number_of_failed_tests,
607
+ OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES: test_suite_result.number_of_passed_user_utterances, # noqa: E501
608
+ OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES: test_suite_result.number_of_failed_user_utterances, # noqa: E501
609
+ OUTPUT_NAMES_OF_PASSED_TESTS: json.dumps(
610
+ test_suite_result.names_of_passed_tests
611
+ ),
612
+ OUTPUT_NAMES_OF_FAILED_TESTS: json.dumps(
613
+ test_suite_result.names_of_failed_tests
614
+ ),
615
+ }
616
+ if test_suite_result.command_metrics:
617
+ attributes_dict[OUTPUT_COMMAND_METRICS] = json.dumps(
618
+ {
619
+ key: value.as_dict()
620
+ for key, value in test_suite_result.command_metrics.items()
621
+ }
622
+ )
623
+ return attributes_dict
624
+
625
+
574
626
  def extract_attrs_for_run_step(
575
627
  step: FlowStep,
576
628
  flow: Flow,
@@ -84,6 +84,7 @@ COMMAND_PROCESSOR_MODULE_NAME = (
84
84
  "rasa.dialogue_understanding.processor.command_processor"
85
85
  )
86
86
  FLOW_EXECUTOR_MODULE_NAME = "rasa.core.policies.flows.flow_executor"
87
+ DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME = "rasa.dialogue_understanding_test.io"
87
88
 
88
89
 
89
90
  def _check_extractor_argument_list(
@@ -151,7 +152,11 @@ def traceable(
151
152
  )
152
153
 
153
154
  module_name = attrs.pop("module_name", "")
154
- if module_name in ["command_processor", FLOW_EXECUTOR_MODULE_NAME]:
155
+ if module_name in [
156
+ "command_processor",
157
+ FLOW_EXECUTOR_MODULE_NAME,
158
+ DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
159
+ ]:
155
160
  span_name = f"{module_name}.{fn.__name__}"
156
161
  else:
157
162
  span_name = f"{self.__class__.__name__}.{fn.__name__}"
@@ -583,6 +588,9 @@ def instrument(
583
588
  if not module_is_instrumented(FLOW_EXECUTOR_MODULE_NAME):
584
589
  _instrument_flow_executor_module(tracer_provider)
585
590
 
591
+ if not module_is_instrumented(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME):
592
+ _instrument_dialog_understanding_test_io_module(tracer_provider)
593
+
586
594
  if policy_subclasses:
587
595
  for policy_subclass in policy_subclasses:
588
596
  if policy_subclass is not None and not class_is_instrumented(
@@ -974,6 +982,18 @@ def _instrument_flow_executor_module(tracer_provider: TracerProvider) -> None:
974
982
  mark_module_as_instrumented(FLOW_EXECUTOR_MODULE_NAME)
975
983
 
976
984
 
985
+ def _instrument_dialog_understanding_test_io_module(
986
+ tracer_provider: TracerProvider,
987
+ ) -> None:
988
+ _instrument_function(
989
+ tracer_provider.get_tracer(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME),
990
+ DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
991
+ "print_test_results",
992
+ attribute_extractors.extract_attrs_for_du_print_test_results,
993
+ )
994
+ mark_module_as_instrumented(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME)
995
+
996
+
977
997
  def _instrument_advance_flows_until_next_action(
978
998
  tracer: Tracer,
979
999
  module_name: str,
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.0dev3"
3
+ __version__ = "3.12.0dev4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rasa-pro
3
- Version: 3.12.0.dev3
3
+ Version: 3.12.0.dev4
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
  Home-page: https://rasa.com
6
6
  Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
@@ -40,7 +40,7 @@ Requires-Dist: colorclass (>=2.2,<2.3)
40
40
  Requires-Dist: coloredlogs (>=15,<16)
41
41
  Requires-Dist: colorhash (>=2.0,<2.1.0)
42
42
  Requires-Dist: confluent-kafka (>=2.3.0,<3.0.0)
43
- Requires-Dist: cryptography (>=42.0.5)
43
+ Requires-Dist: cryptography (>=43.0.1)
44
44
  Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0)
45
45
  Requires-Dist: dask (>=2024.7.0,<2024.8.0)
46
46
  Requires-Dist: demoji (>=1.1.0,<2.0.0)
@@ -23,7 +23,7 @@ rasa/cli/arguments/train.py,sha256=bnBIvSMxeY8qOswCdp6-MfXwCf5OIzDmNjDjW84yzYQ,8
23
23
  rasa/cli/arguments/visualize.py,sha256=e8yhvc6Jfy1JKSOIVFV5mY5QPowkf0o1kt6IGujVxcY,861
24
24
  rasa/cli/arguments/x.py,sha256=_23reqNwiit2VoCqmv23kQZudA3iZVXaBV_zEXJjV6w,1028
25
25
  rasa/cli/data.py,sha256=dmQqLBTlsNeO-QnAzMwWV2BR65LklIXDjgR0xo9CJ_w,12696
26
- rasa/cli/dialogue_understanding_test.py,sha256=SOxln-oFPR4WZBIAeDnpWT9Mah5UrPDeMe9_AGXmXSM,11982
26
+ rasa/cli/dialogue_understanding_test.py,sha256=1qum-Z-qZUUW8mBHhXAeLfQQF4OCtd9QXyZgD4B4tJg,12301
27
27
  rasa/cli/e2e_test.py,sha256=guHIeX7qPwv8db4j9zsDG7MQbfUq92xO51u0iOR3eqw,8359
28
28
  rasa/cli/evaluate.py,sha256=104vTMKNQPhuEUm5n1OMVxH4qywaZx14kE_5ULGNMbg,7946
29
29
  rasa/cli/export.py,sha256=vohrKZpUrNVXE2xZM3V-IgWc6UsWUoUl-5tRXSg6Nag,8203
@@ -436,7 +436,7 @@ rasa/dialogue_understanding_test/command_comparison.py,sha256=LvCZGgZVFpKjWqaZE5
436
436
  rasa/dialogue_understanding_test/command_metric_calculation.py,sha256=McLi6YNsTIieGOCSNTGBeiXBLCIdxpJEiu-nXG5wa4g,3756
437
437
  rasa/dialogue_understanding_test/constants.py,sha256=G63FEzswDUOonTxoXQicEJwI6ICkSx3YP1ILkGH1ijw,790
438
438
  rasa/dialogue_understanding_test/du_test_case.py,sha256=P82xu4wkyIrhPdQWHp2wMYG6YVkUgaDFNSSDDN6Znv8,11277
439
- rasa/dialogue_understanding_test/du_test_result.py,sha256=msDVOmFw4gr_jpFurAc6FQvRpR-jU_MbybhuRHm6hEo,10857
439
+ rasa/dialogue_understanding_test/du_test_result.py,sha256=L3OVBaetQgLML1iHPFJyQqF6DrsBCnNB9XCBG8WaAPM,11454
440
440
  rasa/dialogue_understanding_test/du_test_runner.py,sha256=ZG-TNfu-Ak9l_gg9NNadzKzARgICJ9wlsYooCBi1WKU,11943
441
441
  rasa/dialogue_understanding_test/du_test_schema.yml,sha256=zgIhb6PE8LnoigVmv4NbU3cjSsr2SkGoO-5Xh4Et9KA,4767
442
442
  rasa/dialogue_understanding_test/io.py,sha256=ah26adacAU57YX7rhL3fMLNKeVddVURzUaWddXl8N0k,12707
@@ -544,7 +544,7 @@ rasa/nlu/__init__.py,sha256=D0IYuTK_ZQ_F_9xsy0bXxVCAtU62Fzvp8S7J9tmfI_c,123
544
544
  rasa/nlu/classifiers/__init__.py,sha256=Qvrf7_rfiMxm2Vt2fClb56R3QFExf7WPdFdL-AOvgsk,118
545
545
  rasa/nlu/classifiers/classifier.py,sha256=9fm1mORuFf1vowYIXmqE9yLRKdSC4nGQW7UqNZQipKY,133
546
546
  rasa/nlu/classifiers/diet_classifier.py,sha256=xwpEC1QNpjJU6JnE55h48JPlE6qRmwogHl85GMOJLtw,72524
547
- rasa/nlu/classifiers/fallback_classifier.py,sha256=LuGEbdnKVThstOoZ-hrTJqwvyAXxQVSZ-G88Fh8dZTI,7151
547
+ rasa/nlu/classifiers/fallback_classifier.py,sha256=LSzFMEYhX7_hrvlRGf-OsUmng33GcbtQGIFtVtMmqWI,7095
548
548
  rasa/nlu/classifiers/keyword_intent_classifier.py,sha256=ujOO3gb4uouKzVzSv72yGbSADKY158YzGGx7p1z0Qoc,7582
549
549
  rasa/nlu/classifiers/logistic_regression_classifier.py,sha256=cEvURAt8VZVJfWC40kK9xX3q-zIBz4iVqij5lT6Voic,9589
550
550
  rasa/nlu/classifiers/mitie_intent_classifier.py,sha256=_1F85vzb-PZfX__wOE5Twd2MplCjpjX2FmEx8jFOCak,5560
@@ -751,8 +751,8 @@ rasa/tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
751
751
  rasa/tracing/config.py,sha256=j5N6s-GX3idNH9FO-0z10KduVg2ovzsE-u5ve87249U,12860
752
752
  rasa/tracing/constants.py,sha256=N_MJLStE3IkmPKQCQv42epd3jdBMJ4Ith1dVO65N5ho,2425
753
753
  rasa/tracing/instrumentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
754
- rasa/tracing/instrumentation/attribute_extractors.py,sha256=YntngMpBuKfuipydmhR6zmeS_1N0_nhiwazeRHFrdTc,26080
755
- rasa/tracing/instrumentation/instrumentation.py,sha256=DRZyxgJJXqR6iR617F5aAfEox5vcTxdQ5eFbeOyOoDQ,51103
754
+ rasa/tracing/instrumentation/attribute_extractors.py,sha256=cdPAo3zMUKclumsvlS7XMUISHfJUczQeAsipo3j89lw,28166
755
+ rasa/tracing/instrumentation/instrumentation.py,sha256=K4h_u3VY-eKPKUP8UXKEHsCy5UpXw0QGQ2MdlQFBeWE,51861
756
756
  rasa/tracing/instrumentation/intentless_policy_instrumentation.py,sha256=RgixI0FVIzBz19E3onidUpSEwjkAh8paA5_w07PMzFo,4821
757
757
  rasa/tracing/instrumentation/metrics.py,sha256=N4Zxo8P84p4VH6vGai1oRurIUifXPtMrZh1BlpPB7kg,10534
758
758
  rasa/tracing/metric_instrument_provider.py,sha256=I1elkXfDNix9s4mqRWA_5f_PI15_yPl8k2yO0rltWoI,9989
@@ -792,9 +792,9 @@ rasa/utils/train_utils.py,sha256=ClJx-6x3-h3Vt6mskacgkcCUJTMXjFPe3zAcy_DfmaU,212
792
792
  rasa/utils/url_tools.py,sha256=dZ1HGkVdWTJB7zYEdwoDIrEuyX9HE5WsxKKFVsXBLE0,1218
793
793
  rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
794
794
  rasa/validator.py,sha256=Uh5R1JDmIRl0aNprh9FfHND8UKiNJTNYBrMdBDVxEFM,67516
795
- rasa/version.py,sha256=YawBV2JJ398dGLnJE-dS8VDFQ5XutteDedqKBqK6R0U,121
796
- rasa_pro-3.12.0.dev3.dist-info/METADATA,sha256=LAqsQSp2jk3uEfcZi_0_l50ao1c723rvka2_prj1hbs,10808
797
- rasa_pro-3.12.0.dev3.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
798
- rasa_pro-3.12.0.dev3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
799
- rasa_pro-3.12.0.dev3.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
800
- rasa_pro-3.12.0.dev3.dist-info/RECORD,,
795
+ rasa/version.py,sha256=d-XOF4mYMJHmqkFmKU2wSR_kwqhlHGvhcTG7OC9-arM,121
796
+ rasa_pro-3.12.0.dev4.dist-info/METADATA,sha256=FZjzWsMgAJyW2VWdU8WdPqPn4cK_SvnQgZd_OZeuM_w,10808
797
+ rasa_pro-3.12.0.dev4.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
798
+ rasa_pro-3.12.0.dev4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
799
+ rasa_pro-3.12.0.dev4.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
800
+ rasa_pro-3.12.0.dev4.dist-info/RECORD,,