rasa-pro 3.12.0.dev2__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.

Files changed (502) hide show
  1. rasa/__main__.py +7 -7
  2. rasa/anonymization/anonymisation_rule_yaml_reader.py +1 -1
  3. rasa/anonymization/anonymization_pipeline.py +3 -3
  4. rasa/anonymization/anonymization_rule_executor.py +1 -1
  5. rasa/anonymization/anonymization_rule_orchestrator.py +2 -3
  6. rasa/cli/arguments/data.py +2 -2
  7. rasa/cli/arguments/evaluate.py +2 -1
  8. rasa/cli/arguments/interactive.py +1 -1
  9. rasa/cli/arguments/run.py +1 -1
  10. rasa/cli/arguments/test.py +7 -5
  11. rasa/cli/arguments/train.py +3 -3
  12. rasa/cli/arguments/visualize.py +2 -2
  13. rasa/cli/arguments/x.py +1 -0
  14. rasa/cli/data.py +4 -3
  15. rasa/cli/dialogue_understanding_test.py +121 -18
  16. rasa/cli/evaluate.py +1 -1
  17. rasa/cli/export.py +6 -6
  18. rasa/cli/interactive.py +4 -5
  19. rasa/cli/llm_fine_tuning.py +5 -5
  20. rasa/cli/markers.py +1 -2
  21. rasa/cli/project_templates/calm/actions/add_contact.py +1 -1
  22. rasa/cli/project_templates/tutorial/actions/actions.py +3 -2
  23. rasa/cli/shell.py +2 -3
  24. rasa/cli/studio/download.py +1 -2
  25. rasa/cli/studio/studio.py +2 -3
  26. rasa/cli/studio/train.py +0 -1
  27. rasa/cli/telemetry.py +2 -2
  28. rasa/cli/test.py +11 -11
  29. rasa/cli/utils.py +7 -5
  30. rasa/core/__init__.py +0 -1
  31. rasa/core/actions/action.py +42 -21
  32. rasa/core/actions/action_hangup.py +1 -1
  33. rasa/core/actions/action_repeat_bot_messages.py +2 -2
  34. rasa/core/actions/action_run_slot_rejections.py +2 -2
  35. rasa/core/actions/action_trigger_chitchat.py +1 -1
  36. rasa/core/actions/action_trigger_flow.py +5 -5
  37. rasa/core/actions/action_trigger_search.py +1 -1
  38. rasa/core/actions/forms.py +14 -12
  39. rasa/core/actions/http_custom_action_executor.py +8 -1
  40. rasa/core/actions/loops.py +3 -3
  41. rasa/core/actions/two_stage_fallback.py +13 -13
  42. rasa/core/auth_retry_tracker_store.py +1 -2
  43. rasa/core/brokers/broker.py +2 -1
  44. rasa/core/brokers/file.py +1 -1
  45. rasa/core/brokers/kafka.py +8 -8
  46. rasa/core/brokers/pika.py +8 -9
  47. rasa/core/brokers/sql.py +4 -3
  48. rasa/core/channels/__init__.py +3 -0
  49. rasa/core/channels/botframework.py +2 -2
  50. rasa/core/channels/callback.py +4 -4
  51. rasa/core/channels/channel.py +11 -11
  52. rasa/core/channels/console.py +0 -1
  53. rasa/core/channels/development_inspector.py +6 -6
  54. rasa/core/channels/facebook.py +5 -5
  55. rasa/core/channels/hangouts.py +7 -8
  56. rasa/core/channels/inspector/dist/assets/{arc-861ddd57.js → arc-632a63ec.js} +1 -1
  57. rasa/core/channels/inspector/dist/assets/{c4Diagram-d0fbc5ce-921f02db.js → c4Diagram-d0fbc5ce-081e0df4.js} +1 -1
  58. rasa/core/channels/inspector/dist/assets/{classDiagram-936ed81e-b436c4f8.js → classDiagram-936ed81e-3df0afc2.js} +1 -1
  59. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-c3cb15f1-511a23cb.js → classDiagram-v2-c3cb15f1-8c5ed31e.js} +1 -1
  60. rasa/core/channels/inspector/dist/assets/{createText-62fc7601-ef476ecd.js → createText-62fc7601-89c73b31.js} +1 -1
  61. rasa/core/channels/inspector/dist/assets/{edges-f2ad444c-f1878e0a.js → edges-f2ad444c-4fc48c3e.js} +1 -1
  62. rasa/core/channels/inspector/dist/assets/{erDiagram-9d236eb7-fac75185.js → erDiagram-9d236eb7-907e0440.js} +1 -1
  63. rasa/core/channels/inspector/dist/assets/{flowDb-1972c806-201c5bbc.js → flowDb-1972c806-9ec53a3c.js} +1 -1
  64. rasa/core/channels/inspector/dist/assets/{flowDiagram-7ea5b25a-f904ae41.js → flowDiagram-7ea5b25a-41da787a.js} +1 -1
  65. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-8bea338b.js +1 -0
  66. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-abe16c3d-1813da66.js → flowchart-elk-definition-abe16c3d-ce370633.js} +1 -1
  67. rasa/core/channels/inspector/dist/assets/{ganttDiagram-9b5ea136-872af172.js → ganttDiagram-9b5ea136-90a36523.js} +1 -1
  68. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-99d0ae7c-34a0af5a.js → gitGraphDiagram-99d0ae7c-41e1aa3f.js} +1 -1
  69. rasa/core/channels/inspector/dist/assets/{index-2c4b9a3b-42ba3e3d.js → index-2c4b9a3b-e6f2af62.js} +1 -1
  70. rasa/core/channels/inspector/dist/assets/{index-37817b51.js → index-e793d777.js} +3 -3
  71. rasa/core/channels/inspector/dist/assets/{infoDiagram-736b4530-6b731386.js → infoDiagram-736b4530-8ceba4db.js} +1 -1
  72. rasa/core/channels/inspector/dist/assets/{journeyDiagram-df861f2b-e8579ac6.js → journeyDiagram-df861f2b-960d3809.js} +1 -1
  73. rasa/core/channels/inspector/dist/assets/{layout-89e6403a.js → layout-498807d8.js} +1 -1
  74. rasa/core/channels/inspector/dist/assets/{line-dc73d3fc.js → line-eeccc4e2.js} +1 -1
  75. rasa/core/channels/inspector/dist/assets/{linear-f5b1d2bc.js → linear-8a078617.js} +1 -1
  76. rasa/core/channels/inspector/dist/assets/{mindmap-definition-beec6740-82cb74fa.js → mindmap-definition-beec6740-396d17dd.js} +1 -1
  77. rasa/core/channels/inspector/dist/assets/{pieDiagram-dbbf0591-bdf5f29b.js → pieDiagram-dbbf0591-dc9b5e1b.js} +1 -1
  78. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-4d7f4fd6-c7a0cbe4.js → quadrantDiagram-4d7f4fd6-a08cba6d.js} +1 -1
  79. rasa/core/channels/inspector/dist/assets/{requirementDiagram-6fc4c22a-7ec5410f.js → requirementDiagram-6fc4c22a-87242b9e.js} +1 -1
  80. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-8f13d901-caee5554.js → sankeyDiagram-8f13d901-53f6f391.js} +1 -1
  81. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-b655622a-2935f8db.js → sequenceDiagram-b655622a-715c9c20.js} +1 -1
  82. rasa/core/channels/inspector/dist/assets/{stateDiagram-59f0c015-8f5d9693.js → stateDiagram-59f0c015-2e8fb31f.js} +1 -1
  83. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-2b26beab-d565d1de.js → stateDiagram-v2-2b26beab-7e2d2aa0.js} +1 -1
  84. rasa/core/channels/inspector/dist/assets/{styles-080da4f6-75ad421d.js → styles-080da4f6-4420cea6.js} +1 -1
  85. rasa/core/channels/inspector/dist/assets/{styles-3dcbcfbf-7e764226.js → styles-3dcbcfbf-28676cf4.js} +1 -1
  86. rasa/core/channels/inspector/dist/assets/{styles-9c745c82-7a4e0e61.js → styles-9c745c82-cef936a6.js} +1 -1
  87. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-4835440b-4019d1bf.js → svgDrawCommon-4835440b-151251e9.js} +1 -1
  88. rasa/core/channels/inspector/dist/assets/{timeline-definition-5b62e21b-01ea12df.js → timeline-definition-5b62e21b-0d39bdb2.js} +1 -1
  89. rasa/core/channels/inspector/dist/assets/{xychartDiagram-2b33534f-89407137.js → xychartDiagram-2b33534f-a03fa445.js} +1 -1
  90. rasa/core/channels/inspector/dist/index.html +3 -1
  91. rasa/core/channels/inspector/index.html +2 -0
  92. rasa/core/channels/inspector/src/App.tsx +1 -4
  93. rasa/core/channels/mattermost.py +4 -4
  94. rasa/core/channels/rasa_chat.py +4 -4
  95. rasa/core/channels/rest.py +11 -12
  96. rasa/core/channels/rocketchat.py +4 -3
  97. rasa/core/channels/slack.py +6 -5
  98. rasa/core/channels/socketio.py +7 -28
  99. rasa/core/channels/studio_chat.py +193 -0
  100. rasa/core/channels/telegram.py +73 -41
  101. rasa/core/channels/twilio.py +3 -3
  102. rasa/core/channels/vier_cvg.py +2 -2
  103. rasa/core/channels/voice_ready/audiocodes.py +8 -8
  104. rasa/core/channels/voice_ready/jambonz.py +5 -5
  105. rasa/core/channels/voice_ready/jambonz_protocol.py +3 -4
  106. rasa/core/channels/voice_ready/twilio_voice.py +9 -8
  107. rasa/core/channels/voice_ready/utils.py +1 -1
  108. rasa/core/channels/voice_stream/asr/asr_engine.py +2 -2
  109. rasa/core/channels/voice_stream/asr/azure.py +2 -2
  110. rasa/core/channels/voice_stream/asr/deepgram.py +57 -16
  111. rasa/core/channels/voice_stream/browser_audio.py +9 -6
  112. rasa/core/channels/voice_stream/call_state.py +2 -1
  113. rasa/core/channels/voice_stream/tts/azure.py +1 -2
  114. rasa/core/channels/voice_stream/tts/cartesia.py +5 -4
  115. rasa/core/channels/voice_stream/tts/tts_cache.py +3 -2
  116. rasa/core/channels/voice_stream/tts/tts_engine.py +1 -1
  117. rasa/core/channels/voice_stream/twilio_media_streams.py +10 -7
  118. rasa/core/channels/voice_stream/util.py +1 -1
  119. rasa/core/channels/voice_stream/voice_channel.py +15 -15
  120. rasa/core/channels/webexteams.py +3 -4
  121. rasa/core/evaluation/marker.py +7 -6
  122. rasa/core/evaluation/marker_base.py +15 -16
  123. rasa/core/evaluation/marker_stats.py +3 -4
  124. rasa/core/evaluation/marker_tracker_loader.py +5 -4
  125. rasa/core/exporter.py +4 -4
  126. rasa/core/featurizers/precomputation.py +8 -8
  127. rasa/core/featurizers/single_state_featurizer.py +7 -7
  128. rasa/core/featurizers/tracker_featurizers.py +13 -13
  129. rasa/core/http_interpreter.py +3 -4
  130. rasa/core/information_retrieval/__init__.py +1 -1
  131. rasa/core/information_retrieval/faiss.py +4 -4
  132. rasa/core/information_retrieval/information_retrieval.py +2 -2
  133. rasa/core/information_retrieval/milvus.py +3 -3
  134. rasa/core/information_retrieval/qdrant.py +3 -3
  135. rasa/core/jobs.py +1 -0
  136. rasa/core/lock.py +2 -3
  137. rasa/core/lock_store.py +3 -3
  138. rasa/core/migrate.py +11 -8
  139. rasa/core/nlg/__init__.py +1 -1
  140. rasa/core/nlg/callback.py +2 -3
  141. rasa/core/nlg/contextual_response_rephraser.py +63 -13
  142. rasa/core/nlg/generator.py +2 -2
  143. rasa/core/nlg/interpolator.py +4 -3
  144. rasa/core/nlg/response.py +3 -4
  145. rasa/core/nlg/summarize.py +1 -0
  146. rasa/core/persistor.py +3 -3
  147. rasa/core/policies/ensemble.py +10 -9
  148. rasa/core/policies/enterprise_search_policy.py +86 -21
  149. rasa/core/policies/flow_policy.py +13 -14
  150. rasa/core/policies/flows/flow_executor.py +35 -11
  151. rasa/core/policies/intentless_policy.py +6 -7
  152. rasa/core/policies/memoization.py +22 -20
  153. rasa/core/policies/policy.py +24 -22
  154. rasa/core/policies/rule_policy.py +37 -36
  155. rasa/core/policies/ted_policy.py +87 -85
  156. rasa/core/policies/unexpected_intent_policy.py +77 -75
  157. rasa/core/processor.py +96 -65
  158. rasa/core/run.py +1 -1
  159. rasa/core/secrets_manager/endpoints.py +2 -3
  160. rasa/core/secrets_manager/factory.py +2 -3
  161. rasa/core/secrets_manager/secret_manager.py +2 -3
  162. rasa/core/secrets_manager/vault.py +2 -2
  163. rasa/core/test.py +30 -30
  164. rasa/core/tracker_store.py +15 -15
  165. rasa/core/train.py +1 -1
  166. rasa/core/training/__init__.py +2 -2
  167. rasa/core/training/converters/responses_prefix_converter.py +1 -2
  168. rasa/core/training/interactive.py +13 -13
  169. rasa/core/training/story_conflict.py +4 -5
  170. rasa/core/training/training.py +3 -5
  171. rasa/core/utils.py +5 -5
  172. rasa/core/visualize.py +1 -1
  173. rasa/dialogue_understanding/coexistence/intent_based_router.py +2 -2
  174. rasa/dialogue_understanding/coexistence/llm_based_router.py +5 -5
  175. rasa/dialogue_understanding/commands/__init__.py +22 -22
  176. rasa/dialogue_understanding/commands/can_not_handle_command.py +20 -1
  177. rasa/dialogue_understanding/commands/cancel_flow_command.py +18 -7
  178. rasa/dialogue_understanding/commands/change_flow_command.py +18 -2
  179. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +18 -4
  180. rasa/dialogue_understanding/commands/clarify_command.py +19 -3
  181. rasa/dialogue_understanding/commands/command.py +19 -3
  182. rasa/dialogue_understanding/commands/correct_slots_command.py +3 -3
  183. rasa/dialogue_understanding/commands/error_command.py +1 -1
  184. rasa/dialogue_understanding/commands/free_form_answer_command.py +2 -1
  185. rasa/dialogue_understanding/commands/handle_code_change_command.py +2 -2
  186. rasa/dialogue_understanding/commands/human_handoff_command.py +16 -4
  187. rasa/dialogue_understanding/commands/knowledge_answer_command.py +18 -4
  188. rasa/dialogue_understanding/commands/noop_command.py +2 -1
  189. rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +16 -4
  190. rasa/dialogue_understanding/commands/restart_command.py +2 -5
  191. rasa/dialogue_understanding/commands/session_end_command.py +3 -5
  192. rasa/dialogue_understanding/commands/session_start_command.py +3 -5
  193. rasa/dialogue_understanding/commands/set_slot_command.py +27 -3
  194. rasa/dialogue_understanding/commands/skip_question_command.py +16 -4
  195. rasa/dialogue_understanding/commands/start_flow_command.py +17 -2
  196. rasa/dialogue_understanding/commands/user_silence_command.py +3 -5
  197. rasa/dialogue_understanding/commands/utils.py +64 -45
  198. rasa/dialogue_understanding/constants.py +1 -0
  199. rasa/dialogue_understanding/generator/command_generator.py +2 -119
  200. rasa/dialogue_understanding/generator/command_parser.py +201 -0
  201. rasa/dialogue_understanding/generator/constants.py +2 -2
  202. rasa/dialogue_understanding/generator/flow_retrieval.py +7 -7
  203. rasa/dialogue_understanding/generator/llm_based_command_generator.py +11 -57
  204. rasa/dialogue_understanding/generator/llm_command_generator.py +2 -1
  205. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +67 -120
  206. rasa/dialogue_understanding/generator/nlu_command_adapter.py +8 -10
  207. rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +32 -93
  208. rasa/dialogue_understanding/generator/utils.py +45 -0
  209. rasa/dialogue_understanding/patterns/cancel.py +2 -1
  210. rasa/dialogue_understanding/patterns/cannot_handle.py +1 -0
  211. rasa/dialogue_understanding/patterns/chitchat.py +1 -1
  212. rasa/dialogue_understanding/patterns/clarify.py +2 -1
  213. rasa/dialogue_understanding/patterns/code_change.py +2 -0
  214. rasa/dialogue_understanding/patterns/collect_information.py +6 -3
  215. rasa/dialogue_understanding/patterns/completed.py +1 -1
  216. rasa/dialogue_understanding/patterns/continue_interrupted.py +10 -1
  217. rasa/dialogue_understanding/patterns/correction.py +4 -2
  218. rasa/dialogue_understanding/patterns/human_handoff.py +1 -1
  219. rasa/dialogue_understanding/patterns/internal_error.py +1 -0
  220. rasa/dialogue_understanding/patterns/search.py +1 -1
  221. rasa/dialogue_understanding/patterns/session_start.py +1 -1
  222. rasa/dialogue_understanding/patterns/skip_question.py +1 -0
  223. rasa/dialogue_understanding/patterns/user_silence.py +1 -1
  224. rasa/dialogue_understanding/processor/command_processor.py +13 -9
  225. rasa/dialogue_understanding/processor/command_processor_component.py +1 -1
  226. rasa/dialogue_understanding/stack/dialogue_stack.py +4 -3
  227. rasa/dialogue_understanding/stack/frames/__init__.py +2 -2
  228. rasa/dialogue_understanding/stack/frames/chit_chat_frame.py +4 -1
  229. rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py +2 -3
  230. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +5 -2
  231. rasa/dialogue_understanding/stack/frames/search_frame.py +4 -1
  232. rasa/dialogue_understanding/stack/utils.py +8 -4
  233. rasa/dialogue_understanding/utils.py +121 -2
  234. rasa/dialogue_understanding_test/README.md +379 -0
  235. rasa/dialogue_understanding_test/command_comparison.py +60 -0
  236. rasa/dialogue_understanding_test/command_metric_calculation.py +110 -4
  237. rasa/dialogue_understanding_test/constants.py +6 -1
  238. rasa/dialogue_understanding_test/du_test_case.py +252 -38
  239. rasa/dialogue_understanding_test/du_test_result.py +291 -2
  240. rasa/dialogue_understanding_test/du_test_runner.py +239 -10
  241. rasa/dialogue_understanding_test/du_test_schema.yml +161 -0
  242. rasa/dialogue_understanding_test/io.py +338 -20
  243. rasa/dialogue_understanding_test/test_case_simulation/__init__.py +0 -0
  244. rasa/dialogue_understanding_test/test_case_simulation/exception.py +28 -0
  245. rasa/dialogue_understanding_test/test_case_simulation/test_case_tracker_simulator.py +336 -0
  246. rasa/dialogue_understanding_test/utils.py +70 -0
  247. rasa/dialogue_understanding_test/validation.py +59 -4
  248. rasa/e2e_test/aggregate_test_stats_calculator.py +1 -1
  249. rasa/e2e_test/assertions.py +1 -1
  250. rasa/e2e_test/e2e_config.py +1 -1
  251. rasa/e2e_test/e2e_test_case.py +3 -4
  252. rasa/e2e_test/e2e_test_converter.py +2 -3
  253. rasa/e2e_test/e2e_test_coverage_report.py +6 -6
  254. rasa/e2e_test/e2e_test_result.py +1 -1
  255. rasa/e2e_test/e2e_test_runner.py +134 -31
  256. rasa/e2e_test/stub_custom_action.py +1 -1
  257. rasa/e2e_test/utils/e2e_yaml_utils.py +1 -1
  258. rasa/e2e_test/utils/io.py +132 -65
  259. rasa/e2e_test/utils/validation.py +1 -1
  260. rasa/engine/caching.py +5 -7
  261. rasa/engine/constants.py +1 -1
  262. rasa/engine/graph.py +2 -2
  263. rasa/engine/recipes/default_components.py +13 -15
  264. rasa/engine/recipes/recipe.py +2 -2
  265. rasa/engine/runner/dask.py +2 -2
  266. rasa/engine/runner/interface.py +1 -0
  267. rasa/engine/storage/local_model_storage.py +5 -4
  268. rasa/engine/storage/resource.py +2 -1
  269. rasa/engine/storage/storage.py +5 -3
  270. rasa/engine/training/components.py +2 -1
  271. rasa/engine/training/fingerprinting.py +4 -2
  272. rasa/engine/training/graph_trainer.py +4 -4
  273. rasa/engine/training/hooks.py +2 -2
  274. rasa/engine/validation.py +34 -33
  275. rasa/exceptions.py +3 -2
  276. rasa/graph_components/converters/nlu_message_converter.py +3 -3
  277. rasa/graph_components/providers/domain_for_core_training_provider.py +3 -3
  278. rasa/graph_components/providers/domain_provider.py +3 -2
  279. rasa/graph_components/providers/flows_provider.py +2 -3
  280. rasa/graph_components/providers/forms_provider.py +4 -4
  281. rasa/graph_components/providers/nlu_training_data_provider.py +5 -3
  282. rasa/graph_components/providers/responses_provider.py +4 -4
  283. rasa/graph_components/providers/rule_only_provider.py +3 -2
  284. rasa/graph_components/providers/story_graph_provider.py +8 -8
  285. rasa/graph_components/providers/training_tracker_provider.py +3 -2
  286. rasa/graph_components/validators/default_recipe_validator.py +16 -16
  287. rasa/graph_components/validators/finetuning_validator.py +10 -8
  288. rasa/hooks.py +18 -12
  289. rasa/jupyter.py +2 -2
  290. rasa/llm_fine_tuning/annotation_module.py +4 -4
  291. rasa/llm_fine_tuning/conversations.py +6 -6
  292. rasa/llm_fine_tuning/llm_data_preparation_module.py +1 -1
  293. rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +4 -4
  294. rasa/llm_fine_tuning/paraphrasing/rephrase_validator.py +1 -1
  295. rasa/llm_fine_tuning/paraphrasing_module.py +1 -1
  296. rasa/llm_fine_tuning/storage.py +3 -3
  297. rasa/markers/marker.py +2 -3
  298. rasa/markers/marker_base.py +1 -2
  299. rasa/markers/upload.py +2 -2
  300. rasa/markers/validate.py +2 -3
  301. rasa/model.py +3 -5
  302. rasa/model_manager/config.py +1 -1
  303. rasa/model_manager/model_api.py +5 -4
  304. rasa/model_manager/runner_service.py +6 -6
  305. rasa/model_manager/socket_bridge.py +8 -3
  306. rasa/model_manager/studio_jwt_auth.py +1 -0
  307. rasa/model_manager/trainer_service.py +9 -7
  308. rasa/model_manager/utils.py +1 -1
  309. rasa/model_manager/warm_rasa_process.py +14 -8
  310. rasa/model_service.py +5 -6
  311. rasa/model_testing.py +13 -15
  312. rasa/nlu/classifiers/diet_classifier.py +72 -73
  313. rasa/nlu/classifiers/fallback_classifier.py +9 -11
  314. rasa/nlu/classifiers/keyword_intent_classifier.py +7 -6
  315. rasa/nlu/classifiers/logistic_regression_classifier.py +3 -3
  316. rasa/nlu/classifiers/mitie_intent_classifier.py +5 -4
  317. rasa/nlu/classifiers/regex_message_handler.py +3 -2
  318. rasa/nlu/classifiers/sklearn_intent_classifier.py +2 -2
  319. rasa/nlu/convert.py +2 -2
  320. rasa/nlu/emulators/dialogflow.py +3 -3
  321. rasa/nlu/emulators/luis.py +5 -5
  322. rasa/nlu/emulators/no_emulator.py +1 -0
  323. rasa/nlu/emulators/wit.py +4 -4
  324. rasa/nlu/extractors/crf_entity_extractor.py +11 -11
  325. rasa/nlu/extractors/duckling_entity_extractor.py +7 -6
  326. rasa/nlu/extractors/entity_synonyms.py +10 -9
  327. rasa/nlu/extractors/extractor.py +16 -16
  328. rasa/nlu/extractors/mitie_entity_extractor.py +10 -9
  329. rasa/nlu/extractors/regex_entity_extractor.py +11 -10
  330. rasa/nlu/extractors/spacy_entity_extractor.py +2 -2
  331. rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +15 -14
  332. rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +2 -1
  333. rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +10 -9
  334. rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +9 -7
  335. rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +13 -12
  336. rasa/nlu/featurizers/featurizer.py +5 -4
  337. rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +6 -6
  338. rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -4
  339. rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +4 -4
  340. rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +2 -0
  341. rasa/nlu/model.py +0 -1
  342. rasa/nlu/selectors/response_selector.py +67 -68
  343. rasa/nlu/test.py +38 -38
  344. rasa/nlu/tokenizers/jieba_tokenizer.py +1 -2
  345. rasa/nlu/tokenizers/mitie_tokenizer.py +2 -2
  346. rasa/nlu/tokenizers/spacy_tokenizer.py +3 -3
  347. rasa/nlu/tokenizers/tokenizer.py +6 -7
  348. rasa/nlu/tokenizers/whitespace_tokenizer.py +1 -1
  349. rasa/nlu/utils/bilou_utils.py +7 -7
  350. rasa/nlu/utils/hugging_face/registry.py +22 -22
  351. rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +2 -1
  352. rasa/nlu/utils/mitie_utils.py +2 -1
  353. rasa/nlu/utils/pattern_utils.py +1 -1
  354. rasa/nlu/utils/spacy_utils.py +3 -3
  355. rasa/plugin.py +12 -1
  356. rasa/server.py +37 -1
  357. rasa/shared/constants.py +22 -2
  358. rasa/shared/core/command_payload_reader.py +15 -7
  359. rasa/shared/core/constants.py +4 -1
  360. rasa/shared/core/conversation.py +1 -2
  361. rasa/shared/core/events.py +47 -37
  362. rasa/shared/core/flows/__init__.py +0 -1
  363. rasa/shared/core/flows/flow.py +11 -11
  364. rasa/shared/core/flows/flow_step.py +19 -13
  365. rasa/shared/core/flows/flow_step_links.py +21 -14
  366. rasa/shared/core/flows/flow_step_sequence.py +6 -4
  367. rasa/shared/core/flows/flows_list.py +3 -3
  368. rasa/shared/core/flows/nlu_trigger.py +1 -1
  369. rasa/shared/core/flows/steps/__init__.py +2 -2
  370. rasa/shared/core/flows/steps/action.py +4 -3
  371. rasa/shared/core/flows/steps/call.py +4 -4
  372. rasa/shared/core/flows/steps/collect.py +7 -4
  373. rasa/shared/core/flows/steps/continuation.py +3 -1
  374. rasa/shared/core/flows/steps/end.py +3 -1
  375. rasa/shared/core/flows/steps/internal.py +3 -2
  376. rasa/shared/core/flows/steps/link.py +6 -4
  377. rasa/shared/core/flows/steps/no_operation.py +7 -5
  378. rasa/shared/core/flows/steps/set_slots.py +4 -3
  379. rasa/shared/core/flows/steps/start.py +3 -1
  380. rasa/shared/core/flows/utils.py +1 -0
  381. rasa/shared/core/flows/validation.py +3 -5
  382. rasa/shared/core/generator.py +20 -21
  383. rasa/shared/core/slot_mappings.py +15 -15
  384. rasa/shared/core/slots.py +3 -3
  385. rasa/shared/core/trackers.py +31 -31
  386. rasa/shared/core/training_data/loading.py +1 -1
  387. rasa/shared/core/training_data/story_reader/story_reader.py +3 -3
  388. rasa/shared/core/training_data/story_reader/story_step_builder.py +4 -4
  389. rasa/shared/core/training_data/story_reader/yaml_story_reader.py +29 -31
  390. rasa/shared/core/training_data/story_writer/yaml_story_writer.py +22 -24
  391. rasa/shared/core/training_data/structures.py +11 -12
  392. rasa/shared/core/training_data/visualization.py +10 -10
  393. rasa/shared/data.py +6 -6
  394. rasa/shared/engine/caching.py +0 -1
  395. rasa/shared/exceptions.py +2 -2
  396. rasa/shared/importers/rasa.py +5 -6
  397. rasa/shared/importers/utils.py +1 -1
  398. rasa/shared/nlu/constants.py +3 -0
  399. rasa/shared/nlu/training_data/entities_parser.py +6 -6
  400. rasa/shared/nlu/training_data/features.py +3 -3
  401. rasa/shared/nlu/training_data/formats/__init__.py +1 -1
  402. rasa/shared/nlu/training_data/formats/dialogflow.py +4 -5
  403. rasa/shared/nlu/training_data/formats/luis.py +7 -8
  404. rasa/shared/nlu/training_data/formats/rasa.py +4 -5
  405. rasa/shared/nlu/training_data/formats/rasa_yaml.py +17 -16
  406. rasa/shared/nlu/training_data/formats/readerwriter.py +8 -11
  407. rasa/shared/nlu/training_data/formats/wit.py +3 -4
  408. rasa/shared/nlu/training_data/loading.py +4 -4
  409. rasa/shared/nlu/training_data/lookup_tables_parser.py +1 -1
  410. rasa/shared/nlu/training_data/message.py +13 -14
  411. rasa/shared/nlu/training_data/schemas/data_schema.py +1 -1
  412. rasa/shared/nlu/training_data/schemas/responses.yml +1 -0
  413. rasa/shared/nlu/training_data/synonyms_parser.py +3 -3
  414. rasa/shared/nlu/training_data/training_data.py +12 -13
  415. rasa/shared/nlu/training_data/util.py +11 -10
  416. rasa/shared/providers/_configs/azure_openai_client_config.py +3 -119
  417. rasa/shared/providers/_configs/client_config.py +1 -3
  418. rasa/shared/providers/_configs/default_litellm_client_config.py +1 -3
  419. rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +1 -3
  420. rasa/shared/providers/_configs/litellm_router_client_config.py +1 -3
  421. rasa/shared/providers/_configs/model_group_config.py +2 -7
  422. rasa/shared/providers/_configs/openai_client_config.py +1 -3
  423. rasa/shared/providers/_configs/rasa_llm_client_config.py +1 -3
  424. rasa/shared/providers/_configs/self_hosted_llm_client_config.py +1 -3
  425. rasa/shared/providers/_configs/utils.py +1 -0
  426. rasa/shared/providers/_ssl_verification_utils.py +5 -6
  427. rasa/shared/providers/_utils.py +5 -5
  428. rasa/shared/providers/embedding/_base_litellm_embedding_client.py +1 -1
  429. rasa/shared/providers/embedding/azure_openai_embedding_client.py +3 -26
  430. rasa/shared/providers/embedding/embedding_client.py +1 -1
  431. rasa/shared/providers/embedding/litellm_router_embedding_client.py +1 -3
  432. rasa/shared/providers/llm/_base_litellm_client.py +1 -3
  433. rasa/shared/providers/llm/azure_openai_llm_client.py +25 -79
  434. rasa/shared/providers/llm/default_litellm_llm_client.py +1 -3
  435. rasa/shared/providers/llm/litellm_router_llm_client.py +2 -21
  436. rasa/shared/providers/llm/llm_client.py +1 -3
  437. rasa/shared/providers/llm/llm_response.py +41 -2
  438. rasa/shared/providers/llm/openai_llm_client.py +3 -9
  439. rasa/shared/providers/llm/rasa_llm_client.py +6 -20
  440. rasa/shared/providers/llm/self_hosted_llm_client.py +3 -9
  441. rasa/shared/providers/mappings.py +18 -19
  442. rasa/shared/providers/router/_base_litellm_router_client.py +1 -3
  443. rasa/shared/providers/router/router_client.py +1 -3
  444. rasa/shared/utils/cli.py +1 -1
  445. rasa/shared/utils/common.py +1 -1
  446. rasa/shared/utils/health_check/embeddings_health_check_mixin.py +1 -1
  447. rasa/shared/utils/health_check/health_check.py +3 -3
  448. rasa/shared/utils/health_check/llm_health_check_mixin.py +1 -1
  449. rasa/shared/utils/io.py +1 -1
  450. rasa/shared/utils/llm.py +5 -9
  451. rasa/shared/utils/pykwalify_extensions.py +1 -1
  452. rasa/shared/utils/schemas/events.py +1 -1
  453. rasa/shared/utils/yaml.py +29 -26
  454. rasa/studio/auth.py +3 -3
  455. rasa/studio/config.py +1 -2
  456. rasa/studio/data_handler.py +3 -3
  457. rasa/studio/download.py +1 -1
  458. rasa/studio/results_logger.py +3 -3
  459. rasa/studio/upload.py +2 -0
  460. rasa/telemetry.py +31 -0
  461. rasa/tracing/config.py +3 -3
  462. rasa/tracing/instrumentation/attribute_extractors.py +54 -0
  463. rasa/tracing/instrumentation/instrumentation.py +25 -5
  464. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +1 -1
  465. rasa/tracing/instrumentation/metrics.py +11 -11
  466. rasa/tracing/metric_instrument_provider.py +14 -14
  467. rasa/utils/common.py +12 -9
  468. rasa/utils/endpoints.py +1 -1
  469. rasa/utils/io.py +7 -7
  470. rasa/utils/licensing.py +3 -4
  471. rasa/utils/log_utils.py +7 -6
  472. rasa/utils/ml_utils.py +1 -0
  473. rasa/utils/plotting.py +3 -3
  474. rasa/utils/sanic_error_handler.py +1 -1
  475. rasa/utils/tensorflow/callback.py +2 -2
  476. rasa/utils/tensorflow/crf.py +2 -2
  477. rasa/utils/tensorflow/data_generator.py +5 -5
  478. rasa/utils/tensorflow/environment.py +3 -3
  479. rasa/utils/tensorflow/feature_array.py +2 -3
  480. rasa/utils/tensorflow/layers.py +18 -12
  481. rasa/utils/tensorflow/layers_utils.py +2 -1
  482. rasa/utils/tensorflow/metrics.py +2 -2
  483. rasa/utils/tensorflow/model_data.py +7 -7
  484. rasa/utils/tensorflow/model_data_utils.py +10 -9
  485. rasa/utils/tensorflow/models.py +31 -32
  486. rasa/utils/tensorflow/rasa_layers.py +20 -19
  487. rasa/utils/tensorflow/types.py +2 -1
  488. rasa/utils/train_utils.py +23 -21
  489. rasa/utils/url_tools.py +1 -1
  490. rasa/validator.py +17 -1
  491. rasa/version.py +1 -1
  492. {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.dist-info}/METADATA +9 -10
  493. rasa_pro-3.12.0.dev4.dist-info/RECORD +800 -0
  494. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-b080d6f2.js +0 -1
  495. rasa/shared/providers/_configs/azure_entra_id_client_creds.py +0 -40
  496. rasa/shared/providers/_configs/azure_entra_id_config.py +0 -533
  497. rasa/shared/providers/_configs/oauth_config.py +0 -33
  498. rasa/shared/providers/constants.py +0 -6
  499. rasa_pro-3.12.0.dev2.dist-info/RECORD +0 -793
  500. {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.dist-info}/NOTICE +0 -0
  501. {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.dist-info}/WHEEL +0 -0
  502. {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.dist-info}/entry_points.txt +0 -0
@@ -1,17 +1,17 @@
1
1
  import asyncio
2
2
  from contextlib import contextmanager
3
- from typing import List, Generator, Optional, Tuple, Union
3
+ from typing import Generator, List, Optional, Tuple, Union
4
4
 
5
5
  import structlog
6
6
 
7
7
  from rasa.dialogue_understanding.commands import Command
8
- from rasa.e2e_test.e2e_test_case import TestSuite, TestCase, ActualStepOutput, TestStep
9
- from rasa.e2e_test.e2e_test_runner import E2ETestRunner, TEST_TURNS_TYPE
8
+ from rasa.e2e_test.e2e_test_case import ActualStepOutput, TestCase, TestStep, TestSuite
9
+ from rasa.e2e_test.e2e_test_runner import TEST_TURNS_TYPE, E2ETestRunner
10
10
  from rasa.llm_fine_tuning.conversations import Conversation, ConversationStep
11
11
  from rasa.llm_fine_tuning.storage import StorageContext
12
12
  from rasa.shared.core.constants import USER
13
13
  from rasa.shared.core.trackers import DialogueStateTracker
14
- from rasa.shared.nlu.constants import LLM_PROMPT, LLM_COMMANDS
14
+ from rasa.shared.nlu.constants import LLM_COMMANDS, LLM_PROMPT
15
15
  from rasa.shared.utils.llm import tracker_as_readable_transcript
16
16
 
17
17
  ANNOTATION_MODULE_STORAGE_LOCATION = "1_command_annotations"
@@ -1,16 +1,16 @@
1
1
  from dataclasses import dataclass, field
2
- from typing import List, Union, Iterator, Any, Dict, Optional
2
+ from typing import Any, Dict, Iterator, List, Optional, Union
3
3
 
4
4
  from rasa.dialogue_understanding.commands import (
5
- Command,
6
- StartFlowCommand,
7
- SetSlotCommand,
8
5
  CancelFlowCommand,
9
6
  ChitChatAnswerCommand,
10
- SkipQuestionCommand,
7
+ ClarifyCommand,
8
+ Command,
11
9
  HumanHandoffCommand,
12
10
  KnowledgeAnswerCommand,
13
- ClarifyCommand,
11
+ SetSlotCommand,
12
+ SkipQuestionCommand,
13
+ StartFlowCommand,
14
14
  )
15
15
  from rasa.e2e_test.e2e_test_case import TestCase, TestStep
16
16
  from rasa.shared.core.constants import USER
@@ -1,5 +1,5 @@
1
1
  from dataclasses import dataclass
2
- from typing import List, Dict, Any, Optional
2
+ from typing import Any, Dict, List, Optional
3
3
 
4
4
  import structlog
5
5
  from tqdm import tqdm
@@ -1,6 +1,6 @@
1
1
  import importlib.resources
2
2
  import re
3
- from typing import Dict, Any, List, Tuple, Optional
3
+ from typing import Any, Dict, List, Optional, Tuple
4
4
 
5
5
  import structlog
6
6
  from jinja2 import Template
@@ -10,9 +10,9 @@ from rasa.llm_fine_tuning.paraphrasing.rephrased_user_message import (
10
10
  RephrasedUserMessage,
11
11
  )
12
12
  from rasa.shared.constants import (
13
- MODEL_NAME_CONFIG_KEY,
14
- MODEL_CONFIG_KEY,
15
13
  LLM_CONFIG_KEY,
14
+ MODEL_CONFIG_KEY,
15
+ MODEL_NAME_CONFIG_KEY,
16
16
  PROMPT_TEMPLATE_CONFIG_KEY,
17
17
  PROVIDER_CONFIG_KEY,
18
18
  TIMEOUT_CONFIG_KEY,
@@ -20,9 +20,9 @@ from rasa.shared.constants import (
20
20
  from rasa.shared.exceptions import ProviderClientAPIException
21
21
  from rasa.shared.providers.mappings import OPENAI_PROVIDER
22
22
  from rasa.shared.utils.llm import (
23
+ USER,
23
24
  get_prompt_template,
24
25
  llm_factory,
25
- USER,
26
26
  )
27
27
 
28
28
  SEPARATOR = "\n\n"
@@ -1,4 +1,4 @@
1
- from typing import Dict, Any, List
1
+ from typing import Any, Dict, List
2
2
 
3
3
  import structlog
4
4
 
@@ -1,4 +1,4 @@
1
- from typing import List, Dict, Any, Tuple
1
+ from typing import Any, Dict, List, Tuple
2
2
 
3
3
  import structlog
4
4
  from tqdm import tqdm
@@ -1,9 +1,9 @@
1
1
  import json
2
2
  import os
3
- from abc import abstractmethod, ABC
3
+ from abc import ABC, abstractmethod
4
4
  from enum import Enum
5
5
  from pathlib import Path
6
- from typing import List, Optional, TYPE_CHECKING
6
+ from typing import TYPE_CHECKING, List, Optional
7
7
 
8
8
  import rasa.shared.utils.io
9
9
  import rasa.utils.io
@@ -11,9 +11,9 @@ from rasa.llm_fine_tuning.conversations import Conversation
11
11
  from rasa.shared.utils.yaml import write_yaml
12
12
 
13
13
  if TYPE_CHECKING:
14
+ from rasa.e2e_test.e2e_test_case import TestSuite
14
15
  from rasa.llm_fine_tuning.llm_data_preparation_module import LLMDataExample
15
16
  from rasa.llm_fine_tuning.train_test_split_module import DataExampleFormat
16
- from rasa.e2e_test.e2e_test_case import TestSuite
17
17
 
18
18
 
19
19
  class StorageType(Enum):
rasa/markers/marker.py CHANGED
@@ -1,15 +1,14 @@
1
1
  import logging
2
2
  from typing import List, Optional, Text
3
3
 
4
- from rasa.shared.core.domain import Domain
5
- from rasa.shared.core.events import ActionExecuted, Event, SlotSet, UserUttered
6
-
7
4
  from rasa.markers.marker_base import (
8
5
  ConditionMarker,
9
6
  Marker,
10
7
  MarkerRegistry,
11
8
  OperatorMarker,
12
9
  )
10
+ from rasa.shared.core.domain import Domain
11
+ from rasa.shared.core.events import ActionExecuted, Event, SlotSet, UserUttered
13
12
 
14
13
  logger = logging.getLogger(__name__)
15
14
 
@@ -6,9 +6,9 @@ from abc import ABC, abstractmethod
6
6
  from dataclasses import dataclass
7
7
  from pathlib import Path
8
8
  from typing import (
9
- ClassVar,
10
9
  TYPE_CHECKING,
11
10
  Any,
11
+ ClassVar,
12
12
  Dict,
13
13
  Iterator,
14
14
  List,
@@ -30,7 +30,6 @@ from rasa.shared.core.domain import Domain
30
30
  from rasa.shared.core.events import ActionExecuted, Event, UserUttered
31
31
  from rasa.shared.exceptions import InvalidConfigException, RasaException
32
32
  from rasa.utils.io import WriteRow
33
-
34
33
  from rasa.utils.yaml import (
35
34
  collect_configs_from_yaml_files,
36
35
  collect_yaml_files_from_path,
rasa/markers/upload.py CHANGED
@@ -3,10 +3,10 @@ from pathlib import Path
3
3
  from typing import Any, Dict, List, Text
4
4
 
5
5
  import requests
6
- from rasa.shared.core.domain import Domain
7
- from rasa.shared.utils.cli import print_error_and_exit
8
6
 
9
7
  from rasa.markers.validate import validate_marker_file
8
+ from rasa.shared.core.domain import Domain
9
+ from rasa.shared.utils.cli import print_error_and_exit
10
10
  from rasa.utils.yaml import (
11
11
  YAML_CONFIGS,
12
12
  collect_configs_from_yaml_files,
rasa/markers/validate.py CHANGED
@@ -1,10 +1,9 @@
1
1
  from pathlib import Path
2
2
 
3
- from rasa.shared.core.domain import Domain
4
- from rasa.shared.utils.cli import print_error_and_exit
5
-
6
3
  from rasa.markers.marker import OrMarker
7
4
  from rasa.markers.marker_base import Marker
5
+ from rasa.shared.core.domain import Domain
6
+ from rasa.shared.utils.cli import print_error_and_exit
8
7
 
9
8
 
10
9
  def validate_marker_file(domain: Domain, markers_path: Path) -> None:
rasa/model.py CHANGED
@@ -3,13 +3,11 @@ import hashlib
3
3
  import logging
4
4
  import os
5
5
  from pathlib import Path
6
- from subprocess import check_output, DEVNULL, CalledProcessError
7
- from typing import Text, Optional, Union
8
-
9
- from rasa.shared.constants import DEFAULT_MODELS_PATH
6
+ from subprocess import DEVNULL, CalledProcessError, check_output
7
+ from typing import Optional, Text, Union
10
8
 
11
9
  from rasa.exceptions import ModelNotFound
12
-
10
+ from rasa.shared.constants import DEFAULT_MODELS_PATH
13
11
 
14
12
  logger = logging.getLogger(__name__)
15
13
 
@@ -1,5 +1,5 @@
1
- import sys
2
1
  import os
2
+ import sys
3
3
 
4
4
  DEFAULT_SERVER_BASE_WORKING_DIRECTORY = "working-data"
5
5
 
@@ -1,21 +1,22 @@
1
1
  import asyncio
2
- from functools import wraps
3
2
  import os
3
+ from functools import wraps
4
4
  from http import HTTPStatus
5
5
  from typing import Any, Callable, Dict, Optional, Union
6
+
6
7
  import dotenv
7
8
  import psutil
9
+ import structlog
8
10
  from sanic import Blueprint, Sanic, response
9
- from sanic.response import json
10
11
  from sanic.exceptions import NotFound
11
12
  from sanic.request import Request
12
- import structlog
13
+ from sanic.response import json
13
14
  from socketio import AsyncServer
14
15
 
16
+ from rasa.constants import MODEL_ARCHIVE_EXTENSION
15
17
  from rasa.exceptions import ModelNotFound
16
18
  from rasa.model_manager import config
17
19
  from rasa.model_manager.config import SERVER_BASE_URL
18
- from rasa.constants import MODEL_ARCHIVE_EXTENSION
19
20
  from rasa.model_manager.runner_service import (
20
21
  BotSession,
21
22
  BotSessionStatus,
@@ -1,22 +1,22 @@
1
1
  import os
2
2
  import shutil
3
+ import subprocess
4
+ from enum import Enum
3
5
  from typing import Dict, Optional
6
+
4
7
  import aiohttp
5
8
  import structlog
6
- import subprocess
7
9
  from pydantic import BaseModel, ConfigDict
8
- from enum import Enum
9
10
 
11
+ from rasa.constants import MODEL_ARCHIVE_EXTENSION
10
12
  from rasa.exceptions import ModelNotFound
13
+ from rasa.model_manager import config
11
14
  from rasa.model_manager.utils import (
15
+ logs_path,
12
16
  models_base_path,
13
17
  subpath,
14
18
  write_encoded_data_to_file,
15
19
  )
16
- from rasa.constants import MODEL_ARCHIVE_EXTENSION
17
-
18
- from rasa.model_manager import config
19
- from rasa.model_manager.utils import logs_path
20
20
  from rasa.model_manager.warm_rasa_process import start_rasa_process
21
21
 
22
22
  structlogger = structlog.get_logger()
@@ -1,7 +1,8 @@
1
+ import json
1
2
  from typing import Any, Dict, Optional
2
3
 
3
- from socketio import AsyncServer
4
4
  import structlog
5
+ from socketio import AsyncServer
5
6
  from socketio.asyncio_client import AsyncClient
6
7
 
7
8
  from rasa.model_manager.runner_service import BotSession
@@ -92,7 +93,7 @@ def create_bridge_server(sio: AsyncServer, running_bots: Dict[str, BotSession])
92
93
 
93
94
  @sio.on("*")
94
95
  async def handle_message(event: str, sid: str, data: Dict[str, Any]) -> None:
95
- """ "Bridge messages between user and bot.
96
+ """Bridge messages between user and bot.
96
97
 
97
98
  Both incoming user messages to the bot_url and
98
99
  bot responses sent back to the client need to
@@ -111,7 +112,7 @@ async def create_bridge_client(
111
112
  ) -> AsyncClient:
112
113
  """Create a new socket bridge client.
113
114
 
114
- Forwards messages comming from the bot to the user.
115
+ Forwards messages coming from the bot to the user.
115
116
  """
116
117
  client = AsyncClient()
117
118
 
@@ -129,6 +130,10 @@ async def create_bridge_client(
129
130
  structlogger.debug("model_runner.bot_message", deployment_id=deployment_id)
130
131
  await sio.emit("bot_message", data, room=sid)
131
132
 
133
+ @client.event # type: ignore[misc]
134
+ async def tracker(data: Dict[str, Any]) -> None:
135
+ await sio.emit("tracker", json.loads(data), room=sid)
136
+
132
137
  @client.event # type: ignore[misc]
133
138
  async def disconnect() -> None:
134
139
  structlogger.debug(
@@ -6,6 +6,7 @@ from typing import Any, Dict, Optional
6
6
  import jwt
7
7
  import requests
8
8
  import structlog
9
+
9
10
  from rasa.shared.exceptions import RasaException
10
11
 
11
12
  structlogger = structlog.get_logger()
@@ -1,23 +1,25 @@
1
1
  import os
2
- from typing import Any, Dict, Optional
3
2
  import shutil
4
- import structlog
5
3
  import subprocess
4
+ from enum import Enum
5
+ from typing import Any, Dict, Optional
6
+
7
+ import structlog
8
+ from pydantic import BaseModel, ConfigDict
9
+
6
10
  from rasa.constants import MODEL_ARCHIVE_EXTENSION
11
+ from rasa.model_manager import config
7
12
  from rasa.model_manager.utils import (
13
+ ensure_base_directory_exists,
14
+ logs_path,
8
15
  models_base_path,
9
16
  subpath,
10
17
  write_encoded_data_to_file,
11
18
  )
12
- from pydantic import BaseModel, ConfigDict
13
- from enum import Enum
14
-
15
- from rasa.model_manager import config
16
19
  from rasa.model_manager.warm_rasa_process import (
17
20
  start_rasa_process,
18
21
  )
19
22
  from rasa.model_training import generate_random_model_name
20
- from rasa.model_manager.utils import ensure_base_directory_exists, logs_path
21
23
 
22
24
  structlogger = structlog.get_logger()
23
25
 
@@ -1,5 +1,5 @@
1
- import os
2
1
  import base64
2
+ import os
3
3
  from typing import Optional
4
4
 
5
5
  import structlog
@@ -1,12 +1,16 @@
1
+ import os
1
2
  import shlex
2
3
  import subprocess
3
- from rasa.__main__ import main
4
- import os
4
+ import uuid
5
+ from dataclasses import dataclass
5
6
  from typing import List
7
+
6
8
  import structlog
7
- from dataclasses import dataclass
8
- import uuid
9
9
 
10
+ from rasa.__main__ import main
11
+ from rasa.dialogue_understanding.constants import (
12
+ RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME,
13
+ )
10
14
  from rasa.model_manager import config
11
15
  from rasa.model_manager.utils import ensure_base_directory_exists, logs_path
12
16
 
@@ -43,6 +47,7 @@ def _create_warm_rasa_process() -> WarmRasaProcess:
43
47
 
44
48
  envs = os.environ.copy()
45
49
  envs["RASA_TELEMETRY_ENABLED"] = "false"
50
+ envs[RASA_RECORD_COMMANDS_AND_PROMPTS_ENV_VAR_NAME] = "true"
46
51
 
47
52
  log_id = uuid.uuid4().hex
48
53
  log_path = logs_path(log_id)
@@ -146,14 +151,15 @@ def warmup() -> None:
146
151
  directly start.
147
152
  """
148
153
  try:
149
- import presidio_analyzer # noqa: F401
150
- import litellm # noqa: F401
151
154
  import langchain # noqa: F401
152
- import tensorflow # noqa: F401
155
+ import litellm # noqa: F401
153
156
  import matplotlib # noqa: F401
154
- import pandas # noqa: F401
155
157
  import numpy # noqa: F401
158
+ import pandas # noqa: F401
159
+ import presidio_analyzer # noqa: F401
156
160
  import spacy # noqa: F401
161
+ import tensorflow # noqa: F401
162
+
157
163
  import rasa.validator # noqa: F401
158
164
  except ImportError:
159
165
  pass
rasa/model_service.py CHANGED
@@ -1,18 +1,15 @@
1
1
  import logging
2
+ from urllib.parse import urlparse
2
3
 
3
- from sanic import Sanic
4
4
  import structlog
5
+ from sanic import Sanic
5
6
 
6
7
  from rasa.cli.scaffold import print_error_and_exit
7
8
  from rasa.core.persistor import RemoteStorageType, get_persistor
8
9
  from rasa.core.utils import list_routes
9
- from rasa.model_manager import model_api
10
- from rasa.model_manager import config
10
+ from rasa.model_manager import config, model_api
11
11
  from rasa.model_manager.config import SERVER_BASE_URL, SERVER_PORT
12
12
  from rasa.utils.common import configure_logging_and_warnings
13
- import rasa.utils.licensing
14
- from urllib.parse import urlparse
15
-
16
13
  from rasa.utils.log_utils import configure_structlog
17
14
  from rasa.utils.sanic_error_handler import register_custom_sanic_error_handler
18
15
 
@@ -64,6 +61,8 @@ def main() -> None:
64
61
  The API server can receive requests to train models, run bots, and manage
65
62
  the lifecycle of models and bots.
66
63
  """
64
+ import rasa.utils.licensing
65
+
67
66
  log_level = logging.DEBUG
68
67
  configure_logging_and_warnings(
69
68
  log_level=log_level,
rasa/model_testing.py CHANGED
@@ -1,32 +1,31 @@
1
1
  import copy
2
2
  import logging
3
3
  import os
4
+ from pathlib import Path
4
5
  from typing import (
5
- Text,
6
- Dict,
7
- Optional,
8
- List,
9
6
  Any,
7
+ Dict,
10
8
  Iterable,
9
+ List,
10
+ Optional,
11
+ Text,
11
12
  Tuple,
12
13
  Union,
13
14
  )
14
- from pathlib import Path
15
15
 
16
- from rasa.core.agent import Agent
17
- from rasa.engine.storage.local_model_storage import LocalModelStorage
16
+ import rasa.model
17
+ import rasa.shared.nlu.training_data.loading
18
18
  import rasa.shared.utils.cli
19
19
  import rasa.shared.utils.common
20
20
  import rasa.shared.utils.io
21
21
  import rasa.utils.common
22
- from rasa.constants import RESULTS_FILE, NUMBER_OF_TRAINING_STORIES_FILE
22
+ from rasa.constants import NUMBER_OF_TRAINING_STORIES_FILE, RESULTS_FILE
23
+ from rasa.core.agent import Agent
24
+ from rasa.engine.storage.local_model_storage import LocalModelStorage
23
25
  from rasa.exceptions import ModelNotFound
24
26
  from rasa.shared.constants import DEFAULT_RESULTS_PATH
25
- import rasa.shared.nlu.training_data.loading
26
27
  from rasa.shared.data import TrainingType
27
28
  from rasa.shared.nlu.training_data.training_data import TrainingData
28
- import rasa.model
29
-
30
29
 
31
30
  logger = logging.getLogger(__name__)
32
31
 
@@ -245,10 +244,9 @@ async def compare_nlu_models(
245
244
  exclusion_percentages: List[int],
246
245
  ) -> None:
247
246
  """Trains multiple models, compares them and saves the results."""
248
- from rasa.nlu.test import drop_intents_below_freq
247
+ from rasa.nlu.test import compare_nlu, drop_intents_below_freq
249
248
  from rasa.nlu.utils import write_json_to_file
250
249
  from rasa.utils.io import create_path
251
- from rasa.nlu.test import compare_nlu
252
250
 
253
251
  test_data = drop_intents_below_freq(test_data, cutoff=5)
254
252
 
@@ -313,10 +311,10 @@ async def perform_nlu_cross_validation(
313
311
  cross-validation, like number of `disable_plotting`.
314
312
  """
315
313
  from rasa.nlu.test import (
316
- drop_intents_below_freq,
317
314
  cross_validate,
318
- log_results,
315
+ drop_intents_below_freq,
319
316
  log_entity_results,
317
+ log_results,
320
318
  )
321
319
 
322
320
  additional_arguments = additional_arguments or {}