rasa-pro 3.13.1a17__py3-none-any.whl → 3.13.1.dev1__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 (267) hide show
  1. rasa/__init__.py +6 -0
  2. rasa/cli/scaffold.py +3 -22
  3. rasa/core/actions/action.py +3 -5
  4. rasa/core/actions/direct_custom_actions_executor.py +8 -15
  5. rasa/core/channels/studio_chat.py +10 -34
  6. rasa/core/policies/enterprise_search_policy.py +8 -7
  7. rasa/core/policies/flows/flow_executor.py +1 -8
  8. rasa/dialogue_understanding/generator/flow_retrieval.py +9 -10
  9. rasa/dialogue_understanding/generator/llm_based_command_generator.py +15 -4
  10. rasa/dialogue_understanding/generator/llm_command_generator.py +3 -1
  11. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +48 -3
  12. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +15 -1
  13. rasa/hooks.py +55 -0
  14. rasa/llm_fine_tuning/utils.py +4 -2
  15. rasa/model_manager/model_api.py +3 -2
  16. rasa/model_manager/runner_service.py +1 -1
  17. rasa/model_manager/trainer_service.py +9 -12
  18. rasa/model_manager/utils.py +29 -1
  19. rasa/monkey_patches.py +91 -0
  20. rasa/shared/constants.py +6 -0
  21. rasa/shared/core/domain.py +15 -62
  22. rasa/shared/core/flows/flow_step.py +1 -7
  23. rasa/shared/core/flows/yaml_flows_io.py +8 -16
  24. rasa/shared/core/slots.py +0 -4
  25. rasa/shared/importers/importer.py +0 -6
  26. rasa/shared/importers/utils.py +1 -77
  27. rasa/shared/providers/constants.py +10 -0
  28. rasa/shared/providers/llm/_base_litellm_client.py +14 -4
  29. rasa/shared/providers/llm/litellm_router_llm_client.py +23 -12
  30. rasa/shared/providers/llm/llm_client.py +19 -15
  31. rasa/shared/providers/llm/self_hosted_llm_client.py +23 -18
  32. rasa/studio/upload.py +45 -10
  33. rasa/telemetry.py +1 -2
  34. rasa/tracing/instrumentation/attribute_extractors.py +1 -0
  35. rasa/utils/io.py +9 -27
  36. rasa/utils/json_utils.py +1 -6
  37. rasa/utils/log_utils.py +1 -5
  38. rasa/utils/plotting.py +1 -1
  39. rasa/validator.py +3 -7
  40. rasa/version.py +1 -1
  41. {rasa_pro-3.13.1a17.dist-info → rasa_pro-3.13.1.dev1.dist-info}/METADATA +9 -9
  42. {rasa_pro-3.13.1a17.dist-info → rasa_pro-3.13.1.dev1.dist-info}/RECORD +45 -266
  43. rasa/builder/README.md +0 -120
  44. rasa/builder/__init__.py +0 -0
  45. rasa/builder/config.py +0 -79
  46. rasa/builder/create_openai_vector_store.py +0 -228
  47. rasa/builder/exceptions.py +0 -55
  48. rasa/builder/inkeep-rag-response-schema.json +0 -64
  49. rasa/builder/inkeep_document_retrieval.py +0 -212
  50. rasa/builder/llm-helper-schema.json +0 -69
  51. rasa/builder/llm_context.py +0 -81
  52. rasa/builder/llm_helper_prompt.jinja2 +0 -245
  53. rasa/builder/llm_service.py +0 -317
  54. rasa/builder/logging_utils.py +0 -51
  55. rasa/builder/main.py +0 -147
  56. rasa/builder/models.py +0 -225
  57. rasa/builder/project_generator.py +0 -282
  58. rasa/builder/scrape_rasa_docs.py +0 -97
  59. rasa/builder/service.py +0 -742
  60. rasa/builder/skill_to_bot_prompt.jinja2 +0 -164
  61. rasa/builder/training_service.py +0 -132
  62. rasa/builder/validation_service.py +0 -93
  63. rasa/cli/project_templates/finance/actions/__init__.py +0 -0
  64. rasa/cli/project_templates/finance/actions/action_add_payee.py +0 -47
  65. rasa/cli/project_templates/finance/actions/action_ask_account.py +0 -50
  66. rasa/cli/project_templates/finance/actions/action_ask_account_from.py +0 -50
  67. rasa/cli/project_templates/finance/actions/action_ask_card.py +0 -47
  68. rasa/cli/project_templates/finance/actions/action_check_balance.py +0 -40
  69. rasa/cli/project_templates/finance/actions/action_check_card_existence.py +0 -35
  70. rasa/cli/project_templates/finance/actions/action_check_payee_existence.py +0 -40
  71. rasa/cli/project_templates/finance/actions/action_check_sufficient_funds.py +0 -41
  72. rasa/cli/project_templates/finance/actions/action_list_payees.py +0 -45
  73. rasa/cli/project_templates/finance/actions/action_process_immediate_payment.py +0 -18
  74. rasa/cli/project_templates/finance/actions/action_remove_payee.py +0 -49
  75. rasa/cli/project_templates/finance/actions/action_schedule_payment.py +0 -19
  76. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -69
  77. rasa/cli/project_templates/finance/actions/action_update_card_status.py +0 -45
  78. rasa/cli/project_templates/finance/actions/action_validate_payment_date.py +0 -36
  79. rasa/cli/project_templates/finance/actions/database.py +0 -276
  80. rasa/cli/project_templates/finance/config.yml +0 -32
  81. rasa/cli/project_templates/finance/credentials.yml +0 -33
  82. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  83. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  84. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  85. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  86. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  87. rasa/cli/project_templates/finance/csvs/payees.csv +0 -10
  88. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  89. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  90. rasa/cli/project_templates/finance/data/flows/add_payee.yml +0 -29
  91. rasa/cli/project_templates/finance/data/flows/block_card.yml +0 -66
  92. rasa/cli/project_templates/finance/data/flows/check_balance.yml +0 -9
  93. rasa/cli/project_templates/finance/data/flows/list_payees.yml +0 -5
  94. rasa/cli/project_templates/finance/data/flows/remove_payee.yml +0 -21
  95. rasa/cli/project_templates/finance/data/flows/select_card.yml +0 -12
  96. rasa/cli/project_templates/finance/data/flows/transfer_money.yml +0 -67
  97. rasa/cli/project_templates/finance/data/flows/welcome.yml +0 -14
  98. rasa/cli/project_templates/finance/data/nlu.yml +0 -29
  99. rasa/cli/project_templates/finance/data/patterns/pattern_chitchat.yml +0 -7
  100. rasa/cli/project_templates/finance/data/patterns/pattern_completed.yml +0 -6
  101. rasa/cli/project_templates/finance/data/patterns/pattern_search.yml +0 -5
  102. rasa/cli/project_templates/finance/data/patterns/pattern_session_start.yml +0 -9
  103. rasa/cli/project_templates/finance/data/source/accounts.json +0 -51
  104. rasa/cli/project_templates/finance/data/source/advisors.json +0 -44
  105. rasa/cli/project_templates/finance/data/source/appointments.json +0 -1474
  106. rasa/cli/project_templates/finance/data/source/branches.json +0 -47
  107. rasa/cli/project_templates/finance/data/source/cards.json +0 -72
  108. rasa/cli/project_templates/finance/data/source/payees.json +0 -74
  109. rasa/cli/project_templates/finance/data/source/transactions.json +0 -492
  110. rasa/cli/project_templates/finance/data/source/users.json +0 -29
  111. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  112. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  113. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  114. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  115. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  116. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  117. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  118. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  119. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  120. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  121. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  122. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  123. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  124. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  125. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  126. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  127. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  128. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  129. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  130. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  131. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  132. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  133. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  134. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  135. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  136. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  137. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  138. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  139. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  140. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  141. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  142. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  143. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  144. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  145. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  146. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  147. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  148. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  149. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  150. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  151. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  152. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  153. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  154. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  155. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  156. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  157. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  158. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  159. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  160. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  161. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  162. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  163. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  164. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  165. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  166. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  167. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  168. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  169. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  170. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  171. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  172. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  173. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  174. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  175. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  176. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  177. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  178. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  179. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  180. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  181. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  182. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  183. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  184. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  185. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  186. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  187. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  188. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  189. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  190. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  191. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  192. rasa/cli/project_templates/finance/domain/add_payee.yml +0 -47
  193. rasa/cli/project_templates/finance/domain/block_card.yml +0 -101
  194. rasa/cli/project_templates/finance/domain/check_balance.yml +0 -9
  195. rasa/cli/project_templates/finance/domain/default_actions.yml +0 -16
  196. rasa/cli/project_templates/finance/domain/default_flows.yml +0 -33
  197. rasa/cli/project_templates/finance/domain/list_payees.yml +0 -4
  198. rasa/cli/project_templates/finance/domain/remove_payee.yml +0 -16
  199. rasa/cli/project_templates/finance/domain/select_card.yml +0 -12
  200. rasa/cli/project_templates/finance/domain/transfer_money.yml +0 -79
  201. rasa/cli/project_templates/finance/endpoints.yml +0 -62
  202. rasa/cli/project_templates/finance/prompts/command-generator.jinja2 +0 -57
  203. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
  204. rasa/cli/project_templates/finance/tests/conversation_repair/cancellations.yml +0 -12
  205. rasa/cli/project_templates/finance/tests/conversation_repair/cannot_handle.yml +0 -7
  206. rasa/cli/project_templates/finance/tests/conversation_repair/chitchat.yml +0 -7
  207. rasa/cli/project_templates/finance/tests/conversation_repair/clarification.yml +0 -9
  208. rasa/cli/project_templates/finance/tests/conversation_repair/completion.yml +0 -18
  209. rasa/cli/project_templates/finance/tests/conversation_repair/corrections.yml +0 -17
  210. rasa/cli/project_templates/finance/tests/conversation_repair/digressions.yml +0 -32
  211. rasa/cli/project_templates/finance/tests/conversation_repair/human_handoff.yml +0 -21
  212. rasa/cli/project_templates/finance/tests/conversation_repair/skipping_collect_steps.yml +0 -16
  213. rasa/cli/project_templates/finance/tests/demo_scripts/main.yml +0 -16
  214. rasa/cli/project_templates/finance/tests/happy_paths/balance_verification.yml +0 -15
  215. rasa/cli/project_templates/finance/tests/happy_paths/banking_questions.yml +0 -12
  216. rasa/cli/project_templates/finance/tests/happy_paths/card_blocking.yml +0 -52
  217. rasa/cli/project_templates/finance/tests/happy_paths/money_transfer.yml +0 -136
  218. rasa/cli/project_templates/finance/tests/happy_paths/payee_management.yml +0 -27
  219. rasa/cli/project_templates/finance/tests/happy_paths/user_greeted.yml +0 -5
  220. rasa/cli/project_templates/plain/actions/__init__.py +0 -0
  221. rasa/cli/project_templates/plain/config.yml +0 -17
  222. rasa/cli/project_templates/plain/credentials.yml +0 -33
  223. rasa/cli/project_templates/plain/data/patterns/pattern_session_start.yml +0 -7
  224. rasa/cli/project_templates/plain/domain.yml +0 -5
  225. rasa/cli/project_templates/plain/endpoints.yml +0 -58
  226. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  227. rasa/cli/project_templates/telco/actions/actions_billing.py +0 -197
  228. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +0 -43
  229. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +0 -23
  230. rasa/cli/project_templates/telco/actions/actions_session_start.py +0 -13
  231. rasa/cli/project_templates/telco/config.yml +0 -25
  232. rasa/cli/project_templates/telco/credentials.yml +0 -33
  233. rasa/cli/project_templates/telco/csvs/billing.csv +0 -10
  234. rasa/cli/project_templates/telco/csvs/customers.csv +0 -5
  235. rasa/cli/project_templates/telco/data/flows/flow_global.yml +0 -5
  236. rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +0 -8
  237. rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +0 -7
  238. rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +0 -73
  239. rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +0 -45
  240. rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +0 -7
  241. rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +0 -6
  242. rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +0 -7
  243. rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +0 -9
  244. rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +0 -1
  245. rasa/cli/project_templates/telco/docs/restart_router.txt +0 -6
  246. rasa/cli/project_templates/telco/docs/run_speed_test.txt +0 -6
  247. rasa/cli/project_templates/telco/domain/domain_global.yml +0 -29
  248. rasa/cli/project_templates/telco/domain/domain_patterns.yml +0 -17
  249. rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +0 -20
  250. rasa/cli/project_templates/telco/domain/domain_reset_router.yml +0 -11
  251. rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +0 -24
  252. rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +0 -74
  253. rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +0 -102
  254. rasa/cli/project_templates/telco/endpoints.yml +0 -60
  255. rasa/cli/project_templates/telco/prompts/command-generator.jinja2 +0 -57
  256. rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +0 -62
  257. rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +0 -130
  258. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +0 -68
  259. rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +0 -13
  260. rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +0 -47
  261. rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +0 -21
  262. rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +0 -15
  263. rasa/shared/importers/static.py +0 -63
  264. rasa/utils/openapi.py +0 -144
  265. {rasa_pro-3.13.1a17.dist-info → rasa_pro-3.13.1.dev1.dist-info}/NOTICE +0 -0
  266. {rasa_pro-3.13.1a17.dist-info → rasa_pro-3.13.1.dev1.dist-info}/WHEEL +0 -0
  267. {rasa_pro-3.13.1a17.dist-info → rasa_pro-3.13.1.dev1.dist-info}/entry_points.txt +0 -0
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from typing import Any, Dict, List, Union
4
+ from typing import Any, Dict, List, Optional, Union
5
5
 
6
6
  import structlog
7
7
 
@@ -79,13 +79,14 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
79
79
 
80
80
  @suppress_logs(log_level=logging.WARNING)
81
81
  def _text_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
82
- """
83
- Synchronously generate completions for given prompt.
82
+ """Synchronously generate completions for given prompt.
84
83
 
85
84
  Args:
86
85
  prompt: Prompt to generate the completion for.
86
+
87
87
  Returns:
88
88
  List of message completions.
89
+
89
90
  Raises:
90
91
  ProviderClientAPIException: If the API request fails.
91
92
  """
@@ -103,13 +104,14 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
103
104
 
104
105
  @suppress_logs(log_level=logging.WARNING)
105
106
  async def _atext_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
106
- """
107
- Asynchronously generate completions for given prompt.
107
+ """Asynchronously generate completions for given prompt.
108
108
 
109
109
  Args:
110
110
  prompt: Prompt to generate the completion for.
111
+
111
112
  Returns:
112
113
  List of message completions.
114
+
113
115
  Raises:
114
116
  ProviderClientAPIException: If the API request fails.
115
117
  """
@@ -122,9 +124,12 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
122
124
  raise ProviderClientAPIException(e)
123
125
 
124
126
  @suppress_logs(log_level=logging.WARNING)
125
- def completion(self, messages: Union[List[dict], List[str], str]) -> LLMResponse:
126
- """
127
- Synchronously generate completions for given list of messages.
127
+ def completion(
128
+ self,
129
+ messages: Union[List[dict], List[str], str],
130
+ metadata: Optional[Dict[str, Any]] = None,
131
+ ) -> LLMResponse:
132
+ """Synchronously generate completions for given list of messages.
128
133
 
129
134
  Method overrides the base class method to call the appropriate
130
135
  completion method based on the configuration. If the chat completions
@@ -140,8 +145,11 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
140
145
  - a list of messages. Each message is a string and will be formatted
141
146
  as a user message.
142
147
  - a single message as a string which will be formatted as user message.
148
+ metadata: Optional metadata to be passed to the LLM call.
149
+
143
150
  Returns:
144
151
  List of message completions.
152
+
145
153
  Raises:
146
154
  ProviderClientAPIException: If the API request fails.
147
155
  """
@@ -158,10 +166,11 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
158
166
 
159
167
  @suppress_logs(log_level=logging.WARNING)
160
168
  async def acompletion(
161
- self, messages: Union[List[dict], List[str], str]
169
+ self,
170
+ messages: Union[List[dict], List[str], str],
171
+ metadata: Optional[Dict[str, Any]] = None,
162
172
  ) -> LLMResponse:
163
- """
164
- Asynchronously generate completions for given list of messages.
173
+ """Asynchronously generate completions for given list of messages.
165
174
 
166
175
  Method overrides the base class method to call the appropriate
167
176
  completion method based on the configuration. If the chat completions
@@ -177,8 +186,11 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
177
186
  - a list of messages. Each message is a string and will be formatted
178
187
  as a user message.
179
188
  - a single message as a string which will be formatted as user message.
189
+ metadata: Optional metadata to be passed to the LLM call.
190
+
180
191
  Returns:
181
192
  List of message completions.
193
+
182
194
  Raises:
183
195
  ProviderClientAPIException: If the API request fails.
184
196
  """
@@ -198,7 +210,6 @@ class LiteLLMRouterLLMClient(_BaseLiteLLMRouterClient, _BaseLiteLLMClient):
198
210
  """Returns the completion arguments for invoking a call through
199
211
  LiteLLM's completion functions.
200
212
  """
201
-
202
213
  return {
203
214
  **self._litellm_extra_parameters,
204
215
  LITE_LLM_MODEL_FIELD: self.model_group_id,
@@ -1,21 +1,19 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Dict, List, Protocol, Union, runtime_checkable
3
+ from typing import Any, Dict, List, Optional, Protocol, Union, runtime_checkable
4
4
 
5
5
  from rasa.shared.providers.llm.llm_response import LLMResponse
6
6
 
7
7
 
8
8
  @runtime_checkable
9
9
  class LLMClient(Protocol):
10
- """
11
- Protocol for an LLM client that specifies the interface for interacting
10
+ """Protocol for an LLM client that specifies the interface for interacting
12
11
  with the API.
13
12
  """
14
13
 
15
14
  @classmethod
16
15
  def from_config(cls, config: dict) -> LLMClient:
17
- """
18
- Initializes the llm client with the given configuration.
16
+ """Initializes the llm client with the given configuration.
19
17
 
20
18
  This class method should be implemented to parse the given
21
19
  configuration and create an instance of an llm client.
@@ -24,17 +22,19 @@ class LLMClient(Protocol):
24
22
 
25
23
  @property
26
24
  def config(self) -> Dict:
27
- """
28
- Returns the configuration for that the llm client is initialized with.
25
+ """Returns the configuration for that the llm client is initialized with.
29
26
 
30
27
  This property should be implemented to return a dictionary containing
31
28
  the configuration settings for the llm client.
32
29
  """
33
30
  ...
34
31
 
35
- def completion(self, messages: Union[List[dict], List[str], str]) -> LLMResponse:
36
- """
37
- Synchronously generate completions for given list of messages.
32
+ def completion(
33
+ self,
34
+ messages: Union[List[dict], List[str], str],
35
+ metadata: Optional[Dict[str, Any]] = None,
36
+ ) -> LLMResponse:
37
+ """Synchronously generate completions for given list of messages.
38
38
 
39
39
  This method should be implemented to take a list of messages (as
40
40
  strings) and return a list of completions (as strings).
@@ -48,16 +48,19 @@ class LLMClient(Protocol):
48
48
  - a list of messages. Each message is a string and will be formatted
49
49
  as a user message.
50
50
  - a single message as a string which will be formatted as user message.
51
+ metadata: Optional metadata to be passed to the LLM call.
52
+
51
53
  Returns:
52
54
  LLMResponse
53
55
  """
54
56
  ...
55
57
 
56
58
  async def acompletion(
57
- self, messages: Union[List[dict], List[str], str]
59
+ self,
60
+ messages: Union[List[dict], List[str], str],
61
+ metadata: Optional[Dict[str, Any]] = None,
58
62
  ) -> LLMResponse:
59
- """
60
- Asynchronously generate completions for given list of messages.
63
+ """Asynchronously generate completions for given list of messages.
61
64
 
62
65
  This method should be implemented to take a list of messages (as
63
66
  strings) and return a list of completions (as strings).
@@ -71,14 +74,15 @@ class LLMClient(Protocol):
71
74
  - a list of messages. Each message is a string and will be formatted
72
75
  as a user message.
73
76
  - a single message as a string which will be formatted as user message.
77
+ metadata: Optional metadata to be passed to the LLM call.
78
+
74
79
  Returns:
75
80
  LLMResponse
76
81
  """
77
82
  ...
78
83
 
79
84
  def validate_client_setup(self, *args, **kwargs) -> None: # type: ignore
80
- """
81
- Perform client setup validation.
85
+ """Perform client setup validation.
82
86
 
83
87
  This method should be implemented to validate whether the client can be
84
88
  used with the parameters provided through configuration or environment
@@ -95,8 +95,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
95
95
 
96
96
  @property
97
97
  def provider(self) -> str:
98
- """
99
- Returns the provider name for the self hosted llm client.
98
+ """Returns the provider name for the self hosted llm client.
100
99
 
101
100
  Returns:
102
101
  String representing the provider name.
@@ -105,8 +104,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
105
104
 
106
105
  @property
107
106
  def model(self) -> str:
108
- """
109
- Returns the model name for the self hosted llm client.
107
+ """Returns the model name for the self hosted llm client.
110
108
 
111
109
  Returns:
112
110
  String representing the model name.
@@ -115,8 +113,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
115
113
 
116
114
  @property
117
115
  def api_base(self) -> str:
118
- """
119
- Returns the base URL for the API endpoint.
116
+ """Returns the base URL for the API endpoint.
120
117
 
121
118
  Returns:
122
119
  String representing the base URL.
@@ -125,8 +122,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
125
122
 
126
123
  @property
127
124
  def api_type(self) -> Optional[str]:
128
- """
129
- Returns the type of the API endpoint. Currently only OpenAI is supported.
125
+ """Returns the type of the API endpoint. Currently only OpenAI is supported.
130
126
 
131
127
  Returns:
132
128
  String representing the API type.
@@ -135,8 +131,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
135
131
 
136
132
  @property
137
133
  def api_version(self) -> Optional[str]:
138
- """
139
- Returns the version of the API endpoint.
134
+ """Returns the version of the API endpoint.
140
135
 
141
136
  Returns:
142
137
  String representing the API version.
@@ -145,8 +140,8 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
145
140
 
146
141
  @property
147
142
  def config(self) -> Dict:
148
- """
149
- Returns the configuration for the self hosted llm client.
143
+ """Returns the configuration for the self hosted llm client.
144
+
150
145
  Returns:
151
146
  Dictionary containing the configuration.
152
147
  """
@@ -195,13 +190,14 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
195
190
 
196
191
  @suppress_logs(log_level=logging.WARNING)
197
192
  def _text_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
198
- """
199
- Synchronously generate completions for given prompt.
193
+ """Synchronously generate completions for given prompt.
200
194
 
201
195
  Args:
202
196
  prompt: Prompt to generate the completion for.
197
+
203
198
  Returns:
204
199
  List of message completions.
200
+
205
201
  Raises:
206
202
  ProviderClientAPIException: If the API request fails.
207
203
  """
@@ -213,8 +209,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
213
209
 
214
210
  @suppress_logs(log_level=logging.WARNING)
215
211
  async def _atext_completion(self, prompt: Union[List[str], str]) -> LLMResponse:
216
- """
217
- Asynchronously generate completions for given prompt.
212
+ """Asynchronously generate completions for given prompt.
218
213
 
219
214
  Args:
220
215
  messages: The message can be,
@@ -225,8 +220,10 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
225
220
  - a list of messages. Each message is a string and will be formatted
226
221
  as a user message.
227
222
  - a single message as a string which will be formatted as user message.
223
+
228
224
  Returns:
229
225
  List of message completions.
226
+
230
227
  Raises:
231
228
  ProviderClientAPIException: If the API request fails.
232
229
  """
@@ -237,7 +234,9 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
237
234
  raise ProviderClientAPIException(e)
238
235
 
239
236
  async def acompletion(
240
- self, messages: Union[List[dict], List[str], str]
237
+ self,
238
+ messages: Union[List[dict], List[str], str],
239
+ metadata: Optional[Dict[str, Any]] = None,
241
240
  ) -> LLMResponse:
242
241
  """Asynchronous completion of the model with the given messages.
243
242
 
@@ -255,6 +254,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
255
254
  - a list of messages. Each message is a string and will be formatted
256
255
  as a user message.
257
256
  - a single message as a string which will be formatted as user message.
257
+ metadata: Optional metadata to be passed to the LLM call.
258
258
 
259
259
  Returns:
260
260
  The completion response.
@@ -263,7 +263,11 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
263
263
  return await super().acompletion(messages)
264
264
  return await self._atext_completion(messages)
265
265
 
266
- def completion(self, messages: Union[List[dict], List[str], str]) -> LLMResponse:
266
+ def completion(
267
+ self,
268
+ messages: Union[List[dict], List[str], str],
269
+ metadata: Optional[Dict[str, Any]] = None,
270
+ ) -> LLMResponse:
267
271
  """Completion of the model with the given messages.
268
272
 
269
273
  Method overrides the base class method to call the appropriate
@@ -273,6 +277,7 @@ class SelfHostedLLMClient(_BaseLiteLLMClient):
273
277
 
274
278
  Args:
275
279
  messages: The messages to be used for completion.
280
+ metadata: Optional metadata to be passed to the LLM call.
276
281
 
277
282
  Returns:
278
283
  The completion response.
rasa/studio/upload.py CHANGED
@@ -7,6 +7,7 @@ from typing import Any, Dict, Iterable, List, Optional, Set, Text, Tuple, Union
7
7
  import questionary
8
8
  import requests
9
9
  import structlog
10
+ from pydantic import BaseModel, Field
10
11
 
11
12
  import rasa.cli.telemetry
12
13
  import rasa.cli.utils
@@ -23,13 +24,9 @@ from rasa.shared.constants import (
23
24
  DEFAULT_DOMAIN_PATHS,
24
25
  )
25
26
  from rasa.shared.core.domain import Domain
26
- from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader
27
+ from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader, YamlFlowsWriter
27
28
  from rasa.shared.exceptions import RasaException
28
- from rasa.shared.importers.importer import TrainingDataImporter
29
- from rasa.shared.importers.utils import (
30
- CALMUserData,
31
- extract_calm_import_parts_from_importer,
32
- )
29
+ from rasa.shared.importers.importer import FlowSyncImporter, TrainingDataImporter
33
30
  from rasa.shared.nlu.training_data.formats.rasa_yaml import (
34
31
  RasaYAMLReader,
35
32
  RasaYAMLWriter,
@@ -37,6 +34,7 @@ from rasa.shared.nlu.training_data.formats.rasa_yaml import (
37
34
  from rasa.shared.utils.llm import collect_custom_prompts
38
35
  from rasa.shared.utils.yaml import (
39
36
  dump_obj_as_yaml_to_string,
37
+ read_yaml,
40
38
  read_yaml_file,
41
39
  )
42
40
  from rasa.studio import results_logger
@@ -45,7 +43,6 @@ from rasa.studio.config import StudioConfig
45
43
  from rasa.studio.results_logger import StudioResult, with_studio_error_handler
46
44
  from rasa.studio.utils import validate_argument_paths
47
45
  from rasa.telemetry import track_upload_to_studio_failed
48
- from rasa.utils.json_utils import extract_values
49
46
 
50
47
  structlogger = structlog.get_logger()
51
48
 
@@ -71,6 +68,16 @@ DOMAIN_KEYS = [
71
68
  ]
72
69
 
73
70
 
71
+ class CALMImportParts(BaseModel):
72
+ """All pieces that will be uploaded to Rasa Studio."""
73
+
74
+ flows: Dict[str, Any]
75
+ domain: Dict[str, Any]
76
+ config: Dict[str, Any]
77
+ endpoints: Dict[str, Any]
78
+ nlu: Dict[str, Any] = Field(default_factory=dict)
79
+
80
+
74
81
  def _get_selected_entities_and_intents(
75
82
  args: argparse.Namespace,
76
83
  intents_from_files: Set[Text],
@@ -187,6 +194,11 @@ config_keys = [
187
194
  ]
188
195
 
189
196
 
197
+ def extract_values(data: Dict, keys: List[Text]) -> Dict:
198
+ """Extracts values for given keys from a dictionary."""
199
+ return {key: data.get(key) for key in keys if data.get(key)}
200
+
201
+
190
202
  def _get_assistant_name(config: Dict[Text, Any]) -> str:
191
203
  config_assistant_id = config.get("assistant_id", "")
192
204
  assistant_name = questionary.text(
@@ -225,7 +237,7 @@ def build_calm_import_parts(
225
237
  config_path: Text,
226
238
  endpoints_path: Optional[Text] = None,
227
239
  assistant_name: Optional[Text] = None,
228
- ) -> Tuple[str, CALMUserData]:
240
+ ) -> Tuple[str, CALMImportParts]:
229
241
  """Builds the parts of the assistant to be uploaded to Studio.
230
242
 
231
243
  Args:
@@ -248,10 +260,33 @@ def build_calm_import_parts(
248
260
  endpoints = read_yaml_file(endpoints_path, expand_env_vars=False)
249
261
  assistant_name = assistant_name or _get_assistant_name(config)
250
262
 
251
- parts = extract_calm_import_parts_from_importer(
252
- importer=importer,
263
+ domain_from_files = importer.get_user_domain().as_dict()
264
+ domain = extract_values(domain_from_files, DOMAIN_KEYS)
265
+
266
+ flow_importer = FlowSyncImporter.load_from_dict(
267
+ training_data_paths=[str(data_path)], expand_env_vars=False
268
+ )
269
+
270
+ flows = list(flow_importer.get_user_flows())
271
+ flows_yaml = YamlFlowsWriter().dumps(flows)
272
+ flows = read_yaml(flows_yaml, expand_env_vars=False)
273
+
274
+ nlu_importer = TrainingDataImporter.load_from_dict(
275
+ training_data_paths=[str(data_path)], expand_env_vars=False
276
+ )
277
+ nlu_data = nlu_importer.get_nlu_data()
278
+ nlu_examples = nlu_data.filter_training_examples(
279
+ lambda ex: ex.get("intent") in nlu_data.intents
280
+ )
281
+ nlu_examples_yaml = RasaYAMLWriter().dumps(nlu_examples)
282
+ nlu = read_yaml(nlu_examples_yaml, expand_env_vars=False)
283
+
284
+ parts = CALMImportParts(
285
+ flows=flows,
286
+ domain=domain,
253
287
  config=config,
254
288
  endpoints=endpoints,
289
+ nlu=nlu,
255
290
  )
256
291
 
257
292
  return assistant_name, parts
rasa/telemetry.py CHANGED
@@ -1426,7 +1426,6 @@ def track_shell_started(model_type: Text, assistant_id: Text) -> None:
1426
1426
 
1427
1427
  Args:
1428
1428
  model_type: Type of the model, core / nlu or rasa.
1429
- assistant_id: ID of the assistant being inspected.
1430
1429
  """
1431
1430
  _track(
1432
1431
  TELEMETRY_SHELL_STARTED_EVENT,
@@ -1998,7 +1997,7 @@ def _extract_stream_pii(event_broker: Optional["EventBroker"]) -> bool:
1998
1997
  def track_privacy_enabled(
1999
1998
  privacy_config: "PrivacyConfig", event_broker: Optional["EventBroker"]
2000
1999
  ) -> None:
2001
- """Track when PII management capability is enabled."""
2000
+ """Track when PII management capability is enabled"""
2002
2001
  stream_pii = _extract_stream_pii(event_broker)
2003
2002
  privacy_properties = _extract_privacy_enabled_event_properties(
2004
2003
  privacy_config, stream_pii
@@ -383,6 +383,7 @@ def extract_llm_config(
383
383
  def extract_attrs_for_llm_based_command_generator(
384
384
  self: "LLMBasedCommandGenerator",
385
385
  prompt: str,
386
+ metadata: Optional[Dict[str, Any]] = None,
386
387
  ) -> Dict[str, Any]:
387
388
  from rasa.dialogue_understanding.generator.flow_retrieval import (
388
389
  DEFAULT_EMBEDDINGS_CONFIG,
rasa/utils/io.py CHANGED
@@ -26,7 +26,6 @@ from typing_extensions import Protocol
26
26
 
27
27
  import rasa.shared.constants
28
28
  import rasa.shared.utils.io
29
- from rasa.shared.exceptions import RasaException
30
29
 
31
30
  if TYPE_CHECKING:
32
31
  from prompt_toolkit.validation import Validator
@@ -125,7 +124,9 @@ def create_path(file_path: Text) -> None:
125
124
  def file_type_validator(
126
125
  valid_file_types: List[Text], error_message: Text
127
126
  ) -> Type["Validator"]:
128
- """Creates a file type validator class for the questionary package."""
127
+ """Creates a `Validator` class which can be used with `questionary` to validate
128
+ file paths.
129
+ """
129
130
 
130
131
  def is_valid(path: Text) -> bool:
131
132
  return path is not None and any(
@@ -136,7 +137,9 @@ def file_type_validator(
136
137
 
137
138
 
138
139
  def not_empty_validator(error_message: Text) -> Type["Validator"]:
139
- """Creates a not empty validator class for the questionary package."""
140
+ """Creates a `Validator` class which can be used with `questionary` to validate
141
+ that the user entered something other than whitespace.
142
+ """
140
143
 
141
144
  def is_valid(input: Text) -> bool:
142
145
  return input is not None and input.strip() != ""
@@ -147,7 +150,9 @@ def not_empty_validator(error_message: Text) -> Type["Validator"]:
147
150
  def create_validator(
148
151
  function: Callable[[Text], bool], error_message: Text
149
152
  ) -> Type["Validator"]:
150
- """Helper method to create a validator class from a callable function."""
153
+ """Helper method to create `Validator` classes from callable functions. Should be
154
+ removed when questionary supports `Validator` objects.
155
+ """
151
156
  from prompt_toolkit.document import Document
152
157
  from prompt_toolkit.validation import ValidationError, Validator
153
158
 
@@ -245,26 +250,3 @@ def write_yaml(
245
250
 
246
251
  with Path(target).open("w", encoding="utf-8") as outfile:
247
252
  dumper.dump(data, outfile, transform=transform)
248
-
249
-
250
- class InvalidPathException(RasaException):
251
- """Raised if a path is invalid - e.g. path traversal is detected."""
252
-
253
-
254
- def subpath(parent: str, child: str) -> str:
255
- """Return the path to the child directory of the parent directory.
256
-
257
- Ensures, that child doesn't navigate to parent directories. Prevents
258
- path traversal. Raises an InvalidPathException if the path is invalid.
259
-
260
- Based on Snyk's directory traversal mitigation:
261
- https://learn.snyk.io/lesson/directory-traversal/
262
- """
263
- safe_path = os.path.abspath(os.path.join(parent, child))
264
- parent = os.path.abspath(parent)
265
-
266
- common_base = os.path.commonpath([parent, safe_path])
267
- if common_base != parent:
268
- raise InvalidPathException(f"Invalid path: {safe_path}")
269
-
270
- return safe_path
rasa/utils/json_utils.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import json
2
2
  from decimal import Decimal
3
- from typing import Any, Dict, List, Text
3
+ from typing import Any, Text
4
4
 
5
5
 
6
6
  class DecimalEncoder(json.JSONEncoder):
@@ -58,8 +58,3 @@ def replace_decimals_with_floats(obj: Any) -> Any:
58
58
  Input `obj` with all `Decimal` types replaced by `float`s.
59
59
  """
60
60
  return json.loads(json.dumps(obj, cls=DecimalEncoder))
61
-
62
-
63
- def extract_values(data: Dict, keys: List[Text]) -> Dict:
64
- """Extracts values for given keys from a dictionary."""
65
- return {key: data.get(key) for key in keys if data.get(key)}
rasa/utils/log_utils.py CHANGED
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import logging
4
4
  import os
5
5
  import sys
6
- from typing import Any, List, Optional
6
+ from typing import Any, Optional
7
7
 
8
8
  import structlog
9
9
  from structlog.dev import ConsoleRenderer
@@ -37,7 +37,6 @@ class HumanConsoleRenderer(ConsoleRenderer):
37
37
  def configure_structlog(
38
38
  log_level: Optional[int] = None,
39
39
  include_time: bool = False,
40
- additional_processors: Optional[List[structlog.processors.Processor]] = None,
41
40
  ) -> None:
42
41
  """Configure logging of the server."""
43
42
  if log_level is None: # Log level NOTSET is 0 so we use `is None` here
@@ -76,9 +75,6 @@ def configure_structlog(
76
75
  if include_time:
77
76
  shared_processors.append(structlog.processors.TimeStamper(fmt="iso"))
78
77
 
79
- if additional_processors:
80
- shared_processors.extend(additional_processors)
81
-
82
78
  if not FORCE_JSON_LOGGING and sys.stderr.isatty():
83
79
  # Pretty printing when we run in a terminal session.
84
80
  # Automatically prints pretty tracebacks when "rich" is installed
rasa/utils/plotting.py CHANGED
@@ -99,7 +99,7 @@ def plot_confusion_matrix(
99
99
  zmax = confusion_matrix.max() if len(confusion_matrix) > 0 else 1
100
100
  plt.clf()
101
101
  if not color_map:
102
- color_map = plt.cm.get_cmap("Blues")
102
+ color_map = plt.cm.Blues
103
103
  plt.imshow(
104
104
  confusion_matrix,
105
105
  interpolation="nearest",
rasa/validator.py CHANGED
@@ -630,14 +630,11 @@ class Validator:
630
630
  flow_id: str,
631
631
  ) -> bool:
632
632
  """Validates that a collect step can have either an action or an utterance.
633
-
634
633
  Also logs an error if neither an action nor an utterance is defined.
635
634
 
636
635
  Args:
637
636
  collect: the name of the slot to collect
638
637
  all_good: boolean value indicating the validation status
639
- domain_slots: the slots of the domain
640
- flow_id: the id of the flow
641
638
 
642
639
  Returns:
643
640
  False, if validation failed, true, otherwise
@@ -686,10 +683,9 @@ class Validator:
686
683
  has_action_defined=has_action_defined,
687
684
  flow=flow_id,
688
685
  event_info=(
689
- f"The collect step '{collect.collect}' has neither a response "
690
- f"nor an action defined, nor an initial value defined in the "
691
- f"domain. You can fix this by adding a response named "
692
- f"'{collect.utter}' used in the collect step."
686
+ f"The collect step '{collect.collect}' has neither an utterance "
687
+ f"nor an action defined, or an initial value defined in the domain."
688
+ f"You need to define either an utterance or an action."
693
689
  ),
694
690
  )
695
691
  all_good = False
rasa/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # this file will automatically be changed,
2
2
  # do not add anything but the version number here!
3
- __version__ = "3.13.1a17"
3
+ __version__ = "3.13.1.dev1"