rasa-pro 3.14.0.dev4__py3-none-any.whl → 3.14.0.dev5__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 (463) hide show
  1. rasa/api.py +0 -5
  2. rasa/builder/README.md +120 -0
  3. rasa/builder/auth.py +176 -0
  4. rasa/builder/config.py +115 -0
  5. rasa/builder/copilot/constants.py +25 -0
  6. rasa/builder/copilot/copilot.py +372 -0
  7. rasa/builder/copilot/copilot_response_handler.py +487 -0
  8. rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
  9. rasa/builder/copilot/exceptions.py +20 -0
  10. rasa/builder/copilot/models.py +431 -0
  11. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +726 -0
  12. rasa/builder/copilot/telemetry.py +195 -0
  13. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
  14. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +26 -0
  15. rasa/builder/document_retrieval/constants.py +15 -0
  16. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
  17. rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
  18. rasa/builder/document_retrieval/models.py +62 -0
  19. rasa/builder/download.py +140 -0
  20. rasa/builder/exceptions.py +55 -0
  21. rasa/builder/guardrails/__init__.py +1 -0
  22. rasa/builder/guardrails/constants.py +3 -0
  23. rasa/builder/guardrails/exceptions.py +4 -0
  24. rasa/builder/guardrails/lakera.py +206 -0
  25. rasa/builder/guardrails/models.py +199 -0
  26. rasa/builder/guardrails/utils.py +305 -0
  27. rasa/builder/job_manager.py +87 -0
  28. rasa/builder/jobs.py +234 -0
  29. rasa/builder/llm_service.py +246 -0
  30. rasa/builder/logging_utils.py +209 -0
  31. rasa/builder/main.py +174 -0
  32. rasa/builder/models.py +197 -0
  33. rasa/builder/project_generator.py +450 -0
  34. rasa/builder/project_info.py +72 -0
  35. rasa/builder/scrape_rasa_docs.py +97 -0
  36. rasa/builder/service.py +1142 -0
  37. rasa/builder/shared/tracker_context.py +212 -0
  38. rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
  39. rasa/builder/training_service.py +132 -0
  40. rasa/builder/validation_service.py +93 -0
  41. rasa/cli/arguments/default_arguments.py +0 -12
  42. rasa/cli/arguments/run.py +0 -2
  43. rasa/cli/dialogue_understanding_test.py +0 -4
  44. rasa/cli/e2e_test.py +0 -4
  45. rasa/cli/inspect.py +0 -3
  46. rasa/cli/llm_fine_tuning.py +0 -5
  47. rasa/cli/project_templates/basic/actions/action_api.py +15 -0
  48. rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
  49. rasa/cli/project_templates/basic/config.yml +23 -0
  50. rasa/cli/project_templates/basic/credentials.yml +34 -0
  51. rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
  52. rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
  53. rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
  54. rasa/cli/project_templates/basic/data/general/help.yml +6 -0
  55. rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
  56. rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
  57. rasa/cli/project_templates/basic/data/system/pattern_completed.yml +7 -0
  58. rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
  59. rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
  60. rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
  61. rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
  62. rasa/cli/project_templates/basic/docs/template.txt +7 -0
  63. rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
  64. rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
  65. rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
  66. rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
  67. rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
  68. rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
  69. rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
  70. rasa/cli/project_templates/basic/domain/general/utils.yml +13 -0
  71. rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
  72. rasa/cli/project_templates/basic/endpoints.yml +73 -0
  73. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  74. rasa/cli/project_templates/finance/actions/__init__.py +46 -0
  75. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
  76. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
  77. rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
  78. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
  79. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
  80. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
  81. rasa/cli/project_templates/finance/actions/database.py +277 -0
  82. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  83. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
  84. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
  85. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
  86. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
  87. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
  88. rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
  89. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
  90. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
  91. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
  92. rasa/cli/project_templates/finance/config.yml +21 -0
  93. rasa/cli/project_templates/finance/credentials.yml +32 -0
  94. rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
  95. rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
  96. rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
  97. rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
  98. rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
  99. rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
  100. rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
  101. rasa/cli/project_templates/finance/csvs/users.csv +4 -0
  102. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
  103. rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
  104. rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
  105. rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
  106. rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
  107. rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
  108. rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
  109. rasa/cli/project_templates/finance/data/general/help.yml +9 -0
  110. rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
  111. rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
  112. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
  113. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
  114. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
  115. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
  116. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
  117. rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
  118. rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
  119. rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
  120. rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
  121. rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
  122. rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
  123. rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
  124. rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
  125. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
  126. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
  127. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
  128. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
  129. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
  130. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
  131. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
  132. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
  133. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
  134. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
  135. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
  136. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
  137. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
  138. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
  139. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
  140. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
  141. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
  142. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
  143. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
  144. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
  145. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
  146. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
  147. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
  148. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
  149. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
  150. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
  151. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
  152. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
  153. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
  154. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
  155. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
  156. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
  157. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
  158. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
  159. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
  160. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
  161. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
  162. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
  163. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
  164. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
  165. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
  166. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
  167. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
  168. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
  169. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
  170. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
  171. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
  172. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
  173. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
  174. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
  175. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
  176. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
  177. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
  178. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
  179. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
  180. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
  181. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
  182. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
  183. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
  184. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
  185. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
  186. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
  187. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
  188. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
  189. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
  190. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
  191. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
  192. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
  193. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
  194. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
  195. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
  196. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
  197. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
  198. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
  199. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
  200. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
  201. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
  202. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
  203. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
  204. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
  205. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
  206. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
  207. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
  208. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
  209. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
  210. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
  211. rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
  212. rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
  213. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
  214. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
  215. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
  216. rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
  217. rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
  218. rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
  219. rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
  220. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
  221. rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
  222. rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
  223. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
  224. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
  225. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
  226. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
  227. rasa/cli/project_templates/finance/endpoints.yml +63 -0
  228. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  229. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  230. rasa/cli/project_templates/telco/actions/actions_billing.py +204 -0
  231. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +48 -0
  232. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +28 -0
  233. rasa/cli/project_templates/telco/actions/actions_session_start.py +18 -0
  234. rasa/cli/project_templates/telco/config.yml +25 -0
  235. rasa/cli/project_templates/telco/credentials.yml +33 -0
  236. rasa/cli/project_templates/telco/csvs/billing.csv +10 -0
  237. rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
  238. rasa/cli/project_templates/telco/data/flows/flow_global.yml +5 -0
  239. rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +8 -0
  240. rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +7 -0
  241. rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +73 -0
  242. rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +45 -0
  243. rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +7 -0
  244. rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +6 -0
  245. rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +7 -0
  246. rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +9 -0
  247. rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +1 -0
  248. rasa/cli/project_templates/telco/docs/restart_router.txt +6 -0
  249. rasa/cli/project_templates/telco/docs/run_speed_test.txt +6 -0
  250. rasa/cli/project_templates/telco/domain/domain_global.yml +29 -0
  251. rasa/cli/project_templates/telco/domain/domain_patterns.yml +17 -0
  252. rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +20 -0
  253. rasa/cli/project_templates/telco/domain/domain_reset_router.yml +11 -0
  254. rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +24 -0
  255. rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +74 -0
  256. rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +102 -0
  257. rasa/cli/project_templates/telco/endpoints.yml +60 -0
  258. rasa/{dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 → cli/project_templates/telco/prompts/command-generator.jinja2} +3 -7
  259. rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +62 -0
  260. rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +130 -0
  261. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +68 -0
  262. rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +13 -0
  263. rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +47 -0
  264. rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +21 -0
  265. rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +15 -0
  266. rasa/cli/project_templates/tutorial/config.yml +2 -1
  267. rasa/cli/run.py +0 -4
  268. rasa/cli/scaffold.py +46 -2
  269. rasa/cli/shell.py +0 -3
  270. rasa/constants.py +0 -6
  271. rasa/core/actions/action.py +10 -56
  272. rasa/core/agent.py +0 -16
  273. rasa/core/available_endpoints.py +0 -30
  274. rasa/core/channels/channel.py +4 -3
  275. rasa/core/channels/constants.py +3 -0
  276. rasa/core/channels/development_inspector.py +4 -4
  277. rasa/core/channels/hangouts.py +2 -2
  278. rasa/core/channels/inspector/dist/assets/{arc-63212852.js → arc-18042c22.js} +1 -1
  279. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-eecf6b13.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
  280. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-8f798a9a.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
  281. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
  282. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-df71a04c.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
  283. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9b275968.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
  284. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
  285. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-1c669cad.js → createText-2e5e7dd3-31422447.js} +1 -1
  286. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b1553799.js → edges-e0da2a9e-518a90db.js} +1 -1
  287. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-112388d6.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
  288. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-fdebec47.js → flowDb-956e92f1-e048c2be.js} +1 -1
  289. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-6280ede1.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
  290. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
  291. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-e1dc03e5.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
  292. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-83f68c51.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
  293. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-22f8666f.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
  294. rasa/core/channels/inspector/dist/assets/{graph-ca9e6217.js → graph-14702d8a.js} +1 -1
  295. rasa/core/channels/inspector/dist/assets/{index-3862675e-c5ceb692.js → index-3862675e-f18b534b.js} +1 -1
  296. rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +1335 -0
  297. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-faa9999b.js → infoDiagram-f8f76790-64154b83.js} +1 -1
  298. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-c4dda8d9.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
  299. rasa/core/channels/inspector/dist/assets/{layout-d4307784.js → layout-5a3b2123.js} +1 -1
  300. rasa/core/channels/inspector/dist/assets/{line-0567aaa7.js → line-2272a8c7.js} +1 -1
  301. rasa/core/channels/inspector/dist/assets/{linear-c11b95cf.js → linear-35bcf273.js} +1 -1
  302. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-0c7d3ca9.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
  303. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-34b433fa.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
  304. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-4cab816e.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
  305. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-8c22fa9e.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
  306. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-70ce9e8e.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
  307. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-fbcd7fc9.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
  308. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-45f05ea6.js → stateDiagram-587899a1-b8a74083.js} +1 -1
  309. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-beab1ea6.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
  310. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-2f29dbd5.js → styles-6aaf32cf-f1d54e34.js} +1 -1
  311. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-951eac83.js → styles-9a916d00-980de489.js} +1 -1
  312. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-897fbfdd.js → styles-c10674c1-3c03abde.js} +1 -1
  313. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-d667fac1.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
  314. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-e3205144.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
  315. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-4abeb0e2.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
  316. rasa/core/channels/inspector/dist/index.html +2 -2
  317. rasa/core/channels/inspector/index.html +1 -1
  318. rasa/core/channels/inspector/src/App.tsx +10 -11
  319. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
  320. rasa/core/channels/inspector/src/components/DialogueStack.tsx +4 -6
  321. rasa/core/channels/inspector/src/helpers/formatters.ts +3 -24
  322. rasa/core/channels/inspector/src/theme/base/styles.ts +1 -19
  323. rasa/core/channels/inspector/src/types.ts +0 -4
  324. rasa/core/channels/socketio.py +212 -51
  325. rasa/core/channels/studio_chat.py +49 -29
  326. rasa/core/channels/voice_stream/genesys.py +1 -1
  327. rasa/core/channels/voice_stream/voice_channel.py +5 -3
  328. rasa/core/constants.py +0 -4
  329. rasa/core/policies/enterprise_search_policy.py +6 -11
  330. rasa/core/policies/flow_policy.py +4 -4
  331. rasa/core/policies/flows/flow_executor.py +45 -456
  332. rasa/core/policies/intentless_policy.py +1 -1
  333. rasa/core/policies/unexpected_intent_policy.py +0 -1
  334. rasa/core/processor.py +15 -18
  335. rasa/core/run.py +14 -11
  336. rasa/core/tracker_stores/tracker_store.py +7 -3
  337. rasa/core/train.py +1 -1
  338. rasa/core/training/interactive.py +16 -16
  339. rasa/core/training/story_conflict.py +5 -5
  340. rasa/core/utils.py +1 -21
  341. rasa/dialogue_understanding/commands/__init__.py +0 -8
  342. rasa/dialogue_understanding/commands/cancel_flow_command.py +4 -97
  343. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +0 -11
  344. rasa/dialogue_understanding/commands/clarify_command.py +0 -10
  345. rasa/dialogue_understanding/commands/knowledge_answer_command.py +0 -11
  346. rasa/dialogue_understanding/commands/start_flow_command.py +8 -164
  347. rasa/dialogue_understanding/commands/utils.py +2 -6
  348. rasa/dialogue_understanding/generator/command_parser.py +0 -4
  349. rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
  350. rasa/dialogue_understanding/generator/llm_based_command_generator.py +12 -50
  351. rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
  352. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
  353. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +6 -7
  354. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +6 -7
  355. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -41
  356. rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -163
  357. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +8 -52
  358. rasa/dialogue_understanding/processor/command_processor.py +15 -31
  359. rasa/dialogue_understanding/stack/dialogue_stack.py +2 -123
  360. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +0 -57
  361. rasa/dialogue_understanding/stack/utils.py +2 -17
  362. rasa/dialogue_understanding_test/du_test_runner.py +2 -7
  363. rasa/e2e_test/e2e_test_runner.py +2 -12
  364. rasa/engine/caching.py +2 -2
  365. rasa/engine/recipes/default_components.py +18 -10
  366. rasa/engine/storage/local_model_storage.py +45 -2
  367. rasa/graph_components/validators/default_recipe_validator.py +134 -134
  368. rasa/hooks.py +5 -5
  369. rasa/llm_fine_tuning/utils.py +2 -2
  370. rasa/model_manager/model_api.py +4 -5
  371. rasa/model_manager/runner_service.py +1 -1
  372. rasa/model_manager/socket_bridge.py +20 -14
  373. rasa/model_manager/trainer_service.py +12 -9
  374. rasa/model_manager/utils.py +1 -29
  375. rasa/model_manager/warm_rasa_process.py +1 -1
  376. rasa/nlu/extractors/extractor.py +1 -2
  377. rasa/plugin.py +8 -8
  378. rasa/privacy/privacy_manager.py +2 -11
  379. rasa/server.py +2 -14
  380. rasa/shared/constants.py +0 -5
  381. rasa/shared/core/constants.py +1 -12
  382. rasa/shared/core/domain.py +58 -11
  383. rasa/shared/core/events.py +0 -327
  384. rasa/shared/core/flows/flow_step.py +7 -1
  385. rasa/shared/core/flows/flows_list.py +2 -2
  386. rasa/shared/core/flows/flows_yaml_schema.json +186 -112
  387. rasa/shared/core/flows/steps/call.py +5 -53
  388. rasa/shared/core/flows/validation.py +7 -46
  389. rasa/shared/core/flows/yaml_flows_io.py +17 -9
  390. rasa/shared/core/slots.py +6 -2
  391. rasa/shared/core/trackers.py +2 -5
  392. rasa/shared/exceptions.py +0 -4
  393. rasa/shared/importers/importer.py +6 -0
  394. rasa/shared/importers/utils.py +77 -1
  395. rasa/shared/providers/_utils.py +60 -44
  396. rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
  397. rasa/shared/providers/llm/_base_litellm_client.py +7 -39
  398. rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
  399. rasa/shared/providers/llm/litellm_router_llm_client.py +4 -8
  400. rasa/shared/providers/llm/llm_client.py +3 -7
  401. rasa/shared/providers/llm/llm_response.py +0 -49
  402. rasa/shared/providers/llm/self_hosted_llm_client.py +4 -8
  403. rasa/shared/utils/llm.py +5 -28
  404. rasa/shared/utils/schemas/events.py +0 -42
  405. rasa/shared/utils/yaml.py +1 -3
  406. rasa/studio/upload.py +16 -47
  407. rasa/telemetry.py +97 -23
  408. rasa/tracing/instrumentation/instrumentation.py +10 -12
  409. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
  410. rasa/utils/common.py +0 -79
  411. rasa/utils/io.py +27 -9
  412. rasa/utils/json_utils.py +6 -1
  413. rasa/utils/log_utils.py +6 -2
  414. rasa/utils/ml_utils.py +1 -1
  415. rasa/utils/openapi.py +144 -0
  416. rasa/utils/tensorflow/rasa_layers.py +1 -1
  417. rasa/utils/train_utils.py +15 -15
  418. rasa/validator.py +21 -19
  419. rasa/version.py +1 -1
  420. {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +17 -14
  421. {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +431 -200
  422. rasa/agents/agent_factory.py +0 -122
  423. rasa/agents/agent_manager.py +0 -162
  424. rasa/agents/constants.py +0 -40
  425. rasa/agents/core/agent_protocol.py +0 -107
  426. rasa/agents/core/types.py +0 -70
  427. rasa/agents/exceptions.py +0 -8
  428. rasa/agents/protocol/__init__.py +0 -5
  429. rasa/agents/protocol/a2a/a2a_agent.py +0 -662
  430. rasa/agents/protocol/mcp/mcp_base_agent.py +0 -676
  431. rasa/agents/protocol/mcp/mcp_open_agent.py +0 -276
  432. rasa/agents/protocol/mcp/mcp_task_agent.py +0 -469
  433. rasa/agents/schemas/__init__.py +0 -12
  434. rasa/agents/schemas/agent_input.py +0 -38
  435. rasa/agents/schemas/agent_output.py +0 -26
  436. rasa/agents/schemas/agent_tool_result.py +0 -51
  437. rasa/agents/schemas/agent_tool_schema.py +0 -134
  438. rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +0 -15
  439. rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +0 -17
  440. rasa/agents/utils.py +0 -72
  441. rasa/core/available_agents.py +0 -199
  442. rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +0 -1
  443. rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +0 -1
  444. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +0 -1
  445. rasa/core/channels/inspector/dist/assets/index-3e293924.js +0 -1353
  446. rasa/core/policies/flows/mcp_tool_executor.py +0 -277
  447. rasa/dialogue_understanding/commands/continue_agent_command.py +0 -91
  448. rasa/dialogue_understanding/commands/restart_agent_command.py +0 -162
  449. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +0 -61
  450. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +0 -81
  451. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +0 -81
  452. rasa/shared/agents/utils.py +0 -35
  453. rasa/shared/utils/mcp/server_connection.py +0 -157
  454. /rasa/{agents → builder}/__init__.py +0 -0
  455. /rasa/{agents/core → builder/copilot}/__init__.py +0 -0
  456. /rasa/{agents/protocol/a2a → builder/copilot/prompts}/__init__.py +0 -0
  457. /rasa/{agents/protocol/mcp → builder/copilot/templated_messages}/__init__.py +0 -0
  458. /rasa/{agents/templates → builder/document_retrieval}/__init__.py +0 -0
  459. /rasa/{shared/agents → cli/project_templates/finance/actions/accounts}/__init__.py +0 -0
  460. /rasa/{shared/utils/mcp → cli/project_templates/finance/actions/cards}/__init__.py +0 -0
  461. {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
  462. {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
  463. {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
rasa/engine/caching.py CHANGED
@@ -5,7 +5,7 @@ import logging
5
5
  import shutil
6
6
  from datetime import datetime
7
7
  from pathlib import Path
8
- from typing import Any, List, Optional, Text, Tuple, Union
8
+ from typing import Any, List, Optional, Text, Tuple
9
9
 
10
10
  import sqlalchemy as sa
11
11
  import sqlalchemy.orm
@@ -294,7 +294,7 @@ class LocalTrainingCache(TrainingCache):
294
294
 
295
295
  def _cache_output_to_disk(
296
296
  self, output: Cacheable, model_storage: ModelStorage
297
- ) -> Tuple[Optional[Union[Path, Text]], Optional[Text]]:
297
+ ) -> Tuple[Optional[Text], Optional[Text]]:
298
298
  tempdir_name = rasa.utils.common.get_temp_dir_name()
299
299
 
300
300
  # Use `TempDirectoryPath` instead of `tempfile.TemporaryDirectory` as this
@@ -1,7 +1,10 @@
1
1
  from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
2
2
  from rasa.core.policies.flow_policy import FlowPolicy
3
3
  from rasa.core.policies.intentless_policy import IntentlessPolicy
4
- from rasa.core.policies.memoization import AugmentedMemoizationPolicy
4
+ from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
5
+ from rasa.core.policies.rule_policy import RulePolicy
6
+ from rasa.core.policies.ted_policy import TEDPolicy
7
+ from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
5
8
  from rasa.dialogue_understanding.coexistence.intent_based_router import (
6
9
  IntentBasedRouter,
7
10
  )
@@ -10,6 +13,7 @@ from rasa.dialogue_understanding.generator import (
10
13
  LLMCommandGenerator,
11
14
  )
12
15
  from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
16
+ from rasa.nlu.classifiers.diet_classifier import DIETClassifier
13
17
  from rasa.nlu.classifiers.fallback_classifier import FallbackClassifier
14
18
  from rasa.nlu.classifiers.keyword_intent_classifier import KeywordIntentClassifier
15
19
  from rasa.nlu.classifiers.logistic_regression_classifier import (
@@ -17,11 +21,14 @@ from rasa.nlu.classifiers.logistic_regression_classifier import (
17
21
  )
18
22
  from rasa.nlu.classifiers.mitie_intent_classifier import MitieIntentClassifier
19
23
  from rasa.nlu.classifiers.sklearn_intent_classifier import SklearnIntentClassifier
24
+ from rasa.nlu.extractors.crf_entity_extractor import CRFEntityExtractor
20
25
  from rasa.nlu.extractors.duckling_entity_extractor import DucklingEntityExtractor
21
26
  from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
22
27
  from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
23
28
  from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
24
29
  from rasa.nlu.extractors.spacy_entity_extractor import SpacyEntityExtractor
30
+ from rasa.nlu.featurizers.dense_featurizer.convert_featurizer import ConveRTFeaturizer
31
+ from rasa.nlu.featurizers.dense_featurizer.lm_featurizer import LanguageModelFeaturizer
25
32
  from rasa.nlu.featurizers.dense_featurizer.mitie_featurizer import MitieFeaturizer
26
33
  from rasa.nlu.featurizers.dense_featurizer.spacy_featurizer import SpacyFeaturizer
27
34
  from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import (
@@ -31,6 +38,7 @@ from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import
31
38
  LexicalSyntacticFeaturizer,
32
39
  )
33
40
  from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
41
+ from rasa.nlu.selectors.response_selector import ResponseSelector
34
42
  from rasa.nlu.tokenizers.jieba_tokenizer import JiebaTokenizer
35
43
  from rasa.nlu.tokenizers.mitie_tokenizer import MitieTokenizer
36
44
  from rasa.nlu.tokenizers.spacy_tokenizer import SpacyTokenizer
@@ -40,7 +48,7 @@ from rasa.nlu.utils.spacy_utils import SpacyNLP
40
48
 
41
49
  DEFAULT_COMPONENTS = [
42
50
  # Message Classifiers
43
- # DIETClassifier,
51
+ DIETClassifier,
44
52
  FallbackClassifier,
45
53
  KeywordIntentClassifier,
46
54
  MitieIntentClassifier,
@@ -51,9 +59,9 @@ DEFAULT_COMPONENTS = [
51
59
  LLMBasedRouter,
52
60
  IntentBasedRouter,
53
61
  # Response Selectors
54
- # ResponseSelector,
62
+ ResponseSelector,
55
63
  # Message Entity Extractors
56
- # CRFEntityExtractor,
64
+ CRFEntityExtractor,
57
65
  DucklingEntityExtractor,
58
66
  EntitySynonymMapper,
59
67
  MitieEntityExtractor,
@@ -61,11 +69,11 @@ DEFAULT_COMPONENTS = [
61
69
  RegexEntityExtractor,
62
70
  # Message Feauturizers
63
71
  LexicalSyntacticFeaturizer,
64
- # ConveRTFeaturizer,
72
+ ConveRTFeaturizer,
65
73
  MitieFeaturizer,
66
74
  SpacyFeaturizer,
67
75
  CountVectorsFeaturizer,
68
- # LanguageModelFeaturizer,
76
+ LanguageModelFeaturizer,
69
77
  RegexFeaturizer,
70
78
  # Tokenizers
71
79
  JiebaTokenizer,
@@ -76,10 +84,10 @@ DEFAULT_COMPONENTS = [
76
84
  MitieNLP,
77
85
  SpacyNLP,
78
86
  # Dialogue Management Policies
79
- # TEDPolicy,
80
- # UnexpecTEDIntentPolicy,
81
- # RulePolicy,
82
- # MemoizationPolicy,
87
+ TEDPolicy,
88
+ UnexpecTEDIntentPolicy,
89
+ RulePolicy,
90
+ MemoizationPolicy,
83
91
  AugmentedMemoizationPolicy,
84
92
  FlowPolicy,
85
93
  EnterpriseSearchPolicy,
@@ -1,14 +1,16 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
+ import os
4
5
  import shutil
5
6
  import sys
7
+ import tarfile
6
8
  import tempfile
7
9
  import uuid
8
10
  from contextlib import contextmanager
9
11
  from datetime import datetime
10
12
  from pathlib import Path
11
- from typing import Generator, Optional, Text, Tuple, Union
13
+ from typing import Callable, Generator, Optional, Text, Tuple, Union
12
14
 
13
15
  from tarsafe import TarSafe
14
16
 
@@ -57,6 +59,35 @@ def windows_safe_temporary_directory(
57
59
  yield temporary_directory
58
60
 
59
61
 
62
+ def filter_normpath(member: tarfile.TarInfo, dest_path: str) -> tarfile.TarInfo:
63
+ """Normalize tar member paths for safe extraction"""
64
+ if member.name:
65
+ member.name = os.path.normpath(member.name)
66
+ return member
67
+
68
+
69
+ FilterFunction = Callable[[tarfile.TarInfo, str], Optional[tarfile.TarInfo]]
70
+
71
+
72
+ def create_combined_filter(existing_filter: Optional[FilterFunction]) -> FilterFunction:
73
+ """Create a filter that combines existing filter with path normalization"""
74
+
75
+ def combined_filter(
76
+ member: tarfile.TarInfo, dest_path: str
77
+ ) -> Optional[tarfile.TarInfo]:
78
+ """Apply existing filter first, then path normalization"""
79
+ if existing_filter is not None:
80
+ filtered_member = existing_filter(member, dest_path)
81
+ if filtered_member is None:
82
+ return None # Rejected by existing filter
83
+ member = filtered_member # Use the filtered result
84
+
85
+ # Apply our path normalization
86
+ return filter_normpath(member, dest_path)
87
+
88
+ return combined_filter
89
+
90
+
60
91
  class LocalModelStorage(ModelStorage):
61
92
  """Stores and provides output of `GraphComponents` on local disk."""
62
93
 
@@ -122,7 +153,19 @@ class LocalModelStorage(ModelStorage):
122
153
  # this restriction in environments where it's not possible
123
154
  # to override this behavior, mostly for internal policy reasons
124
155
  # reference: https://stackoverflow.com/a/49102229
125
- tar.extractall(f"\\\\?\\{temporary_directory}")
156
+ try:
157
+ # Use extraction filter to normalize paths for compatibility
158
+ # before trying the \\?\ prefix approach first
159
+ prev_filter = getattr(tar, "extraction_filter", None)
160
+ tar.extraction_filter = create_combined_filter(prev_filter)
161
+ tar.extractall(f"\\\\?\\{temporary_directory}")
162
+ except Exception:
163
+ # Fallback for Python versions with tarfile security fix
164
+ logger.warning(
165
+ "Failed to extract model archive with long path support. "
166
+ "Falling back to regular extraction."
167
+ )
168
+ tar.extractall(temporary_directory)
126
169
  else:
127
170
  tar.extractall(temporary_directory)
128
171
  LocalModelStorage._assert_not_rasa2_archive(temporary_directory)
@@ -10,40 +10,46 @@ from rasa.core.policies.flow_policy import FlowPolicy
10
10
  from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
11
11
  from rasa.core.policies.policy import Policy, SupportedData
12
12
  from rasa.core.policies.rule_policy import RulePolicy
13
-
14
- # from rasa.core.policies.ted_policy import TEDPolicy
15
- # from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
13
+ from rasa.core.policies.ted_policy import TEDPolicy
14
+ from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
16
15
  from rasa.engine.graph import ExecutionContext, GraphComponent, GraphSchema, SchemaNode
17
16
  from rasa.engine.storage.resource import Resource
18
17
  from rasa.engine.storage.storage import ModelStorage
19
-
20
- # from rasa.nlu.classifiers.diet_classifier import DIETClassifier
21
- # from rasa.nlu.extractors.crf_entity_extractor import (
22
- # CRFEntityExtractor,
23
- # CRFEntityExtractorOptions,
24
- # )
18
+ from rasa.nlu.classifiers.diet_classifier import DIETClassifier
19
+ from rasa.nlu.extractors.crf_entity_extractor import (
20
+ CRFEntityExtractor,
21
+ CRFEntityExtractorOptions,
22
+ )
25
23
  from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
26
24
  from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
27
25
  from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
28
26
  from rasa.nlu.featurizers.featurizer import Featurizer
29
27
  from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
30
-
31
- # from rasa.nlu.selectors.response_selector import ResponseSelector
28
+ from rasa.nlu.selectors.response_selector import ResponseSelector
32
29
  from rasa.nlu.tokenizers.tokenizer import Tokenizer
33
30
  from rasa.shared.constants import (
31
+ DEFAULT_CONFIG_PATH,
34
32
  DOCS_URL_COMPONENTS,
33
+ DOCS_URL_DEFAULT_ACTIONS,
35
34
  DOCS_URL_NLU_BASED_POLICIES,
35
+ DOCS_URL_RULES,
36
36
  )
37
- from rasa.shared.core.domain import Domain
37
+ from rasa.shared.core.constants import (
38
+ ACTION_BACK_NAME,
39
+ ACTION_RESTART_NAME,
40
+ USER_INTENT_BACK,
41
+ USER_INTENT_RESTART,
42
+ )
43
+ from rasa.shared.core.domain import Domain, InvalidDomain
38
44
  from rasa.shared.core.training_data.structures import RuleStep, StoryGraph
39
45
  from rasa.shared.exceptions import InvalidConfigException
40
46
  from rasa.shared.importers.importer import TrainingDataImporter
41
47
  from rasa.shared.nlu.training_data.training_data import TrainingData
42
48
 
43
49
  # TODO: Can we replace this with the registered types from the regitry?
44
- TRAINABLE_EXTRACTORS = [MitieEntityExtractor] # , CRFEntityExtractor, DIETClassifier]
50
+ TRAINABLE_EXTRACTORS = [MitieEntityExtractor, CRFEntityExtractor, DIETClassifier]
45
51
  # TODO: replace these once the Recipe is merged (used in tests)
46
- POLICY_CLASSSES = {MemoizationPolicy, RulePolicy}
52
+ POLICY_CLASSSES = {TEDPolicy, MemoizationPolicy, RulePolicy}
47
53
 
48
54
 
49
55
  def _types_to_str(types: Iterable[Type]) -> Text:
@@ -129,17 +135,16 @@ class DefaultV1RecipeValidator(GraphComponent):
129
135
  """
130
136
  if (
131
137
  training_data.response_examples
132
- # and ResponseSelector not in self._component_types
138
+ and ResponseSelector not in self._component_types
133
139
  ):
134
- pass
135
- # rasa.shared.utils.io.raise_warning(
136
- # f"You have defined training data with examples for training a response " # noqa: E501
137
- # f"selector, but your NLU configuration does not include a response "
138
- # f"selector component. "
139
- # f"To train a model on your response selector data, add a "
140
- # f"'{ResponseSelector.__name__}' to your configuration.",
141
- # docs=DOCS_URL_COMPONENTS,
142
- # )
140
+ rasa.shared.utils.io.raise_warning(
141
+ f"You have defined training data with examples for training a response "
142
+ f"selector, but your NLU configuration does not include a response "
143
+ f"selector component. "
144
+ f"To train a model on your response selector data, add a "
145
+ f"'{ResponseSelector.__name__}' to your configuration.",
146
+ docs=DOCS_URL_COMPONENTS,
147
+ )
143
148
 
144
149
  if training_data.entity_examples and self._component_types.isdisjoint(
145
150
  TRAINABLE_EXTRACTORS
@@ -153,21 +158,21 @@ class DefaultV1RecipeValidator(GraphComponent):
153
158
  docs=DOCS_URL_COMPONENTS,
154
159
  )
155
160
 
156
- # if training_data.entity_examples and self._component_types.isdisjoint(
157
- # {DIETClassifier, CRFEntityExtractor}
158
- # ):
159
- # if training_data.entity_roles_groups_used():
160
- # rasa.shared.utils.io.raise_warning(
161
- # f"You have defined training data with entities that "
162
- # f"have roles/groups, but your NLU configuration does not "
163
- # f"include a '{DIETClassifier.__name__}' "
164
- # f"or a '{CRFEntityExtractor.__name__}'. "
165
- # f"To train entities that have roles/groups, "
166
- # f"add either '{DIETClassifier.__name__}' "
167
- # f"or '{CRFEntityExtractor.__name__}' to your "
168
- # f"configuration.",
169
- # docs=DOCS_URL_COMPONENTS,
170
- # )
161
+ if training_data.entity_examples and self._component_types.isdisjoint(
162
+ {DIETClassifier, CRFEntityExtractor}
163
+ ):
164
+ if training_data.entity_roles_groups_used():
165
+ rasa.shared.utils.io.raise_warning(
166
+ f"You have defined training data with entities that "
167
+ f"have roles/groups, but your NLU configuration does not "
168
+ f"include a '{DIETClassifier.__name__}' "
169
+ f"or a '{CRFEntityExtractor.__name__}'. "
170
+ f"To train entities that have roles/groups, "
171
+ f"add either '{DIETClassifier.__name__}' "
172
+ f"or '{CRFEntityExtractor.__name__}' to your "
173
+ f"configuration.",
174
+ docs=DOCS_URL_COMPONENTS,
175
+ )
171
176
 
172
177
  if training_data.regex_features and self._component_types.isdisjoint(
173
178
  [RegexFeaturizer, RegexEntityExtractor]
@@ -197,45 +202,45 @@ class DefaultV1RecipeValidator(GraphComponent):
197
202
  docs=DOCS_URL_COMPONENTS,
198
203
  )
199
204
 
200
- # if training_data.lookup_tables:
201
- # if self._component_types.isdisjoint([CRFEntityExtractor, DIETClassifier]):
202
- # rasa.shared.utils.io.raise_warning(
203
- # f"You have defined training data consisting of lookup tables, but " # noqa: E501
204
- # f"your NLU configuration does not include any components "
205
- # f"that uses the features created from the lookup table. "
206
- # f"To make use of the features that are created with the "
207
- # f"help of the lookup tables, "
208
- # f"add a '{DIETClassifier.__name__}' or a "
209
- # f"'{CRFEntityExtractor.__name__}' "
210
- # f"with the 'pattern' feature "
211
- # f"to your configuration.",
212
- # docs=DOCS_URL_COMPONENTS,
213
- # )
214
-
215
- # elif CRFEntityExtractor in self._component_types:
216
- # crf_schema_nodes = [
217
- # schema_node
218
- # for schema_node in self._graph_schema.nodes.values()
219
- # if schema_node.uses == CRFEntityExtractor
220
- # ]
221
- # has_pattern_feature = any(
222
- # CRFEntityExtractorOptions.PATTERN in feature_list
223
- # for crf in crf_schema_nodes
224
- # for feature_list in crf.config.get("features", [])
225
- # )
226
-
227
- # if not has_pattern_feature:
228
- # rasa.shared.utils.io.raise_warning(
229
- # f"You have defined training data consisting of "
230
- # f"lookup tables, but your NLU configuration's "
231
- # f"'{CRFEntityExtractor.__name__}' "
232
- # f"does not include the "
233
- # f"'pattern' feature. To featurize lookup tables, "
234
- # f"add the 'pattern' feature to the "
235
- # f"'{CRFEntityExtractor.__name__}' "
236
- # "in your configuration.",
237
- # docs=DOCS_URL_COMPONENTS,
238
- # )
205
+ if training_data.lookup_tables:
206
+ if self._component_types.isdisjoint([CRFEntityExtractor, DIETClassifier]):
207
+ rasa.shared.utils.io.raise_warning(
208
+ f"You have defined training data consisting of lookup tables, but "
209
+ f"your NLU configuration does not include any components "
210
+ f"that uses the features created from the lookup table. "
211
+ f"To make use of the features that are created with the "
212
+ f"help of the lookup tables, "
213
+ f"add a '{DIETClassifier.__name__}' or a "
214
+ f"'{CRFEntityExtractor.__name__}' "
215
+ f"with the 'pattern' feature "
216
+ f"to your configuration.",
217
+ docs=DOCS_URL_COMPONENTS,
218
+ )
219
+
220
+ elif CRFEntityExtractor in self._component_types:
221
+ crf_schema_nodes = [
222
+ schema_node
223
+ for schema_node in self._graph_schema.nodes.values()
224
+ if schema_node.uses == CRFEntityExtractor
225
+ ]
226
+ has_pattern_feature = any(
227
+ CRFEntityExtractorOptions.PATTERN in feature_list
228
+ for crf in crf_schema_nodes
229
+ for feature_list in crf.config.get("features", [])
230
+ )
231
+
232
+ if not has_pattern_feature:
233
+ rasa.shared.utils.io.raise_warning(
234
+ f"You have defined training data consisting of "
235
+ f"lookup tables, but your NLU configuration's "
236
+ f"'{CRFEntityExtractor.__name__}' "
237
+ f"does not include the "
238
+ f"'pattern' feature. To featurize lookup tables, "
239
+ f"add the 'pattern' feature to the "
240
+ f"'{CRFEntityExtractor.__name__}' "
241
+ "in your configuration.",
242
+ docs=DOCS_URL_COMPONENTS,
243
+ )
239
244
 
240
245
  if (
241
246
  training_data.entity_synonyms
@@ -387,22 +392,21 @@ class DefaultV1RecipeValidator(GraphComponent):
387
392
 
388
393
  def _warn_if_no_policy_handles_default_intents(self) -> None:
389
394
  """Warns if there is no policy handling the default intents."""
390
- # policies_handling_default_indents = (RulePolicy, FlowPolicy)
391
- #
392
- # contains_policy_handling_default_intents = any(
393
- # issubclass(node.uses, policies_handling_default_indents)
394
- # for node in self._policy_schema_nodes
395
- # )
396
- # if not contains_policy_handling_default_intents:
397
- # rasa.shared.utils.io.raise_warning(
398
- # f"'{RulePolicy.__name__}' is not included in the model's "
399
- # f"policy configuration. Default intents such as "
400
- # f"'{USER_INTENT_RESTART}' and '{USER_INTENT_BACK}' will "
401
- # f"not trigger actions '{ACTION_RESTART_NAME}' and "
402
- # f"'{ACTION_BACK_NAME}'.",
403
- # docs=DOCS_URL_DEFAULT_ACTIONS,
404
- # )
405
- pass
395
+ policies_handling_default_indents = (RulePolicy, FlowPolicy)
396
+
397
+ contains_policy_handling_default_intents = any(
398
+ issubclass(node.uses, policies_handling_default_indents)
399
+ for node in self._policy_schema_nodes
400
+ )
401
+ if not contains_policy_handling_default_intents:
402
+ rasa.shared.utils.io.raise_warning(
403
+ f"'{RulePolicy.__name__}' is not included in the model's "
404
+ f"policy configuration. Default intents such as "
405
+ f"'{USER_INTENT_RESTART}' and '{USER_INTENT_BACK}' will "
406
+ f"not trigger actions '{ACTION_RESTART_NAME}' and "
407
+ f"'{ACTION_BACK_NAME}'.",
408
+ docs=DOCS_URL_DEFAULT_ACTIONS,
409
+ )
406
410
 
407
411
  def _raise_if_domain_contains_form_names_but_no_rule_policy_given(
408
412
  self, domain: Domain
@@ -412,20 +416,19 @@ class DefaultV1RecipeValidator(GraphComponent):
412
416
  Raises:
413
417
  `InvalidConfigException` if domain and rule policies do not match
414
418
  """
415
- pass
416
- # contains_rule_policy = any(
417
- # schema_node
418
- # for schema_node in self._graph_schema.nodes.values()
419
- # if issubclass(schema_node.uses, RulePolicy)
420
- # )
421
-
422
- # if domain.form_names and not contains_rule_policy:
423
- # raise InvalidDomain(
424
- # "You have defined a form action, but have not added the "
425
- # f"'{RulePolicy.__name__}' to your policy ensemble. "
426
- # f"Either remove all forms from your domain or add the "
427
- # f"'{RulePolicy.__name__}' to your policy configuration."
428
- # )
419
+ contains_rule_policy = any(
420
+ schema_node
421
+ for schema_node in self._graph_schema.nodes.values()
422
+ if issubclass(schema_node.uses, RulePolicy)
423
+ )
424
+
425
+ if domain.form_names and not contains_rule_policy:
426
+ raise InvalidDomain(
427
+ "You have defined a form action, but have not added the "
428
+ f"'{RulePolicy.__name__}' to your policy ensemble. "
429
+ f"Either remove all forms from your domain or add the "
430
+ f"'{RulePolicy.__name__}' to your policy configuration."
431
+ )
429
432
 
430
433
  def _raise_if_dm1_and_calm_policies_used_at_the_same_time(self) -> None:
431
434
  """Validates that there exists a rule policy if forms are defined.
@@ -444,11 +447,11 @@ class DefaultV1RecipeValidator(GraphComponent):
444
447
 
445
448
  # if we are using a flow policy, there shouldn't be any dm1 policies
446
449
  dm1_policies = (
447
- # RulePolicy,
448
- # TEDPolicy,
450
+ RulePolicy,
451
+ TEDPolicy,
449
452
  MemoizationPolicy,
450
453
  AugmentedMemoizationPolicy,
451
- # UnexpecTEDIntentPolicy,
454
+ UnexpecTEDIntentPolicy,
452
455
  )
453
456
 
454
457
  for schema_node in self._graph_schema.nodes.values():
@@ -469,11 +472,10 @@ class DefaultV1RecipeValidator(GraphComponent):
469
472
  `InvalidDomain` if domain and rule policies do not match
470
473
  """
471
474
  for schema_node in self._graph_schema.nodes.values():
472
- # if schema_node.uses == RulePolicy:
473
- # RulePolicy.raise_if_incompatible_with_domain(
474
- # config=schema_node.config, domain=domain
475
- # )
476
- pass
475
+ if schema_node.uses == RulePolicy:
476
+ RulePolicy.raise_if_incompatible_with_domain(
477
+ config=schema_node.config, domain=domain
478
+ )
477
479
 
478
480
  def _validate_policy_priorities(self) -> None:
479
481
  """Checks if every policy has a valid priority value.
@@ -529,22 +531,20 @@ class DefaultV1RecipeValidator(GraphComponent):
529
531
  )
530
532
 
531
533
  if consuming_rule_data and not contains_rule_tracker:
532
- # rasa.shared.utils.io.raise_warning(
533
- # f"Found a rule-based policy in your configuration but "
534
- # f"no rule-based training data. Please add rule-based "
535
- # f"stories to your training data or "
536
- # f"remove the rule-based policy "
537
- # f"(`{RulePolicy.__name__}`) from your "
538
- # f"your configuration.",
539
- # docs=DOCS_URL_RULES,
540
- # )
541
- pass
534
+ rasa.shared.utils.io.raise_warning(
535
+ f"Found a rule-based policy in your configuration but "
536
+ f"no rule-based training data. Please add rule-based "
537
+ f"stories to your training data or "
538
+ f"remove the rule-based policy "
539
+ f"(`{RulePolicy.__name__}`) from your "
540
+ f"your configuration.",
541
+ docs=DOCS_URL_RULES,
542
+ )
542
543
  elif not consuming_rule_data and contains_rule_tracker:
543
- # rasa.shared.utils.io.raise_warning(
544
- # f"Found rule-based training data but no policy supporting rule-based "
545
- # f"data. Please add `{RulePolicy.__name__}` "
546
- # f"or another rule-supporting "
547
- # f"policy to the `policies` section in `{DEFAULT_CONFIG_PATH}`.",
548
- # docs=DOCS_URL_RULES,
549
- # )
550
- pass
544
+ rasa.shared.utils.io.raise_warning(
545
+ f"Found rule-based training data but no policy supporting rule-based "
546
+ f"data. Please add `{RulePolicy.__name__}` "
547
+ f"or another rule-supporting "
548
+ f"policy to the `policies` section in `{DEFAULT_CONFIG_PATH}`.",
549
+ docs=DOCS_URL_RULES,
550
+ )
rasa/hooks.py CHANGED
@@ -19,7 +19,7 @@ hookimpl = pluggy.HookimplMarker("rasa")
19
19
  logger = logging.getLogger(__name__)
20
20
 
21
21
 
22
- @hookimpl
22
+ @hookimpl # type: ignore[misc]
23
23
  def refine_cli(
24
24
  subparsers: "SubParsersAction",
25
25
  parent_parsers: List[argparse.ArgumentParser],
@@ -37,7 +37,7 @@ def refine_cli(
37
37
  return None
38
38
 
39
39
 
40
- @hookimpl
40
+ @hookimpl # type: ignore[misc]
41
41
  def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Text]:
42
42
  from rasa.cli import x as rasa_x
43
43
  from rasa.tracing import config
@@ -59,21 +59,21 @@ def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Tex
59
59
  return endpoints_file
60
60
 
61
61
 
62
- @hookimpl
62
+ @hookimpl # type: ignore[misc]
63
63
  def init_telemetry(endpoints_file: Optional[Text]) -> None:
64
64
  import rasa.telemetry
65
65
 
66
66
  rasa.telemetry.identify_endpoint_config_traits(endpoints_file)
67
67
 
68
68
 
69
- @hookimpl
69
+ @hookimpl # type: ignore[misc]
70
70
  def init_managers(endpoints_file: Optional[Text]) -> None:
71
71
  from rasa.core.secrets_manager.factory import load_secret_manager
72
72
 
73
73
  load_secret_manager(endpoints_file)
74
74
 
75
75
 
76
- @hookimpl
76
+ @hookimpl # type: ignore[misc]
77
77
  def create_tracker_store(
78
78
  endpoint_config: Union["TrackerStore", "EndpointConfig"],
79
79
  domain: "Domain",
@@ -61,9 +61,9 @@ def patch_invoke_llm_in_generators(mock_impl: Callable) -> Generator:
61
61
  try:
62
62
  # apply the monkey-patch everywhere
63
63
  for cls in originals:
64
- cls.invoke_llm = mock_impl # type: ignore[method-assign]
64
+ cls.invoke_llm = mock_impl # type: ignore[assignment]
65
65
  yield
66
66
  finally:
67
67
  # restore originals (even if an exception happened)
68
68
  for cls, orig in originals.items():
69
- cls.invoke_llm = orig # type: ignore[method-assign]
69
+ cls.invoke_llm = orig # type: ignore[assignment]
@@ -39,11 +39,9 @@ from rasa.model_manager.trainer_service import (
39
39
  update_training_status,
40
40
  )
41
41
  from rasa.model_manager.utils import (
42
- InvalidPathException,
43
42
  get_logs_content,
44
43
  logs_base_path,
45
44
  models_base_path,
46
- subpath,
47
45
  )
48
46
  from rasa.model_manager.warm_rasa_process import (
49
47
  initialize_warm_rasa_process,
@@ -53,6 +51,7 @@ from rasa.server import ErrorResponse
53
51
  from rasa.shared.exceptions import InvalidConfigException
54
52
  from rasa.shared.utils.yaml import dump_obj_as_yaml_to_string
55
53
  from rasa.studio.upload import build_calm_import_parts
54
+ from rasa.utils.io import InvalidPathException, subpath
56
55
 
57
56
  dotenv.load_dotenv()
58
57
 
@@ -571,10 +570,10 @@ def external_blueprint() -> Blueprint:
571
570
  """Create a blueprint for the model manager API."""
572
571
  from rasa.core.channels.socketio import SocketBlueprint
573
572
 
574
- sio = AsyncServer(async_mode="sanic", cors_allowed_origins="*")
575
- bp = SocketBlueprint(sio, "", "model_api_external")
573
+ sio_server = AsyncServer(async_mode="sanic", cors_allowed_origins="*")
574
+ bp = SocketBlueprint(sio_server, "", "model_api_external")
576
575
 
577
- create_bridge_server(sio, running_bots)
576
+ create_bridge_server(sio_server, running_bots)
578
577
 
579
578
  @bp.get("/health")
580
579
  async def health(request: Request) -> response.HTTPResponse:
@@ -15,11 +15,11 @@ from rasa.model_manager import config
15
15
  from rasa.model_manager.utils import (
16
16
  logs_path,
17
17
  models_base_path,
18
- subpath,
19
18
  write_encoded_data_to_file,
20
19
  )
21
20
  from rasa.model_manager.warm_rasa_process import start_rasa_process
22
21
  from rasa.studio.prompts import handle_prompts
22
+ from rasa.utils.io import subpath
23
23
 
24
24
  structlogger = structlog.get_logger()
25
25