rasa-pro 3.12.21__py3-none-any.whl → 3.13.0__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 (354) hide show
  1. rasa/__main__.py +3 -4
  2. rasa/api.py +1 -1
  3. rasa/cli/dialogue_understanding_test.py +1 -1
  4. rasa/cli/e2e_test.py +1 -8
  5. rasa/cli/evaluate.py +2 -2
  6. rasa/cli/export.py +5 -3
  7. rasa/cli/inspect.py +7 -0
  8. rasa/cli/llm_fine_tuning.py +1 -1
  9. rasa/cli/project_templates/default/config.yml +5 -32
  10. rasa/cli/project_templates/{calm → default}/e2e_tests/cancelations/user_cancels_during_a_correction.yml +1 -1
  11. rasa/cli/project_templates/{calm → default}/e2e_tests/cancelations/user_changes_mind_on_a_whim.yml +1 -1
  12. rasa/cli/project_templates/{calm → default}/e2e_tests/corrections/user_corrects_contact_handle.yml +1 -1
  13. rasa/cli/project_templates/{calm → default}/e2e_tests/corrections/user_corrects_contact_name.yml +1 -1
  14. rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_adds_contact_to_their_list.yml +1 -1
  15. rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_lists_contacts.yml +1 -1
  16. rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_removes_contact.yml +1 -1
  17. rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_removes_contact_from_list.yml +1 -1
  18. rasa/cli/project_templates/default/endpoints.yml +18 -2
  19. rasa/cli/project_templates/defaults.py +133 -0
  20. rasa/cli/project_templates/tutorial/config.yml +1 -1
  21. rasa/cli/project_templates/tutorial/endpoints.yml +1 -1
  22. rasa/cli/run.py +1 -1
  23. rasa/cli/scaffold.py +2 -3
  24. rasa/cli/shell.py +6 -1
  25. rasa/cli/studio/download.py +0 -22
  26. rasa/cli/studio/link.py +36 -0
  27. rasa/cli/studio/pull.py +79 -0
  28. rasa/cli/studio/push.py +78 -0
  29. rasa/cli/studio/studio.py +12 -0
  30. rasa/cli/studio/train.py +1 -5
  31. rasa/cli/studio/upload.py +6 -4
  32. rasa/cli/train.py +5 -1
  33. rasa/cli/utils.py +1 -1
  34. rasa/cli/x.py +1 -1
  35. rasa/constants.py +2 -0
  36. rasa/core/__init__.py +0 -16
  37. rasa/core/actions/action.py +43 -29
  38. rasa/core/actions/action_repeat_bot_messages.py +18 -22
  39. rasa/core/actions/action_run_slot_rejections.py +1 -2
  40. rasa/core/agent.py +24 -3
  41. rasa/core/available_endpoints.py +146 -0
  42. rasa/core/brokers/kafka.py +4 -0
  43. rasa/core/brokers/pika.py +5 -2
  44. rasa/core/brokers/sql.py +1 -1
  45. rasa/core/channels/__init__.py +3 -0
  46. rasa/core/channels/botframework.py +2 -2
  47. rasa/core/channels/channel.py +2 -2
  48. rasa/core/channels/development_inspector.py +1 -1
  49. rasa/core/channels/facebook.py +1 -4
  50. rasa/core/channels/hangouts.py +8 -5
  51. rasa/core/channels/inspector/.eslintrc.cjs +12 -6
  52. rasa/core/channels/inspector/.prettierrc +5 -0
  53. rasa/core/channels/inspector/README.md +11 -5
  54. rasa/core/channels/inspector/dist/assets/{arc-9f75cc3b.js → arc-371401b1.js} +1 -1
  55. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-7f34db23.js → blockDiagram-38ab4fdb-3f126156.js} +1 -1
  56. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-948bab2c.js → c4Diagram-3d4e48cf-12f22eb7.js} +1 -1
  57. rasa/core/channels/inspector/dist/assets/channel-f1efda17.js +1 -0
  58. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-53b0dd0e.js → classDiagram-70f12bd4-03b1d386.js} +1 -1
  59. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-fdf789e7.js → classDiagram-v2-f2320105-84f69d63.js} +1 -1
  60. rasa/core/channels/inspector/dist/assets/clone-fdf164e2.js +1 -0
  61. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-87c4ece5.js → createText-2e5e7dd3-ca47fd38.js} +1 -1
  62. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-5a8b0749.js → edges-e0da2a9e-f837ca8a.js} +1 -1
  63. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-66da90e2.js → erDiagram-9861fffd-8717ac54.js} +1 -1
  64. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-10044f05.js → flowDb-956e92f1-94f38b83.js} +1 -1
  65. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-f338f66a.js → flowDiagram-66a62f08-b616f9fb.js} +1 -1
  66. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-7d7a1629.js +1 -0
  67. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-b13140aa.js → flowchart-elk-definition-4a651766-f5d24bb8.js} +1 -1
  68. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-f2b4a55a.js → ganttDiagram-c361ad54-b43ba8d9.js} +1 -1
  69. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-dedc298d.js → gitGraphDiagram-72cf32ee-c3aafaa5.js} +1 -1
  70. rasa/core/channels/inspector/dist/assets/{graph-4ede11ff.js → graph-0d0a2c10.js} +1 -1
  71. rasa/core/channels/inspector/dist/assets/{index-3862675e-65549d37.js → index-3862675e-58ea0305.js} +1 -1
  72. rasa/core/channels/inspector/dist/assets/{index-3a23e736.js → index-cce6f8a1.js} +123 -123
  73. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-65439671.js → infoDiagram-f8f76790-b8f60461.js} +1 -1
  74. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-56d03d98.js → journeyDiagram-49397b02-95be5545.js} +1 -1
  75. rasa/core/channels/inspector/dist/assets/{layout-dd48f7f4.js → layout-da885b9b.js} +1 -1
  76. rasa/core/channels/inspector/dist/assets/{line-1569ad2c.js → line-f1c817d3.js} +1 -1
  77. rasa/core/channels/inspector/dist/assets/{linear-48bf4935.js → linear-d42801e6.js} +1 -1
  78. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-688504c1.js → mindmap-definition-fc14e90a-a38923a6.js} +1 -1
  79. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-78b6d7e6.js → pieDiagram-8a3498a8-ca6e71e9.js} +1 -1
  80. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-048b84b3.js → quadrantDiagram-120e2f19-b290dae9.js} +1 -1
  81. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-dd67f107.js → requirementDiagram-deff3bca-03f02ceb.js} +1 -1
  82. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-8128436e.js → sankeyDiagram-04a897e0-c49eee40.js} +1 -1
  83. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-1a0d1461.js → sequenceDiagram-704730f1-b2cd6a3d.js} +1 -1
  84. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-46d388ed.js → stateDiagram-587899a1-e53a2028.js} +1 -1
  85. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-ea42951a.js → stateDiagram-v2-d93cdb3a-e1982a03.js} +1 -1
  86. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-7427ed0c.js → styles-6aaf32cf-d0226ca5.js} +1 -1
  87. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-ff5e5a16.js → styles-9a916d00-0e21dc00.js} +1 -1
  88. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-7b3680cf.js → styles-c10674c1-9588494e.js} +1 -1
  89. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-f860f2ad.js → svgDrawCommon-08f97a94-be478d4f.js} +1 -1
  90. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-2eebf0c8.js → timeline-definition-85554ec2-74631749.js} +1 -1
  91. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-5d7f4e96.js → xychartDiagram-e933f94c-a043552f.js} +1 -1
  92. rasa/core/channels/inspector/dist/index.html +1 -1
  93. rasa/core/channels/inspector/package.json +3 -1
  94. rasa/core/channels/inspector/src/App.tsx +91 -90
  95. rasa/core/channels/inspector/src/components/Chat.tsx +45 -41
  96. rasa/core/channels/inspector/src/components/DiagramFlow.tsx +40 -40
  97. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +57 -57
  98. rasa/core/channels/inspector/src/components/DialogueStack.tsx +36 -27
  99. rasa/core/channels/inspector/src/components/ExpandIcon.tsx +4 -4
  100. rasa/core/channels/inspector/src/components/FullscreenButton.tsx +7 -7
  101. rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +28 -12
  102. rasa/core/channels/inspector/src/components/NoActiveFlow.tsx +9 -9
  103. rasa/core/channels/inspector/src/components/RasaLogo.tsx +5 -5
  104. rasa/core/channels/inspector/src/components/RecruitmentPanel.tsx +55 -60
  105. rasa/core/channels/inspector/src/components/SaraDiagrams.tsx +5 -5
  106. rasa/core/channels/inspector/src/components/Slots.tsx +22 -22
  107. rasa/core/channels/inspector/src/components/Welcome.tsx +28 -31
  108. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +245 -0
  109. rasa/core/channels/inspector/src/helpers/audio/microphone-processor.js +12 -0
  110. rasa/core/channels/inspector/src/helpers/audio/playback-processor.js +36 -0
  111. rasa/core/channels/inspector/src/helpers/conversation.ts +7 -7
  112. rasa/core/channels/inspector/src/helpers/formatters.test.ts +181 -181
  113. rasa/core/channels/inspector/src/helpers/formatters.ts +111 -111
  114. rasa/core/channels/inspector/src/helpers/utils.ts +78 -61
  115. rasa/core/channels/inspector/src/main.tsx +8 -8
  116. rasa/core/channels/inspector/src/theme/Button/Button.ts +8 -8
  117. rasa/core/channels/inspector/src/theme/Heading/Heading.ts +7 -7
  118. rasa/core/channels/inspector/src/theme/Input/Input.ts +9 -9
  119. rasa/core/channels/inspector/src/theme/Link/Link.ts +6 -6
  120. rasa/core/channels/inspector/src/theme/Modal/Modal.ts +13 -13
  121. rasa/core/channels/inspector/src/theme/Table/Table.tsx +10 -10
  122. rasa/core/channels/inspector/src/theme/Tooltip/Tooltip.ts +5 -5
  123. rasa/core/channels/inspector/src/theme/base/breakpoints.ts +7 -7
  124. rasa/core/channels/inspector/src/theme/base/colors.ts +64 -64
  125. rasa/core/channels/inspector/src/theme/base/fonts/fontFaces.css +21 -18
  126. rasa/core/channels/inspector/src/theme/base/radii.ts +8 -8
  127. rasa/core/channels/inspector/src/theme/base/shadows.ts +5 -5
  128. rasa/core/channels/inspector/src/theme/base/sizes.ts +5 -5
  129. rasa/core/channels/inspector/src/theme/base/space.ts +12 -12
  130. rasa/core/channels/inspector/src/theme/base/styles.ts +5 -5
  131. rasa/core/channels/inspector/src/theme/base/typography.ts +12 -12
  132. rasa/core/channels/inspector/src/theme/base/zIndices.ts +3 -3
  133. rasa/core/channels/inspector/src/theme/index.ts +38 -38
  134. rasa/core/channels/inspector/src/types.ts +56 -50
  135. rasa/core/channels/inspector/yarn.lock +5 -0
  136. rasa/core/channels/mattermost.py +1 -1
  137. rasa/core/channels/rasa_chat.py +2 -4
  138. rasa/core/channels/rest.py +5 -4
  139. rasa/core/channels/socketio.py +56 -41
  140. rasa/core/channels/studio_chat.py +329 -68
  141. rasa/core/channels/vier_cvg.py +1 -2
  142. rasa/core/channels/voice_ready/audiocodes.py +4 -11
  143. rasa/core/channels/voice_ready/jambonz.py +5 -6
  144. rasa/core/channels/voice_ready/twilio_voice.py +13 -12
  145. rasa/core/channels/voice_ready/utils.py +22 -0
  146. rasa/core/channels/voice_stream/audiocodes.py +13 -16
  147. rasa/core/channels/voice_stream/browser_audio.py +1 -1
  148. rasa/core/channels/voice_stream/genesys.py +37 -18
  149. rasa/core/channels/voice_stream/jambonz.py +232 -0
  150. rasa/core/channels/voice_stream/tts/__init__.py +8 -0
  151. rasa/core/channels/voice_stream/twilio_media_streams.py +15 -12
  152. rasa/core/channels/voice_stream/voice_channel.py +71 -27
  153. rasa/core/concurrent_lock_store.py +24 -10
  154. rasa/core/evaluation/marker_tracker_loader.py +1 -1
  155. rasa/core/exporter.py +37 -1
  156. rasa/core/http_interpreter.py +3 -7
  157. rasa/core/information_retrieval/faiss.py +18 -11
  158. rasa/core/information_retrieval/ingestion/faq_parser.py +158 -0
  159. rasa/core/jobs.py +2 -1
  160. rasa/core/lock_store.py +151 -60
  161. rasa/core/nlg/contextual_response_rephraser.py +17 -7
  162. rasa/core/nlg/generator.py +5 -22
  163. rasa/core/nlg/interpolator.py +2 -3
  164. rasa/core/nlg/response.py +6 -43
  165. rasa/core/nlg/summarize.py +1 -1
  166. rasa/core/nlg/translate.py +0 -8
  167. rasa/core/policies/enterprise_search_policy.py +305 -189
  168. rasa/core/policies/enterprise_search_policy_config.py +241 -0
  169. rasa/core/policies/enterprise_search_prompt_with_relevancy_check_and_citation_template.jinja2 +67 -0
  170. rasa/core/policies/flow_policy.py +1 -1
  171. rasa/core/policies/flows/flow_executor.py +102 -17
  172. rasa/core/policies/intentless_policy.py +56 -17
  173. rasa/core/processor.py +70 -49
  174. rasa/core/run.py +33 -11
  175. rasa/core/tracker_stores/__init__.py +0 -0
  176. rasa/core/{auth_retry_tracker_store.py → tracker_stores/auth_retry_tracker_store.py} +66 -1
  177. rasa/core/tracker_stores/dynamo_tracker_store.py +256 -0
  178. rasa/core/tracker_stores/mongo_tracker_store.py +223 -0
  179. rasa/core/tracker_stores/redis_tracker_store.py +252 -0
  180. rasa/core/tracker_stores/sql_tracker_store.py +582 -0
  181. rasa/core/tracker_stores/tracker_store.py +839 -0
  182. rasa/core/training/interactive.py +1 -1
  183. rasa/core/utils.py +24 -95
  184. rasa/dialogue_understanding/coexistence/intent_based_router.py +2 -1
  185. rasa/dialogue_understanding/coexistence/llm_based_router.py +13 -11
  186. rasa/dialogue_understanding/commands/can_not_handle_command.py +2 -0
  187. rasa/dialogue_understanding/commands/cancel_flow_command.py +3 -1
  188. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +2 -0
  189. rasa/dialogue_understanding/commands/clarify_command.py +6 -2
  190. rasa/dialogue_understanding/commands/command_syntax_manager.py +1 -0
  191. rasa/dialogue_understanding/commands/correct_slots_command.py +5 -6
  192. rasa/dialogue_understanding/commands/error_command.py +1 -1
  193. rasa/dialogue_understanding/commands/human_handoff_command.py +3 -3
  194. rasa/dialogue_understanding/commands/knowledge_answer_command.py +2 -0
  195. rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +2 -0
  196. rasa/dialogue_understanding/commands/set_slot_command.py +8 -4
  197. rasa/dialogue_understanding/commands/skip_question_command.py +3 -3
  198. rasa/dialogue_understanding/commands/start_flow_command.py +7 -3
  199. rasa/dialogue_understanding/generator/__init__.py +7 -1
  200. rasa/dialogue_understanding/generator/command_generator.py +4 -2
  201. rasa/dialogue_understanding/generator/command_parser.py +2 -2
  202. rasa/dialogue_understanding/generator/command_parser_validator.py +63 -0
  203. rasa/dialogue_understanding/generator/llm_based_command_generator.py +1 -2
  204. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +3 -2
  205. rasa/dialogue_understanding/generator/nlu_command_adapter.py +2 -2
  206. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_template.jinja2 +0 -2
  207. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +1 -0
  208. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +1 -0
  209. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +79 -0
  210. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +79 -0
  211. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +26 -461
  212. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +147 -0
  213. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +461 -0
  214. rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +20 -64
  215. rasa/dialogue_understanding/patterns/cancel.py +1 -2
  216. rasa/dialogue_understanding/patterns/clarify.py +1 -1
  217. rasa/dialogue_understanding/patterns/correction.py +2 -2
  218. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +42 -27
  219. rasa/dialogue_understanding/patterns/domain_for_patterns.py +190 -0
  220. rasa/dialogue_understanding/processor/command_processor.py +6 -7
  221. rasa/dialogue_understanding_test/command_metric_calculation.py +7 -40
  222. rasa/dialogue_understanding_test/command_metrics.py +38 -0
  223. rasa/dialogue_understanding_test/du_test_case.py +58 -25
  224. rasa/dialogue_understanding_test/du_test_result.py +228 -132
  225. rasa/dialogue_understanding_test/du_test_runner.py +11 -2
  226. rasa/dialogue_understanding_test/du_test_schema.yml +3 -3
  227. rasa/dialogue_understanding_test/io.py +35 -8
  228. rasa/e2e_test/constants.py +1 -1
  229. rasa/e2e_test/e2e_test_runner.py +1 -1
  230. rasa/e2e_test/e2e_test_schema.yml +3 -3
  231. rasa/engine/constants.py +1 -1
  232. rasa/engine/graph.py +2 -2
  233. rasa/engine/recipes/default_recipe.py +1 -1
  234. rasa/engine/validation.py +3 -2
  235. rasa/hooks.py +2 -30
  236. rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +2 -6
  237. rasa/model_manager/model_api.py +89 -1
  238. rasa/model_manager/runner_service.py +20 -4
  239. rasa/model_manager/socket_bridge.py +0 -7
  240. rasa/model_manager/trainer_service.py +10 -4
  241. rasa/plugin.py +2 -15
  242. rasa/privacy/__init__.py +0 -0
  243. rasa/privacy/constants.py +83 -0
  244. rasa/privacy/event_broker_utils.py +77 -0
  245. rasa/privacy/privacy_config.py +281 -0
  246. rasa/privacy/privacy_config_schema.json +86 -0
  247. rasa/privacy/privacy_filter.py +393 -0
  248. rasa/privacy/privacy_manager.py +594 -0
  249. rasa/server.py +23 -2
  250. rasa/shared/constants.py +17 -0
  251. rasa/shared/core/command_payload_reader.py +1 -5
  252. rasa/shared/core/constants.py +4 -3
  253. rasa/shared/core/domain.py +172 -11
  254. rasa/shared/core/events.py +100 -6
  255. rasa/shared/core/flows/flow.py +30 -5
  256. rasa/shared/core/flows/flow_step.py +19 -3
  257. rasa/shared/core/flows/flow_step_links.py +15 -0
  258. rasa/shared/core/flows/flow_step_sequence.py +6 -0
  259. rasa/shared/core/flows/flows_yaml_schema.json +3 -0
  260. rasa/shared/core/flows/nlu_trigger.py +13 -0
  261. rasa/shared/core/flows/steps/action.py +7 -4
  262. rasa/shared/core/flows/steps/call.py +11 -4
  263. rasa/shared/core/flows/steps/collect.py +71 -6
  264. rasa/shared/core/flows/steps/internal.py +6 -1
  265. rasa/shared/core/flows/steps/link.py +7 -4
  266. rasa/shared/core/flows/steps/no_operation.py +7 -4
  267. rasa/shared/core/flows/steps/set_slots.py +8 -4
  268. rasa/shared/core/flows/validation.py +25 -5
  269. rasa/shared/core/flows/yaml_flows_io.py +106 -5
  270. rasa/shared/core/slots.py +29 -1
  271. rasa/shared/core/trackers.py +21 -10
  272. rasa/shared/core/training_data/story_reader/yaml_story_reader.py +1 -4
  273. rasa/shared/importers/importer.py +8 -0
  274. rasa/shared/providers/_configs/azure_openai_client_config.py +2 -2
  275. rasa/shared/providers/_configs/default_litellm_client_config.py +1 -1
  276. rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +1 -1
  277. rasa/shared/providers/_configs/openai_client_config.py +1 -1
  278. rasa/shared/providers/_configs/rasa_llm_client_config.py +1 -1
  279. rasa/shared/providers/_configs/self_hosted_llm_client_config.py +1 -1
  280. rasa/shared/providers/_configs/utils.py +0 -99
  281. rasa/shared/providers/llm/default_litellm_llm_client.py +2 -2
  282. rasa/shared/utils/common.py +43 -1
  283. rasa/shared/utils/configs.py +110 -0
  284. rasa/shared/utils/constants.py +0 -3
  285. rasa/shared/utils/llm.py +245 -8
  286. rasa/shared/utils/pykwalify_extensions.py +0 -9
  287. rasa/shared/utils/yaml.py +32 -0
  288. rasa/studio/constants.py +1 -0
  289. rasa/studio/data_handler.py +33 -12
  290. rasa/studio/download.py +117 -435
  291. rasa/studio/link.py +211 -0
  292. rasa/studio/prompts.py +221 -0
  293. rasa/studio/pull/__init__.py +0 -0
  294. rasa/studio/pull/data.py +222 -0
  295. rasa/studio/pull/domains.py +60 -0
  296. rasa/studio/pull/pull.py +239 -0
  297. rasa/studio/push.py +138 -0
  298. rasa/studio/results_logger.py +6 -1
  299. rasa/studio/train.py +1 -1
  300. rasa/studio/upload.py +243 -72
  301. rasa/studio/utils.py +33 -0
  302. rasa/telemetry.py +83 -26
  303. rasa/tracing/config.py +4 -5
  304. rasa/tracing/constants.py +19 -1
  305. rasa/tracing/instrumentation/attribute_extractors.py +68 -16
  306. rasa/tracing/instrumentation/instrumentation.py +54 -3
  307. rasa/tracing/instrumentation/metrics.py +98 -15
  308. rasa/tracing/metric_instrument_provider.py +75 -3
  309. rasa/utils/common.py +43 -22
  310. rasa/utils/endpoints.py +22 -1
  311. rasa/utils/licensing.py +2 -3
  312. rasa/utils/log_utils.py +1 -45
  313. rasa/validator.py +2 -8
  314. rasa/version.py +1 -1
  315. {rasa_pro-3.12.21.dist-info → rasa_pro-3.13.0.dist-info}/METADATA +13 -14
  316. {rasa_pro-3.12.21.dist-info → rasa_pro-3.13.0.dist-info}/RECORD +333 -309
  317. rasa/anonymization/__init__.py +0 -2
  318. rasa/anonymization/anonymisation_rule_yaml_reader.py +0 -91
  319. rasa/anonymization/anonymization_pipeline.py +0 -286
  320. rasa/anonymization/anonymization_rule_executor.py +0 -266
  321. rasa/anonymization/anonymization_rule_orchestrator.py +0 -119
  322. rasa/anonymization/schemas/config.yml +0 -47
  323. rasa/anonymization/utils.py +0 -118
  324. rasa/cli/project_templates/calm/config.yml +0 -10
  325. rasa/cli/project_templates/calm/credentials.yml +0 -33
  326. rasa/cli/project_templates/calm/endpoints.yml +0 -58
  327. rasa/cli/project_templates/default/actions/actions.py +0 -27
  328. rasa/cli/project_templates/default/data/nlu.yml +0 -91
  329. rasa/cli/project_templates/default/data/rules.yml +0 -13
  330. rasa/cli/project_templates/default/data/stories.yml +0 -30
  331. rasa/cli/project_templates/default/domain.yml +0 -34
  332. rasa/cli/project_templates/default/tests/test_stories.yml +0 -91
  333. rasa/core/channels/inspector/dist/assets/channel-dfa68278.js +0 -1
  334. rasa/core/channels/inspector/dist/assets/clone-edb7f119.js +0 -1
  335. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-65e7c670.js +0 -1
  336. rasa/core/channels/inspector/src/helpers/audiostream.ts +0 -191
  337. rasa/core/tracker_store.py +0 -1792
  338. /rasa/cli/project_templates/{calm → default}/actions/action_template.py +0 -0
  339. /rasa/cli/project_templates/{calm → default}/actions/add_contact.py +0 -0
  340. /rasa/cli/project_templates/{calm → default}/actions/db.py +0 -0
  341. /rasa/cli/project_templates/{calm → default}/actions/list_contacts.py +0 -0
  342. /rasa/cli/project_templates/{calm → default}/actions/remove_contact.py +0 -0
  343. /rasa/cli/project_templates/{calm → default}/data/flows/add_contact.yml +0 -0
  344. /rasa/cli/project_templates/{calm → default}/data/flows/list_contacts.yml +0 -0
  345. /rasa/cli/project_templates/{calm → default}/data/flows/remove_contact.yml +0 -0
  346. /rasa/cli/project_templates/{calm → default}/db/contacts.json +0 -0
  347. /rasa/cli/project_templates/{calm → default}/domain/add_contact.yml +0 -0
  348. /rasa/cli/project_templates/{calm → default}/domain/list_contacts.yml +0 -0
  349. /rasa/cli/project_templates/{calm → default}/domain/remove_contact.yml +0 -0
  350. /rasa/cli/project_templates/{calm → default}/domain/shared.yml +0 -0
  351. /rasa/{cli/project_templates/calm/actions → core/information_retrieval/ingestion}/__init__.py +0 -0
  352. {rasa_pro-3.12.21.dist-info → rasa_pro-3.13.0.dist-info}/NOTICE +0 -0
  353. {rasa_pro-3.12.21.dist-info → rasa_pro-3.13.0.dist-info}/WHEEL +0 -0
  354. {rasa_pro-3.12.21.dist-info → rasa_pro-3.13.0.dist-info}/entry_points.txt +0 -0
@@ -46,13 +46,13 @@ from rasa.shared.providers._configs.oauth_config import (
46
46
  OAUTH_TYPE_FIELD,
47
47
  OAuth,
48
48
  )
49
- from rasa.shared.providers._configs.utils import (
49
+ from rasa.shared.utils.common import class_from_module_path
50
+ from rasa.shared.utils.configs import (
50
51
  raise_deprecation_warnings,
51
52
  resolve_aliases,
52
53
  validate_forbidden_keys,
53
54
  validate_required_keys,
54
55
  )
55
- from rasa.shared.utils.common import class_from_module_path
56
56
 
57
57
  structlogger = structlog.get_logger()
58
58
 
@@ -15,7 +15,7 @@ from rasa.shared.constants import (
15
15
  STREAM_CONFIG_KEY,
16
16
  TIMEOUT_CONFIG_KEY,
17
17
  )
18
- from rasa.shared.providers._configs.utils import (
18
+ from rasa.shared.utils.configs import (
19
19
  raise_deprecation_warnings,
20
20
  resolve_aliases,
21
21
  validate_forbidden_keys,
@@ -21,7 +21,7 @@ from rasa.shared.constants import (
21
21
  REQUEST_TIMEOUT_CONFIG_KEY,
22
22
  TIMEOUT_CONFIG_KEY,
23
23
  )
24
- from rasa.shared.providers._configs.utils import (
24
+ from rasa.shared.utils.configs import (
25
25
  raise_deprecation_warnings,
26
26
  resolve_aliases,
27
27
  validate_required_keys,
@@ -26,7 +26,7 @@ from rasa.shared.constants import (
26
26
  STREAM_CONFIG_KEY,
27
27
  TIMEOUT_CONFIG_KEY,
28
28
  )
29
- from rasa.shared.providers._configs.utils import (
29
+ from rasa.shared.utils.configs import (
30
30
  raise_deprecation_warnings,
31
31
  resolve_aliases,
32
32
  validate_forbidden_keys,
@@ -11,7 +11,7 @@ from rasa.shared.constants import (
11
11
  PROVIDER_CONFIG_KEY,
12
12
  RASA_PROVIDER,
13
13
  )
14
- from rasa.shared.providers._configs.utils import (
14
+ from rasa.shared.utils.configs import (
15
15
  validate_required_keys,
16
16
  )
17
17
 
@@ -25,7 +25,7 @@ from rasa.shared.constants import (
25
25
  TIMEOUT_CONFIG_KEY,
26
26
  USE_CHAT_COMPLETIONS_ENDPOINT_CONFIG_KEY,
27
27
  )
28
- from rasa.shared.providers._configs.utils import (
28
+ from rasa.shared.utils.configs import (
29
29
  raise_deprecation_warnings,
30
30
  resolve_aliases,
31
31
  validate_forbidden_keys,
@@ -1,107 +1,8 @@
1
1
  import structlog
2
2
 
3
- from rasa.shared.utils.io import raise_deprecation_warning
4
-
5
3
  structlogger = structlog.get_logger()
6
4
 
7
5
 
8
- def resolve_aliases(config: dict, deprecated_alias_mapping: dict) -> dict:
9
- """
10
- Resolve aliases in the configuration to standard keys.
11
-
12
- Args:
13
- config: Dictionary containing the configuration.
14
- deprecated_alias_mapping: Dictionary mapping aliases to
15
- their standard keys.
16
-
17
- Returns:
18
- New dictionary containing the processed configuration.
19
- """
20
- config = config.copy()
21
-
22
- for alias, standard_key in deprecated_alias_mapping.items():
23
- # We check for the alias instead of the standard key because our goal is to
24
- # update the standard key when the alias is found. Since the standard key is
25
- # always included in the default component configurations, we overwrite it
26
- # with the alias value if the alias exists.
27
- if alias in config:
28
- config[standard_key] = config.pop(alias)
29
-
30
- return config
31
-
32
-
33
- def raise_deprecation_warnings(config: dict, deprecated_alias_mapping: dict) -> None:
34
- """
35
- Raises warnings for deprecated keys in the configuration.
36
-
37
- Args:
38
- config: Dictionary containing the configuration.
39
- deprecated_alias_mapping: Dictionary mapping deprecated keys to
40
- their standard keys.
41
-
42
- Raises:
43
- DeprecationWarning: If any deprecated key is found in the config.
44
- """
45
- for alias, standard_key in deprecated_alias_mapping.items():
46
- if alias in config:
47
- raise_deprecation_warning(
48
- message=(
49
- f"'{alias}' is deprecated and will be removed in "
50
- f"4.0.0. Use '{standard_key}' instead."
51
- )
52
- )
53
-
54
-
55
- def validate_required_keys(config: dict, required_keys: list) -> None:
56
- """
57
- Validates that the passed config contains all the required keys.
58
-
59
- Args:
60
- config: Dictionary containing the configuration.
61
- required_keys: List of keys that must be present in the config.
62
-
63
- Raises:
64
- ValueError: If any required key is missing.
65
- """
66
- missing_keys = [key for key in required_keys if key not in config]
67
- if missing_keys:
68
- message = f"Missing required keys '{missing_keys}' for configuration."
69
- structlogger.error(
70
- "validate_required_keys",
71
- message=message,
72
- missing_keys=missing_keys,
73
- config=config,
74
- )
75
- raise ValueError(message)
76
-
77
-
78
- def validate_forbidden_keys(config: dict, forbidden_keys: list) -> None:
79
- """
80
- Validates that the passed config doesn't contain any forbidden keys.
81
-
82
- Args:
83
- config: Dictionary containing the configuration.
84
- forbidden_keys: List of keys that are forbidden in the config.
85
-
86
- Raises:
87
- ValueError: If any forbidden key is present.
88
- """
89
- forbidden_keys_in_config = set(config.keys()).intersection(set(forbidden_keys))
90
-
91
- if forbidden_keys_in_config:
92
- message = (
93
- f"Forbidden keys '{forbidden_keys_in_config}' present "
94
- f"in the configuration."
95
- )
96
- structlogger.error(
97
- "validate_forbidden_keys",
98
- message=message,
99
- forbidden_keys=forbidden_keys_in_config,
100
- config=config,
101
- )
102
- raise ValueError(message)
103
-
104
-
105
6
  def get_provider_prefixed_model_name(provider: str, model: str) -> str:
106
7
  """
107
8
  Returns the model name with the provider prefixed.
@@ -101,11 +101,11 @@ class DefaultLiteLLMClient(_BaseLiteLLMClient):
101
101
  # SageMaker) in Rasa by allowing AWS secrets to be provided as extra
102
102
  # parameters without triggering validation errors due to missing AWS
103
103
  # environment variables.
104
- if self.provider.lower() in [
104
+ if self.provider.lower() in {
105
105
  AWS_BEDROCK_PROVIDER,
106
106
  AWS_SAGEMAKER_PROVIDER,
107
107
  AWS_SAGEMAKER_CHAT_PROVIDER,
108
- ]:
108
+ }:
109
109
  validate_aws_setup_for_litellm_clients(
110
110
  self._litellm_model_name,
111
111
  self._litellm_extra_parameters,
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import copy
2
3
  import functools
3
4
  import importlib
4
5
  import inspect
@@ -288,6 +289,47 @@ def merge_lists_of_dicts(
288
289
  return list(merged_dicts.values())
289
290
 
290
291
 
292
+ def partial_merge_list(
293
+ self_list: List[Any],
294
+ other_list: List[Any],
295
+ is_same_item_fn: Callable[[Any, Any], bool],
296
+ ) -> List[Any]:
297
+ """Merges two lists based on a custom intersection logic."""
298
+ matched_other_indices = set()
299
+ result = []
300
+
301
+ for s_item in self_list:
302
+ match = next(
303
+ (
304
+ (i, o_item)
305
+ for i, o_item in enumerate(other_list)
306
+ if i not in matched_other_indices and is_same_item_fn(s_item, o_item)
307
+ ),
308
+ None,
309
+ )
310
+ if match:
311
+ i, o_item = match
312
+ result.append(copy.deepcopy(o_item))
313
+ matched_other_indices.add(i)
314
+ else:
315
+ result.append(copy.deepcopy(s_item))
316
+
317
+ return result
318
+
319
+
320
+ def partial_merge_dict(
321
+ self_d: Dict[Text, Any], other_d: Dict[Text, Any]
322
+ ) -> Dict[Text, Any]:
323
+ """Merges two dictionaries based on a custom intersection logic."""
324
+ merged = {}
325
+ for k, v in self_d.items():
326
+ if k in other_d:
327
+ merged[k] = copy.deepcopy(other_d[k])
328
+ else:
329
+ merged[k] = copy.deepcopy(v)
330
+ return merged
331
+
332
+
291
333
  def warn_and_exit_if_module_path_contains_rasa_plus(
292
334
  module_path: Text, lookup_path: Optional[str] = None
293
335
  ) -> None:
@@ -342,7 +384,7 @@ def display_research_study_prompt() -> None:
342
384
  {separator}
343
385
  Want to help shape the future of Rasa Pro?
344
386
  Share your feedback in a short conversation with our team.
345
- Sign up at: https://calendly.com/alvaro-rasa/rasa-pro-installation
387
+ Sign up at: https://feedback.rasa.com
346
388
  {separator}
347
389
  """
348
390
  print_success(message)
@@ -0,0 +1,110 @@
1
+ from typing import Optional
2
+
3
+ import structlog
4
+
5
+ from rasa.shared.utils.io import raise_deprecation_warning
6
+
7
+ structlogger = structlog.get_logger()
8
+
9
+
10
+ def resolve_aliases(config: dict, deprecated_alias_mapping: dict) -> dict:
11
+ """
12
+ Resolve aliases in the configuration to standard keys.
13
+
14
+ Args:
15
+ config: Dictionary containing the configuration.
16
+ deprecated_alias_mapping: Dictionary mapping aliases to
17
+ their standard keys.
18
+
19
+ Returns:
20
+ New dictionary containing the processed configuration.
21
+ """
22
+ config = config.copy()
23
+
24
+ for alias, standard_key in deprecated_alias_mapping.items():
25
+ # We check for the alias instead of the standard key because our goal is to
26
+ # update the standard key when the alias is found. Since the standard key is
27
+ # always included in the default component configurations, we overwrite it
28
+ # with the alias value if the alias exists.
29
+ if alias in config:
30
+ config[standard_key] = config.pop(alias)
31
+
32
+ return config
33
+
34
+
35
+ def raise_deprecation_warnings(
36
+ config: dict,
37
+ deprecated_alias_mapping: dict,
38
+ source: Optional[str] = None,
39
+ ) -> None:
40
+ """
41
+ Raises warnings for deprecated keys in the configuration.
42
+
43
+ Args:
44
+ config: Dictionary containing the configuration.
45
+ deprecated_alias_mapping: Dictionary mapping deprecated keys to
46
+ their standard keys.
47
+
48
+ Raises:
49
+ DeprecationWarning: If any deprecated key is found in the config.
50
+ """
51
+ for alias, standard_key in deprecated_alias_mapping.items():
52
+ if alias in config:
53
+ source = f"{source}: " or ""
54
+ raise_deprecation_warning(
55
+ message=(
56
+ f"{source}"
57
+ f"'{alias}' is deprecated and will be removed in "
58
+ f"4.0.0. Use '{standard_key}' instead."
59
+ )
60
+ )
61
+
62
+
63
+ def validate_required_keys(config: dict, required_keys: list) -> None:
64
+ """
65
+ Validates that the passed config contains all the required keys.
66
+
67
+ Args:
68
+ config: Dictionary containing the configuration.
69
+ required_keys: List of keys that must be present in the config.
70
+
71
+ Raises:
72
+ ValueError: If any required key is missing.
73
+ """
74
+ missing_keys = [key for key in required_keys if key not in config]
75
+ if missing_keys:
76
+ message = f"Missing required keys '{missing_keys}' for configuration."
77
+ structlogger.error(
78
+ "validate_required_keys",
79
+ message=message,
80
+ missing_keys=missing_keys,
81
+ config=config,
82
+ )
83
+ raise ValueError(message)
84
+
85
+
86
+ def validate_forbidden_keys(config: dict, forbidden_keys: list) -> None:
87
+ """
88
+ Validates that the passed config doesn't contain any forbidden keys.
89
+
90
+ Args:
91
+ config: Dictionary containing the configuration.
92
+ forbidden_keys: List of keys that are forbidden in the config.
93
+
94
+ Raises:
95
+ ValueError: If any forbidden key is present.
96
+ """
97
+ forbidden_keys_in_config = set(config.keys()).intersection(set(forbidden_keys))
98
+
99
+ if forbidden_keys_in_config:
100
+ message = (
101
+ f"Forbidden keys '{forbidden_keys_in_config}' present "
102
+ f"in the configuration."
103
+ )
104
+ structlogger.error(
105
+ "validate_forbidden_keys",
106
+ message=message,
107
+ forbidden_keys=forbidden_keys_in_config,
108
+ config=config,
109
+ )
110
+ raise ValueError(message)
@@ -2,9 +2,6 @@ DEFAULT_ENCODING = "utf-8"
2
2
 
3
3
  READ_YAML_FILE_CACHE_MAXSIZE_ENV_VAR = "READ_YAML_FILE_CACHE_MAXSIZE"
4
4
  DEFAULT_READ_YAML_FILE_CACHE_MAXSIZE = 256
5
- RASA_PRO_BETA_PREDICATES_IN_RESPONSE_CONDITIONS_ENV_VAR_NAME = (
6
- "RASA_PRO_BETA_PREDICATES_IN_RESPONSE_CONDITIONS"
7
- )
8
5
 
9
6
  LOG_COMPONENT_SOURCE_METHOD_INIT = "init"
10
7
  LOG_COMPONENT_SOURCE_METHOD_FINGERPRINT_ADDON = "fingerprint_addon"