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/core/processor.py CHANGED
@@ -69,7 +69,6 @@ from rasa.shared.constants import (
69
69
  UTTER_PREFIX,
70
70
  )
71
71
  from rasa.shared.core.constants import (
72
- ACTION_AGENT_REQUEST_USER_INPUT_NAME,
73
72
  ACTION_CORRECT_FLOW_SLOT,
74
73
  ACTION_EXTRACT_SLOTS,
75
74
  ACTION_LISTEN_NAME,
@@ -730,7 +729,7 @@ class MessageProcessor:
730
729
  if not self.domain or self.domain.is_empty():
731
730
  return
732
731
 
733
- intent = parse_data[INTENT][INTENT_NAME_KEY]
732
+ intent = parse_data["intent"][INTENT_NAME_KEY]
734
733
  if intent and intent not in self.domain.intents:
735
734
  rasa.shared.utils.io.raise_warning(
736
735
  f"Parsed an intent '{intent}' "
@@ -739,7 +738,7 @@ class MessageProcessor:
739
738
  docs=DOCS_URL_DOMAINS,
740
739
  )
741
740
 
742
- entities = parse_data[ENTITIES] or []
741
+ entities = parse_data["entities"] or []
743
742
  for element in entities:
744
743
  entity = element["entity"]
745
744
  if entity and entity not in self.domain.entities:
@@ -823,9 +822,9 @@ class MessageProcessor:
823
822
  self._update_full_retrieval_intent(parse_data)
824
823
  structlogger.debug(
825
824
  "processor.message.parse",
826
- parse_data_text=copy.deepcopy(parse_data[TEXT]),
827
- parse_data_intent=parse_data[INTENT],
828
- parse_data_entities=copy.deepcopy(parse_data[ENTITIES]),
825
+ parse_data_text=copy.deepcopy(parse_data["text"]),
826
+ parse_data_intent=parse_data["intent"],
827
+ parse_data_entities=copy.deepcopy(parse_data["entities"]),
829
828
  )
830
829
 
831
830
  self._check_for_unseen_features(parse_data)
@@ -974,7 +973,7 @@ class MessageProcessor:
974
973
  f"invalid intent: {parse_data[INTENT]['name']}. "
975
974
  f"Returning CannotHandleCommand() as a fallback."
976
975
  ),
977
- invalid_intent=parse_data[INTENT][INTENT_NAME_KEY],
976
+ invalid_intent=parse_data[INTENT]["name"],
978
977
  )
979
978
  commands.append(
980
979
  CannotHandleCommand(RASA_PATTERN_CANNOT_HANDLE_INVALID_INTENT)
@@ -984,7 +983,7 @@ class MessageProcessor:
984
983
 
985
984
  def _contains_undefined_intent(self, message: Message) -> bool:
986
985
  """Checks if the message contains an undefined intent."""
987
- intent_name = message.get(INTENT, {}).get(INTENT_NAME_KEY)
986
+ intent_name = message.get(INTENT, {}).get("name")
988
987
  return intent_name is not None and intent_name not in self.domain.intents
989
988
 
990
989
  async def _parse_message_with_graph(
@@ -1034,8 +1033,8 @@ class MessageProcessor:
1034
1033
  tracker.update(
1035
1034
  UserUttered(
1036
1035
  message.text,
1037
- parse_data[INTENT],
1038
- parse_data[ENTITIES],
1036
+ parse_data["intent"],
1037
+ parse_data["entities"],
1039
1038
  parse_data,
1040
1039
  input_channel=message.input_channel,
1041
1040
  message_id=message.message_id,
@@ -1044,7 +1043,7 @@ class MessageProcessor:
1044
1043
  self.domain,
1045
1044
  )
1046
1045
 
1047
- if parse_data[ENTITIES]:
1046
+ if parse_data["entities"]:
1048
1047
  self._log_slots(tracker)
1049
1048
 
1050
1049
  plugin_manager().hook.after_new_user_message(tracker=tracker)
@@ -1195,11 +1194,7 @@ class MessageProcessor:
1195
1194
  `False` if `action_name` is `ACTION_LISTEN_NAME` or
1196
1195
  `ACTION_SESSION_START_NAME`, otherwise `True`.
1197
1196
  """
1198
- return action_name not in (
1199
- ACTION_LISTEN_NAME,
1200
- ACTION_SESSION_START_NAME,
1201
- ACTION_AGENT_REQUEST_USER_INPUT_NAME,
1202
- )
1197
+ return action_name not in (ACTION_LISTEN_NAME, ACTION_SESSION_START_NAME)
1203
1198
 
1204
1199
  async def execute_side_effects(
1205
1200
  self,
@@ -1472,9 +1467,11 @@ class MessageProcessor:
1472
1467
  # tracker has never expired if sessions are disabled
1473
1468
  return False
1474
1469
 
1475
- user_uttered_event = tracker.get_last_event_for(UserUttered)
1470
+ user_uttered_event: Optional[UserUttered] = tracker.get_last_event_for(
1471
+ UserUttered
1472
+ )
1476
1473
 
1477
- if not user_uttered_event or not isinstance(user_uttered_event, UserUttered):
1474
+ if not user_uttered_event:
1478
1475
  # there is no user event so far so the session should not be considered
1479
1476
  # expired
1480
1477
  return False
rasa/core/run.py CHANGED
@@ -30,7 +30,6 @@ from rasa import server, telemetry
30
30
  from rasa.constants import ENV_SANIC_BACKLOG
31
31
  from rasa.core import agent, channels, constants
32
32
  from rasa.core.agent import Agent
33
- from rasa.core.available_agents import AvailableAgents
34
33
  from rasa.core.available_endpoints import AvailableEndpoints
35
34
  from rasa.core.channels import console
36
35
  from rasa.core.channels.channel import InputChannel
@@ -43,10 +42,20 @@ from rasa.utils import licensing
43
42
  logger = logging.getLogger() # get the root logger
44
43
 
45
44
 
46
- def create_http_input_channels(
45
+ def create_input_channels(
47
46
  channel: Optional[Text], credentials_file: Optional[Text]
48
47
  ) -> List[InputChannel]:
49
- """Instantiate the chosen input channel."""
48
+ """Instantiate the chosen input channel.
49
+
50
+ Args:
51
+ channel (optional): The name of the specific input channel to create.
52
+ credentials_file: Path to the credentials file containing channel credentials.
53
+
54
+ Returns:
55
+ A list of instantiated input channels. If a specific channel is provided,
56
+ it returns a list with that single channel. If no channel is specified,
57
+ it returns a list of all channels defined in the credentials file.
58
+ """
50
59
  if credentials_file:
51
60
  all_credentials = read_config_file(credentials_file)
52
61
  else:
@@ -142,7 +151,6 @@ def configure_app(
142
151
  route: Optional[Text] = "/webhooks/",
143
152
  port: int = constants.DEFAULT_SERVER_PORT,
144
153
  endpoints: Optional[AvailableEndpoints] = None,
145
- sub_agents: Optional[AvailableAgents] = None,
146
154
  log_file: Optional[Text] = None,
147
155
  conversation_id: Optional[Text] = uuid.uuid4().hex,
148
156
  use_syslog: bool = False,
@@ -171,7 +179,6 @@ def configure_app(
171
179
  jwt_private_key=jwt_private_key,
172
180
  jwt_method=jwt_method,
173
181
  endpoints=endpoints,
174
- sub_agents=sub_agents,
175
182
  is_inspector_enabled=is_inspector_enabled,
176
183
  )
177
184
  )
@@ -236,7 +243,6 @@ def serve_application(
236
243
  jwt_private_key: Optional[Text] = None,
237
244
  jwt_method: Optional[Text] = None,
238
245
  endpoints: Optional[AvailableEndpoints] = None,
239
- sub_agents: Optional[AvailableAgents] = None,
240
246
  remote_storage: Optional[StorageType] = None,
241
247
  log_file: Optional[Text] = None,
242
248
  ssl_certificate: Optional[Text] = None,
@@ -257,7 +263,7 @@ def serve_application(
257
263
  if not channel and not credentials:
258
264
  channel = "cmdline"
259
265
 
260
- input_channels = create_http_input_channels(channel, credentials)
266
+ input_channels = create_input_channels(channel, credentials)
261
267
 
262
268
  if inspect:
263
269
  logger.info("Starting development inspector.")
@@ -277,7 +283,6 @@ def serve_application(
277
283
  jwt_method,
278
284
  port=port,
279
285
  endpoints=endpoints,
280
- sub_agents=sub_agents,
281
286
  log_file=log_file,
282
287
  conversation_id=conversation_id,
283
288
  use_syslog=use_syslog,
@@ -297,7 +302,7 @@ def serve_application(
297
302
  logger.info(f"Starting Rasa server on {protocol}://{interface}:{port}")
298
303
 
299
304
  app.register_listener(
300
- partial(load_agent_on_start, model_path, endpoints, remote_storage, sub_agents),
305
+ partial(load_agent_on_start, model_path, endpoints, remote_storage),
301
306
  "before_server_start",
302
307
  )
303
308
 
@@ -335,7 +340,6 @@ async def load_agent_on_start(
335
340
  model_path: Text,
336
341
  endpoints: AvailableEndpoints,
337
342
  remote_storage: Optional[StorageType],
338
- sub_agents: Optional[AvailableAgents],
339
343
  app: Sanic,
340
344
  loop: AbstractEventLoop,
341
345
  ) -> Agent:
@@ -348,7 +352,6 @@ async def load_agent_on_start(
348
352
  model_path=model_path,
349
353
  remote_storage=remote_storage,
350
354
  endpoints=endpoints,
351
- sub_agents=sub_agents,
352
355
  loop=loop,
353
356
  )
354
357
 
@@ -542,7 +542,7 @@ class FailSafeTrackerStore(TrackerStore):
542
542
  return self._tracker_store.domain
543
543
 
544
544
  @domain.setter
545
- def domain(self, domain: Optional[Domain]) -> None:
545
+ def domain(self, domain: Domain) -> None:
546
546
  self._tracker_store.domain = domain
547
547
 
548
548
  if self._fallback_tracker_store:
@@ -805,7 +805,9 @@ class AwaitableTrackerStore(TrackerStore):
805
805
  async def retrieve(self, sender_id: Text) -> Optional[DialogueStateTracker]:
806
806
  """Wrapper to call `retrieve` method of primary tracker store."""
807
807
  result = self._tracker_store.retrieve(sender_id)
808
- return await result if isawaitable(result) else result
808
+ return (
809
+ await result if isawaitable(result) else result # type: ignore[return-value, misc]
810
+ )
809
811
 
810
812
  async def keys(self) -> Iterable[Text]:
811
813
  """Wrapper to call `keys` method of primary tracker store."""
@@ -832,4 +834,6 @@ class AwaitableTrackerStore(TrackerStore):
832
834
  ) -> Optional[DialogueStateTracker]:
833
835
  """Wrapper to call `retrieve_full_tracker` method of primary tracker store."""
834
836
  result = self._tracker_store.retrieve_full_tracker(conversation_id)
835
- return await result if isawaitable(result) else result
837
+ return (
838
+ await result if isawaitable(result) else result # type: ignore[return-value, misc]
839
+ )
rasa/core/train.py CHANGED
@@ -46,7 +46,7 @@ async def train_comparison_models(
46
46
  output=str(Path(output_path, f"run_{r +1}")),
47
47
  fixed_model_name=config_name + PERCENTAGE_KEY + str(percentage),
48
48
  additional_arguments={
49
- **(additional_arguments or {}),
49
+ **additional_arguments,
50
50
  "exclusion_percentage": percentage,
51
51
  },
52
52
  )
@@ -91,7 +91,7 @@ from rasa.shared.core.training_data.visualization import (
91
91
  )
92
92
  from rasa.shared.exceptions import InvalidConfigException
93
93
  from rasa.shared.importers.rasa import TrainingDataImporter
94
- from rasa.shared.nlu.constants import ENTITIES, INTENT, INTENT_NAME_KEY, TEXT
94
+ from rasa.shared.nlu.constants import INTENT_NAME_KEY, TEXT
95
95
 
96
96
  # noinspection PyProtectedMember
97
97
  from rasa.shared.nlu.training_data import loading
@@ -789,7 +789,7 @@ def _collect_messages(events: List[Dict[Text, Any]]) -> List[Message]:
789
789
  data = event.get("parse_data", {})
790
790
  rasa_nlu_training_data_utils.remove_untrainable_entities_from(data)
791
791
  msg = Message.build(
792
- data[TEXT], data[INTENT][INTENT_NAME_KEY], data[ENTITIES]
792
+ data["text"], data["intent"][INTENT_NAME_KEY], data["entities"]
793
793
  )
794
794
  messages.append(msg)
795
795
  elif event.get("event") == UserUtteranceReverted.type_name and messages:
@@ -901,13 +901,13 @@ def _get_nlu_target_format(export_path: Text) -> Text:
901
901
 
902
902
  def _entities_from_messages(messages: List[Message]) -> List[Text]:
903
903
  """Return all entities that occur in at least one of the messages."""
904
- return list({e["entity"] for m in messages for e in m.data.get(ENTITIES, [])})
904
+ return list({e["entity"] for m in messages for e in m.data.get("entities", [])})
905
905
 
906
906
 
907
907
  def _intents_from_messages(messages: List[Message]) -> Set[Text]:
908
908
  """Return all intents that occur in at least one of the messages."""
909
909
  # set of distinct intents
910
- distinct_intents = {m.data[INTENT] for m in messages if INTENT in m.data}
910
+ distinct_intents = {m.data["intent"] for m in messages if "intent" in m.data}
911
911
 
912
912
  return distinct_intents
913
913
 
@@ -1191,11 +1191,11 @@ def _as_md_message(parse_data: Dict[Text, Any]) -> Text:
1191
1191
  """Display the parse data of a message in markdown format."""
1192
1192
  from rasa.shared.nlu.training_data.formats.readerwriter import TrainingDataWriter
1193
1193
 
1194
- if parse_data.get(TEXT, "").startswith(INTENT_MESSAGE_PREFIX):
1195
- return parse_data[TEXT]
1194
+ if parse_data.get("text", "").startswith(INTENT_MESSAGE_PREFIX):
1195
+ return parse_data["text"]
1196
1196
 
1197
- if not parse_data.get(ENTITIES):
1198
- parse_data[ENTITIES] = []
1197
+ if not parse_data.get("entities"):
1198
+ parse_data["entities"] = []
1199
1199
 
1200
1200
  return TrainingDataWriter.generate_message(parse_data)
1201
1201
 
@@ -1207,7 +1207,7 @@ def _validate_user_regex(latest_message: Dict[Text, Any], intents: List[Text]) -
1207
1207
  `/greet`. Return `True` if the intent is a known one.
1208
1208
  """
1209
1209
  parse_data = latest_message.get("parse_data", {})
1210
- intent = parse_data.get(INTENT, {}).get(INTENT_NAME_KEY)
1210
+ intent = parse_data.get("intent", {}).get(INTENT_NAME_KEY)
1211
1211
 
1212
1212
  if intent in intents:
1213
1213
  return True
@@ -1224,8 +1224,8 @@ async def _validate_user_text(
1224
1224
  """
1225
1225
  parse_data = latest_message.get("parse_data", {})
1226
1226
  text = _as_md_message(parse_data)
1227
- intent = parse_data.get(INTENT, {}).get(INTENT_NAME_KEY)
1228
- entities = parse_data.get(ENTITIES, [])
1227
+ intent = parse_data.get("intent", {}).get(INTENT_NAME_KEY)
1228
+ entities = parse_data.get("entities", [])
1229
1229
  if entities:
1230
1230
  message = (
1231
1231
  f"Is the intent '{intent}' correct for '{text}' and are "
@@ -1276,9 +1276,9 @@ async def _validate_nlu(
1276
1276
 
1277
1277
  entities = await _correct_entities(latest_message, endpoint, conversation_id)
1278
1278
  corrected_nlu = {
1279
- INTENT: corrected_intent,
1280
- ENTITIES: entities,
1281
- TEXT: latest_message.get("text"),
1279
+ "intent": corrected_intent,
1280
+ "entities": entities,
1281
+ "text": latest_message.get("text"),
1282
1282
  }
1283
1283
 
1284
1284
  await _correct_wrong_nlu(corrected_nlu, events, endpoint, conversation_id)
@@ -1315,9 +1315,9 @@ def _merge_annotated_and_original_entities(
1315
1315
  # overwrite entities which have already been
1316
1316
  # annotated in the original annotation to preserve
1317
1317
  # additional entity parser information
1318
- entities = parse_annotated.get(ENTITIES, [])[:]
1318
+ entities = parse_annotated.get("entities", [])[:]
1319
1319
  for i, entity in enumerate(entities):
1320
- for original_entity in parse_original.get(ENTITIES, []):
1320
+ for original_entity in parse_original.get("entities", []):
1321
1321
  if _is_same_entity_annotation(entity, original_entity):
1322
1322
  entities[i] = original_entity
1323
1323
  break
@@ -14,7 +14,7 @@ from rasa.shared.core.constants import (
14
14
  from rasa.shared.core.domain import Domain, State
15
15
  from rasa.shared.core.events import ActionExecuted, Event
16
16
  from rasa.shared.core.generator import TrackerWithCachedStates
17
- from rasa.shared.nlu.constants import INTENT, TEXT
17
+ from rasa.shared.nlu.constants import TEXT
18
18
  from rasa.shared.nlu.training_data.message import Message
19
19
 
20
20
  logger = logging.getLogger(__name__)
@@ -362,12 +362,12 @@ def _get_previous_event(
362
362
  previous_event_type = "bot utterance"
363
363
  previous_event_name = state[PREVIOUS_ACTION]["action_text"]
364
364
  elif USER in state.keys():
365
- if INTENT in state[USER]:
365
+ if "intent" in state[USER]:
366
366
  previous_event_type = "intent"
367
- previous_event_name = state[USER][INTENT]
368
- elif TEXT in state[USER]:
367
+ previous_event_name = state[USER]["intent"]
368
+ elif "text" in state[USER]:
369
369
  previous_event_type = "user utterance"
370
- previous_event_name = state[USER][TEXT]
370
+ previous_event_name = state[USER]["text"]
371
371
 
372
372
  if not isinstance(previous_event_name, (str, type(None))):
373
373
  # While the Substate type doesn't restrict the value of `action_text` /
rasa/core/utils.py CHANGED
@@ -1,9 +1,8 @@
1
1
  import logging
2
2
  import os
3
- import re
4
3
  from pathlib import Path
5
4
  from socket import SOCK_DGRAM, SOCK_STREAM
6
- from typing import TYPE_CHECKING, Any, Dict, List, Optional, Set, Text, Tuple, Union
5
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Set, Text, Tuple, Union
7
6
 
8
7
  import numpy as np
9
8
  import structlog
@@ -360,22 +359,3 @@ def should_force_slot_filling(
360
359
  return True, slot_name
361
360
 
362
361
  return False, None
363
-
364
-
365
- def get_slot_names_from_exit_conditions(exit_conditions: List[str]) -> List[str]:
366
- """Extract slot names from exit conditions.
367
-
368
- Args:
369
- exit_conditions: The exit conditions to extract slot names from.
370
-
371
- Returns:
372
- A list of slot names.
373
- """
374
- # Find all unique names matching "slots.<name>"
375
- return list(
376
- {
377
- name
378
- for condition in exit_conditions
379
- for name in re.findall(r"\bslots\.(\w+)", condition)
380
- }
381
- )
@@ -8,9 +8,6 @@ from rasa.dialogue_understanding.commands.chit_chat_answer_command import (
8
8
  )
9
9
  from rasa.dialogue_understanding.commands.clarify_command import ClarifyCommand
10
10
  from rasa.dialogue_understanding.commands.command import Command
11
- from rasa.dialogue_understanding.commands.continue_agent_command import (
12
- ContinueAgentCommand,
13
- )
14
11
  from rasa.dialogue_understanding.commands.correct_slots_command import (
15
12
  CorrectedSlot,
16
13
  CorrectSlotsCommand,
@@ -32,9 +29,6 @@ from rasa.dialogue_understanding.commands.noop_command import NoopCommand
32
29
  from rasa.dialogue_understanding.commands.repeat_bot_messages_command import (
33
30
  RepeatBotMessagesCommand,
34
31
  )
35
- from rasa.dialogue_understanding.commands.restart_agent_command import (
36
- RestartAgentCommand,
37
- )
38
32
  from rasa.dialogue_understanding.commands.restart_command import RestartCommand
39
33
  from rasa.dialogue_understanding.commands.session_end_command import SessionEndCommand
40
34
  from rasa.dialogue_understanding.commands.session_start_command import (
@@ -68,6 +62,4 @@ __all__ = [
68
62
  "SessionEndCommand",
69
63
  "RepeatBotMessagesCommand",
70
64
  "RestartCommand",
71
- "ContinueAgentCommand",
72
- "RestartAgentCommand",
73
65
  ]
@@ -2,13 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import re
4
4
  from dataclasses import dataclass
5
- from typing import Any, Dict, List, Optional, Tuple
5
+ from typing import Any, Dict, List
6
6
 
7
7
  import structlog
8
8
 
9
- from rasa.core.policies.flows.flow_executor import (
10
- remove_agent_stack_frame,
11
- )
12
9
  from rasa.dialogue_understanding.commands.command import Command
13
10
  from rasa.dialogue_understanding.commands.command_syntax_manager import (
14
11
  CommandSyntaxManager,
@@ -16,13 +13,12 @@ from rasa.dialogue_understanding.commands.command_syntax_manager import (
16
13
  )
17
14
  from rasa.dialogue_understanding.patterns.cancel import CancelPatternFlowStackFrame
18
15
  from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
19
- from rasa.dialogue_understanding.stack.frames import DialogueStackFrame
20
16
  from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
21
17
  FlowStackFrameType,
22
18
  UserFlowStackFrame,
23
19
  )
24
20
  from rasa.dialogue_understanding.stack.utils import top_user_flow_frame
25
- from rasa.shared.core.events import AgentCancelled, Event, FlowCancelled
21
+ from rasa.shared.core.events import Event, FlowCancelled
26
22
  from rasa.shared.core.flows import FlowsList
27
23
  from rasa.shared.core.trackers import DialogueStateTracker
28
24
 
@@ -52,7 +48,8 @@ class CancelFlowCommand(Command):
52
48
  """Selects the frames that were canceled.
53
49
 
54
50
  Args:
55
- stack: The dialogue stack.
51
+ dialogue_stack: The dialogue stack.
52
+ current_flow: The current flow.
56
53
 
57
54
  Returns:
58
55
  The frames that were canceled.
@@ -109,19 +106,6 @@ class CancelFlowCommand(Command):
109
106
  )
110
107
  return []
111
108
 
112
- if agent_frame := original_tracker.stack.find_active_agent_stack_frame_for_flow(
113
- current_flow.id
114
- ):
115
- structlogger.debug(
116
- "cancel_command.remove_agent_stack_frame",
117
- command=self,
118
- frame=agent_frame,
119
- )
120
- remove_agent_stack_frame(stack, agent_frame.agent_id)
121
- applied_events.append(
122
- AgentCancelled(agent_id=agent_frame.agent_id, flow_id=current_flow.id)
123
- )
124
-
125
109
  # we pass in the original dialogue stack (before any of the currently
126
110
  # predicted commands were applied) to make sure we don't cancel any
127
111
  # frames that were added by the currently predicted commands.
@@ -175,80 +159,3 @@ class CancelFlowCommand(Command):
175
159
  CommandSyntaxManager.get_syntax_version(),
176
160
  mapper[CommandSyntaxManager.get_default_syntax_version()],
177
161
  )
178
-
179
- def cancel_flow(
180
- self,
181
- tracker: DialogueStateTracker,
182
- stack: DialogueStack,
183
- flow_id: str,
184
- ) -> List[Event]:
185
- """Cancels a flow by flow id."""
186
- applied_events: List[Event] = []
187
-
188
- frames_to_cancel, user_frame_to_cancel = self._collect_frames_to_cancel(
189
- stack, flow_id
190
- )
191
-
192
- # if the flow is not on the stack, do nothing
193
- if user_frame_to_cancel is None:
194
- structlogger.error(
195
- "cancel_flow_command.cancel_flow.no_user_frame_to_cancel",
196
- command=self,
197
- )
198
- return []
199
-
200
- frames_ids_to_cancel = [frame.frame_id for frame in frames_to_cancel]
201
-
202
- stack.push(
203
- CancelPatternFlowStackFrame(
204
- canceled_name=flow_id,
205
- canceled_frames=frames_ids_to_cancel,
206
- )
207
- )
208
-
209
- # create flow cancelled event
210
- applied_events.extend(
211
- [
212
- FlowCancelled(
213
- user_frame_to_cancel.flow_id, user_frame_to_cancel.step_id
214
- ),
215
- ]
216
- )
217
-
218
- update_stack_events = tracker.create_stack_updated_events(stack)
219
-
220
- return applied_events + update_stack_events
221
-
222
- def _collect_frames_to_cancel(
223
- self, stack: DialogueStack, target_flow_id: str
224
- ) -> Tuple[List[DialogueStackFrame], Optional[UserFlowStackFrame]]:
225
- """Collect frames that need to be cancelled.
226
-
227
- Args:
228
- stack: The stack to collect frames from.
229
- target_flow_id: The ID of the flow to cancel.
230
-
231
- Returns:
232
- A tuple containing (frames_to_cancel, frame_to_cancel).
233
- """
234
- frames_to_cancel: List[DialogueStackFrame] = []
235
- frame_found = False
236
- frame_to_cancel = None
237
-
238
- for frame in stack.frames:
239
- if isinstance(frame, UserFlowStackFrame) and (
240
- frame.frame_type == FlowStackFrameType.REGULAR
241
- or frame.frame_type == FlowStackFrameType.INTERRUPT
242
- ):
243
- if frame.flow_id == target_flow_id:
244
- frames_to_cancel.append(frame)
245
- frame_to_cancel = frame
246
- frame_found = True
247
- continue
248
- elif frame_found:
249
- break
250
-
251
- if frame_found:
252
- frames_to_cancel.append(frame)
253
-
254
- return list(frames_to_cancel), frame_to_cancel
@@ -12,10 +12,6 @@ from rasa.dialogue_understanding.commands.free_form_answer_command import (
12
12
  FreeFormAnswerCommand,
13
13
  )
14
14
  from rasa.dialogue_understanding.patterns.chitchat import ChitchatPatternFlowStackFrame
15
- from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
16
- AgentStackFrame,
17
- AgentState,
18
- )
19
15
  from rasa.shared.core.events import Event
20
16
  from rasa.shared.core.flows import FlowsList
21
17
  from rasa.shared.core.trackers import DialogueStateTracker
@@ -56,13 +52,6 @@ class ChitChatAnswerCommand(FreeFormAnswerCommand):
56
52
  The events to apply to the tracker.
57
53
  """
58
54
  stack = tracker.stack
59
-
60
- # if the top stack frame is an agent stack frame, we need to
61
- # update the state to INTERRUPTED
62
- if top_stack_frame := stack.top():
63
- if isinstance(top_stack_frame, AgentStackFrame):
64
- top_stack_frame.state = AgentState.INTERRUPTED
65
-
66
55
  stack.push(ChitchatPatternFlowStackFrame())
67
56
  return tracker.create_stack_updated_events(stack)
68
57
 
@@ -13,10 +13,6 @@ from rasa.dialogue_understanding.commands.command_syntax_manager import (
13
13
  )
14
14
  from rasa.dialogue_understanding.commands.utils import extract_cleaned_options
15
15
  from rasa.dialogue_understanding.patterns.clarify import ClarifyPatternFlowStackFrame
16
- from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
17
- AgentStackFrame,
18
- AgentState,
19
- )
20
16
  from rasa.shared.core.events import Event
21
17
  from rasa.shared.core.flows import FlowsList
22
18
  from rasa.shared.core.trackers import DialogueStateTracker
@@ -89,12 +85,6 @@ class ClarifyCommand(Command):
89
85
  if flow is not None
90
86
  ]
91
87
 
92
- # if the top stack frame is an agent stack frame, we need to
93
- # update the state to INTERRUPTED
94
- if top_stack_frame := stack.top():
95
- if isinstance(top_stack_frame, AgentStackFrame):
96
- top_stack_frame.state = AgentState.INTERRUPTED
97
-
98
88
  stack.push(ClarifyPatternFlowStackFrame(names=names))
99
89
  return tracker.create_stack_updated_events(stack)
100
90
 
@@ -12,10 +12,6 @@ from rasa.dialogue_understanding.commands.free_form_answer_command import (
12
12
  FreeFormAnswerCommand,
13
13
  )
14
14
  from rasa.dialogue_understanding.patterns.search import SearchPatternFlowStackFrame
15
- from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
16
- AgentStackFrame,
17
- AgentState,
18
- )
19
15
  from rasa.shared.core.events import Event
20
16
  from rasa.shared.core.flows import FlowsList
21
17
  from rasa.shared.core.trackers import DialogueStateTracker
@@ -56,13 +52,6 @@ class KnowledgeAnswerCommand(FreeFormAnswerCommand):
56
52
  The events to apply to the tracker.
57
53
  """
58
54
  stack = tracker.stack
59
-
60
- # if the top stack frame is an agent stack frame, we need to
61
- # update the state to INTERRUPTED
62
- if top_stack_frame := stack.top():
63
- if isinstance(top_stack_frame, AgentStackFrame):
64
- top_stack_frame.state = AgentState.INTERRUPTED
65
-
66
55
  stack.push(SearchPatternFlowStackFrame())
67
56
  return tracker.create_stack_updated_events(stack)
68
57