rasa-pro 3.9.18__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 (662) hide show
  1. README.md +415 -0
  2. rasa/__init__.py +10 -0
  3. rasa/__main__.py +156 -0
  4. rasa/anonymization/__init__.py +2 -0
  5. rasa/anonymization/anonymisation_rule_yaml_reader.py +91 -0
  6. rasa/anonymization/anonymization_pipeline.py +286 -0
  7. rasa/anonymization/anonymization_rule_executor.py +260 -0
  8. rasa/anonymization/anonymization_rule_orchestrator.py +120 -0
  9. rasa/anonymization/schemas/config.yml +47 -0
  10. rasa/anonymization/utils.py +118 -0
  11. rasa/api.py +146 -0
  12. rasa/cli/__init__.py +5 -0
  13. rasa/cli/arguments/__init__.py +0 -0
  14. rasa/cli/arguments/data.py +81 -0
  15. rasa/cli/arguments/default_arguments.py +165 -0
  16. rasa/cli/arguments/evaluate.py +65 -0
  17. rasa/cli/arguments/export.py +51 -0
  18. rasa/cli/arguments/interactive.py +74 -0
  19. rasa/cli/arguments/run.py +204 -0
  20. rasa/cli/arguments/shell.py +13 -0
  21. rasa/cli/arguments/test.py +211 -0
  22. rasa/cli/arguments/train.py +263 -0
  23. rasa/cli/arguments/visualize.py +34 -0
  24. rasa/cli/arguments/x.py +30 -0
  25. rasa/cli/data.py +292 -0
  26. rasa/cli/e2e_test.py +586 -0
  27. rasa/cli/evaluate.py +222 -0
  28. rasa/cli/export.py +250 -0
  29. rasa/cli/inspect.py +63 -0
  30. rasa/cli/interactive.py +164 -0
  31. rasa/cli/license.py +65 -0
  32. rasa/cli/markers.py +78 -0
  33. rasa/cli/project_templates/__init__.py +0 -0
  34. rasa/cli/project_templates/calm/actions/__init__.py +0 -0
  35. rasa/cli/project_templates/calm/actions/action_template.py +27 -0
  36. rasa/cli/project_templates/calm/actions/add_contact.py +30 -0
  37. rasa/cli/project_templates/calm/actions/db.py +57 -0
  38. rasa/cli/project_templates/calm/actions/list_contacts.py +22 -0
  39. rasa/cli/project_templates/calm/actions/remove_contact.py +35 -0
  40. rasa/cli/project_templates/calm/config.yml +12 -0
  41. rasa/cli/project_templates/calm/credentials.yml +33 -0
  42. rasa/cli/project_templates/calm/data/flows/add_contact.yml +31 -0
  43. rasa/cli/project_templates/calm/data/flows/list_contacts.yml +14 -0
  44. rasa/cli/project_templates/calm/data/flows/remove_contact.yml +29 -0
  45. rasa/cli/project_templates/calm/db/contacts.json +10 -0
  46. rasa/cli/project_templates/calm/domain/add_contact.yml +39 -0
  47. rasa/cli/project_templates/calm/domain/list_contacts.yml +17 -0
  48. rasa/cli/project_templates/calm/domain/remove_contact.yml +38 -0
  49. rasa/cli/project_templates/calm/domain/shared.yml +10 -0
  50. rasa/cli/project_templates/calm/e2e_tests/cancelations/user_cancels_during_a_correction.yml +16 -0
  51. rasa/cli/project_templates/calm/e2e_tests/cancelations/user_changes_mind_on_a_whim.yml +7 -0
  52. rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_handle.yml +20 -0
  53. rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_name.yml +19 -0
  54. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_adds_contact_to_their_list.yml +15 -0
  55. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_lists_contacts.yml +5 -0
  56. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact.yml +11 -0
  57. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact_from_list.yml +12 -0
  58. rasa/cli/project_templates/calm/endpoints.yml +45 -0
  59. rasa/cli/project_templates/default/actions/__init__.py +0 -0
  60. rasa/cli/project_templates/default/actions/actions.py +27 -0
  61. rasa/cli/project_templates/default/config.yml +44 -0
  62. rasa/cli/project_templates/default/credentials.yml +33 -0
  63. rasa/cli/project_templates/default/data/nlu.yml +91 -0
  64. rasa/cli/project_templates/default/data/rules.yml +13 -0
  65. rasa/cli/project_templates/default/data/stories.yml +30 -0
  66. rasa/cli/project_templates/default/domain.yml +34 -0
  67. rasa/cli/project_templates/default/endpoints.yml +42 -0
  68. rasa/cli/project_templates/default/tests/test_stories.yml +91 -0
  69. rasa/cli/project_templates/tutorial/actions.py +22 -0
  70. rasa/cli/project_templates/tutorial/config.yml +11 -0
  71. rasa/cli/project_templates/tutorial/credentials.yml +33 -0
  72. rasa/cli/project_templates/tutorial/data/flows.yml +8 -0
  73. rasa/cli/project_templates/tutorial/data/patterns.yml +6 -0
  74. rasa/cli/project_templates/tutorial/domain.yml +21 -0
  75. rasa/cli/project_templates/tutorial/endpoints.yml +45 -0
  76. rasa/cli/run.py +135 -0
  77. rasa/cli/scaffold.py +269 -0
  78. rasa/cli/shell.py +141 -0
  79. rasa/cli/studio/__init__.py +0 -0
  80. rasa/cli/studio/download.py +62 -0
  81. rasa/cli/studio/studio.py +266 -0
  82. rasa/cli/studio/train.py +59 -0
  83. rasa/cli/studio/upload.py +77 -0
  84. rasa/cli/telemetry.py +102 -0
  85. rasa/cli/test.py +280 -0
  86. rasa/cli/train.py +260 -0
  87. rasa/cli/utils.py +464 -0
  88. rasa/cli/visualize.py +40 -0
  89. rasa/cli/x.py +206 -0
  90. rasa/constants.py +37 -0
  91. rasa/core/__init__.py +17 -0
  92. rasa/core/actions/__init__.py +0 -0
  93. rasa/core/actions/action.py +1225 -0
  94. rasa/core/actions/action_clean_stack.py +59 -0
  95. rasa/core/actions/action_exceptions.py +24 -0
  96. rasa/core/actions/action_run_slot_rejections.py +207 -0
  97. rasa/core/actions/action_trigger_chitchat.py +31 -0
  98. rasa/core/actions/action_trigger_flow.py +109 -0
  99. rasa/core/actions/action_trigger_search.py +31 -0
  100. rasa/core/actions/constants.py +5 -0
  101. rasa/core/actions/custom_action_executor.py +188 -0
  102. rasa/core/actions/forms.py +741 -0
  103. rasa/core/actions/grpc_custom_action_executor.py +251 -0
  104. rasa/core/actions/http_custom_action_executor.py +140 -0
  105. rasa/core/actions/loops.py +114 -0
  106. rasa/core/actions/two_stage_fallback.py +186 -0
  107. rasa/core/agent.py +555 -0
  108. rasa/core/auth_retry_tracker_store.py +122 -0
  109. rasa/core/brokers/__init__.py +0 -0
  110. rasa/core/brokers/broker.py +126 -0
  111. rasa/core/brokers/file.py +58 -0
  112. rasa/core/brokers/kafka.py +322 -0
  113. rasa/core/brokers/pika.py +386 -0
  114. rasa/core/brokers/sql.py +86 -0
  115. rasa/core/channels/__init__.py +55 -0
  116. rasa/core/channels/audiocodes.py +463 -0
  117. rasa/core/channels/botframework.py +338 -0
  118. rasa/core/channels/callback.py +84 -0
  119. rasa/core/channels/channel.py +419 -0
  120. rasa/core/channels/console.py +241 -0
  121. rasa/core/channels/development_inspector.py +93 -0
  122. rasa/core/channels/facebook.py +419 -0
  123. rasa/core/channels/hangouts.py +329 -0
  124. rasa/core/channels/inspector/.eslintrc.cjs +25 -0
  125. rasa/core/channels/inspector/.gitignore +23 -0
  126. rasa/core/channels/inspector/README.md +54 -0
  127. rasa/core/channels/inspector/assets/favicon.ico +0 -0
  128. rasa/core/channels/inspector/assets/rasa-chat.js +2 -0
  129. rasa/core/channels/inspector/custom.d.ts +3 -0
  130. rasa/core/channels/inspector/dist/assets/arc-b6e548fe.js +1 -0
  131. rasa/core/channels/inspector/dist/assets/array-9f3ba611.js +1 -0
  132. rasa/core/channels/inspector/dist/assets/c4Diagram-d0fbc5ce-fa03ac9e.js +10 -0
  133. rasa/core/channels/inspector/dist/assets/classDiagram-936ed81e-ee67392a.js +2 -0
  134. rasa/core/channels/inspector/dist/assets/classDiagram-v2-c3cb15f1-9b283fae.js +2 -0
  135. rasa/core/channels/inspector/dist/assets/createText-62fc7601-8b6fcc2a.js +7 -0
  136. rasa/core/channels/inspector/dist/assets/edges-f2ad444c-22e77f4f.js +4 -0
  137. rasa/core/channels/inspector/dist/assets/erDiagram-9d236eb7-60ffc87f.js +51 -0
  138. rasa/core/channels/inspector/dist/assets/flowDb-1972c806-9dd802e4.js +6 -0
  139. rasa/core/channels/inspector/dist/assets/flowDiagram-7ea5b25a-5fa1912f.js +4 -0
  140. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-1844e5a5.js +1 -0
  141. rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-abe16c3d-622a1fd2.js +139 -0
  142. rasa/core/channels/inspector/dist/assets/ganttDiagram-9b5ea136-e285a63a.js +266 -0
  143. rasa/core/channels/inspector/dist/assets/gitGraphDiagram-99d0ae7c-f237bdca.js +70 -0
  144. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-128cfa44.ttf +0 -0
  145. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-21dbcb97.woff +0 -0
  146. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-222b5e26.svg +329 -0
  147. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-9ad89b2a.woff2 +0 -0
  148. rasa/core/channels/inspector/dist/assets/index-2c4b9a3b-4b03d70e.js +1 -0
  149. rasa/core/channels/inspector/dist/assets/index-3ee28881.css +1 -0
  150. rasa/core/channels/inspector/dist/assets/index-a5d3e69d.js +1040 -0
  151. rasa/core/channels/inspector/dist/assets/infoDiagram-736b4530-72a0fa5f.js +7 -0
  152. rasa/core/channels/inspector/dist/assets/init-77b53fdd.js +1 -0
  153. rasa/core/channels/inspector/dist/assets/journeyDiagram-df861f2b-82218c41.js +139 -0
  154. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-60c05ee4.woff +0 -0
  155. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-8335d9b8.svg +438 -0
  156. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-9cc39c75.ttf +0 -0
  157. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-ead13ccf.woff2 +0 -0
  158. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-16705655.woff2 +0 -0
  159. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-5aeb07f9.woff +0 -0
  160. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9c459044.ttf +0 -0
  161. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9e2898a4.svg +435 -0
  162. rasa/core/channels/inspector/dist/assets/layout-78cff630.js +1 -0
  163. rasa/core/channels/inspector/dist/assets/line-5038b469.js +1 -0
  164. rasa/core/channels/inspector/dist/assets/linear-c4fc4098.js +1 -0
  165. rasa/core/channels/inspector/dist/assets/mindmap-definition-beec6740-c33c8ea6.js +109 -0
  166. rasa/core/channels/inspector/dist/assets/ordinal-ba9b4969.js +1 -0
  167. rasa/core/channels/inspector/dist/assets/path-53f90ab3.js +1 -0
  168. rasa/core/channels/inspector/dist/assets/pieDiagram-dbbf0591-a8d03059.js +35 -0
  169. rasa/core/channels/inspector/dist/assets/quadrantDiagram-4d7f4fd6-6a0e56b2.js +7 -0
  170. rasa/core/channels/inspector/dist/assets/requirementDiagram-6fc4c22a-2dc7c7bd.js +52 -0
  171. rasa/core/channels/inspector/dist/assets/sankeyDiagram-8f13d901-2360fe39.js +8 -0
  172. rasa/core/channels/inspector/dist/assets/sequenceDiagram-b655622a-41b9f9ad.js +122 -0
  173. rasa/core/channels/inspector/dist/assets/stateDiagram-59f0c015-0aad326f.js +1 -0
  174. rasa/core/channels/inspector/dist/assets/stateDiagram-v2-2b26beab-9847d984.js +1 -0
  175. rasa/core/channels/inspector/dist/assets/styles-080da4f6-564d890e.js +110 -0
  176. rasa/core/channels/inspector/dist/assets/styles-3dcbcfbf-38957613.js +159 -0
  177. rasa/core/channels/inspector/dist/assets/styles-9c745c82-f0fc6921.js +207 -0
  178. rasa/core/channels/inspector/dist/assets/svgDrawCommon-4835440b-ef3c5a77.js +1 -0
  179. rasa/core/channels/inspector/dist/assets/timeline-definition-5b62e21b-bf3e91c1.js +61 -0
  180. rasa/core/channels/inspector/dist/assets/xychartDiagram-2b33534f-4d4026c0.js +7 -0
  181. rasa/core/channels/inspector/dist/index.html +41 -0
  182. rasa/core/channels/inspector/index.html +39 -0
  183. rasa/core/channels/inspector/jest.config.ts +13 -0
  184. rasa/core/channels/inspector/package.json +48 -0
  185. rasa/core/channels/inspector/setupTests.ts +2 -0
  186. rasa/core/channels/inspector/src/App.tsx +170 -0
  187. rasa/core/channels/inspector/src/components/DiagramFlow.tsx +107 -0
  188. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +187 -0
  189. rasa/core/channels/inspector/src/components/DialogueStack.tsx +151 -0
  190. rasa/core/channels/inspector/src/components/ExpandIcon.tsx +16 -0
  191. rasa/core/channels/inspector/src/components/FullscreenButton.tsx +45 -0
  192. rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +19 -0
  193. rasa/core/channels/inspector/src/components/NoActiveFlow.tsx +21 -0
  194. rasa/core/channels/inspector/src/components/RasaLogo.tsx +32 -0
  195. rasa/core/channels/inspector/src/components/SaraDiagrams.tsx +39 -0
  196. rasa/core/channels/inspector/src/components/Slots.tsx +91 -0
  197. rasa/core/channels/inspector/src/components/Welcome.tsx +54 -0
  198. rasa/core/channels/inspector/src/helpers/formatters.test.ts +382 -0
  199. rasa/core/channels/inspector/src/helpers/formatters.ts +240 -0
  200. rasa/core/channels/inspector/src/helpers/utils.ts +42 -0
  201. rasa/core/channels/inspector/src/main.tsx +13 -0
  202. rasa/core/channels/inspector/src/theme/Button/Button.ts +29 -0
  203. rasa/core/channels/inspector/src/theme/Heading/Heading.ts +31 -0
  204. rasa/core/channels/inspector/src/theme/Input/Input.ts +27 -0
  205. rasa/core/channels/inspector/src/theme/Link/Link.ts +10 -0
  206. rasa/core/channels/inspector/src/theme/Modal/Modal.ts +47 -0
  207. rasa/core/channels/inspector/src/theme/Table/Table.tsx +38 -0
  208. rasa/core/channels/inspector/src/theme/Tooltip/Tooltip.ts +12 -0
  209. rasa/core/channels/inspector/src/theme/base/breakpoints.ts +8 -0
  210. rasa/core/channels/inspector/src/theme/base/colors.ts +88 -0
  211. rasa/core/channels/inspector/src/theme/base/fonts/fontFaces.css +29 -0
  212. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.eot +0 -0
  213. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.svg +329 -0
  214. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.ttf +0 -0
  215. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff +0 -0
  216. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff2 +0 -0
  217. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.eot +0 -0
  218. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.svg +438 -0
  219. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.ttf +0 -0
  220. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff +0 -0
  221. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff2 +0 -0
  222. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.eot +0 -0
  223. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.svg +435 -0
  224. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.ttf +0 -0
  225. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff +0 -0
  226. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff2 +0 -0
  227. rasa/core/channels/inspector/src/theme/base/radii.ts +9 -0
  228. rasa/core/channels/inspector/src/theme/base/shadows.ts +7 -0
  229. rasa/core/channels/inspector/src/theme/base/sizes.ts +7 -0
  230. rasa/core/channels/inspector/src/theme/base/space.ts +15 -0
  231. rasa/core/channels/inspector/src/theme/base/styles.ts +13 -0
  232. rasa/core/channels/inspector/src/theme/base/typography.ts +24 -0
  233. rasa/core/channels/inspector/src/theme/base/zIndices.ts +19 -0
  234. rasa/core/channels/inspector/src/theme/index.ts +101 -0
  235. rasa/core/channels/inspector/src/types.ts +64 -0
  236. rasa/core/channels/inspector/src/vite-env.d.ts +1 -0
  237. rasa/core/channels/inspector/tests/__mocks__/fileMock.ts +1 -0
  238. rasa/core/channels/inspector/tests/__mocks__/matchMedia.ts +16 -0
  239. rasa/core/channels/inspector/tests/__mocks__/styleMock.ts +1 -0
  240. rasa/core/channels/inspector/tests/renderWithProviders.tsx +14 -0
  241. rasa/core/channels/inspector/tsconfig.json +26 -0
  242. rasa/core/channels/inspector/tsconfig.node.json +10 -0
  243. rasa/core/channels/inspector/vite.config.ts +8 -0
  244. rasa/core/channels/inspector/yarn.lock +6156 -0
  245. rasa/core/channels/mattermost.py +229 -0
  246. rasa/core/channels/rasa_chat.py +126 -0
  247. rasa/core/channels/rest.py +225 -0
  248. rasa/core/channels/rocketchat.py +174 -0
  249. rasa/core/channels/slack.py +620 -0
  250. rasa/core/channels/socketio.py +274 -0
  251. rasa/core/channels/telegram.py +298 -0
  252. rasa/core/channels/twilio.py +169 -0
  253. rasa/core/channels/twilio_voice.py +367 -0
  254. rasa/core/channels/vier_cvg.py +374 -0
  255. rasa/core/channels/webexteams.py +134 -0
  256. rasa/core/concurrent_lock_store.py +210 -0
  257. rasa/core/constants.py +107 -0
  258. rasa/core/evaluation/__init__.py +0 -0
  259. rasa/core/evaluation/marker.py +267 -0
  260. rasa/core/evaluation/marker_base.py +923 -0
  261. rasa/core/evaluation/marker_stats.py +293 -0
  262. rasa/core/evaluation/marker_tracker_loader.py +103 -0
  263. rasa/core/exceptions.py +29 -0
  264. rasa/core/exporter.py +284 -0
  265. rasa/core/featurizers/__init__.py +0 -0
  266. rasa/core/featurizers/precomputation.py +410 -0
  267. rasa/core/featurizers/single_state_featurizer.py +421 -0
  268. rasa/core/featurizers/tracker_featurizers.py +1262 -0
  269. rasa/core/http_interpreter.py +89 -0
  270. rasa/core/information_retrieval/__init__.py +7 -0
  271. rasa/core/information_retrieval/faiss.py +121 -0
  272. rasa/core/information_retrieval/information_retrieval.py +129 -0
  273. rasa/core/information_retrieval/milvus.py +52 -0
  274. rasa/core/information_retrieval/qdrant.py +95 -0
  275. rasa/core/jobs.py +63 -0
  276. rasa/core/lock.py +139 -0
  277. rasa/core/lock_store.py +343 -0
  278. rasa/core/migrate.py +403 -0
  279. rasa/core/nlg/__init__.py +3 -0
  280. rasa/core/nlg/callback.py +146 -0
  281. rasa/core/nlg/contextual_response_rephraser.py +270 -0
  282. rasa/core/nlg/generator.py +230 -0
  283. rasa/core/nlg/interpolator.py +143 -0
  284. rasa/core/nlg/response.py +155 -0
  285. rasa/core/nlg/summarize.py +69 -0
  286. rasa/core/policies/__init__.py +0 -0
  287. rasa/core/policies/ensemble.py +329 -0
  288. rasa/core/policies/enterprise_search_policy.py +781 -0
  289. rasa/core/policies/enterprise_search_prompt_template.jinja2 +25 -0
  290. rasa/core/policies/enterprise_search_prompt_with_citation_template.jinja2 +60 -0
  291. rasa/core/policies/flow_policy.py +205 -0
  292. rasa/core/policies/flows/__init__.py +0 -0
  293. rasa/core/policies/flows/flow_exceptions.py +44 -0
  294. rasa/core/policies/flows/flow_executor.py +705 -0
  295. rasa/core/policies/flows/flow_step_result.py +43 -0
  296. rasa/core/policies/intentless_policy.py +922 -0
  297. rasa/core/policies/intentless_prompt_template.jinja2 +22 -0
  298. rasa/core/policies/memoization.py +538 -0
  299. rasa/core/policies/policy.py +725 -0
  300. rasa/core/policies/rule_policy.py +1273 -0
  301. rasa/core/policies/ted_policy.py +2169 -0
  302. rasa/core/policies/unexpected_intent_policy.py +1022 -0
  303. rasa/core/processor.py +1422 -0
  304. rasa/core/run.py +331 -0
  305. rasa/core/secrets_manager/__init__.py +0 -0
  306. rasa/core/secrets_manager/constants.py +32 -0
  307. rasa/core/secrets_manager/endpoints.py +391 -0
  308. rasa/core/secrets_manager/factory.py +233 -0
  309. rasa/core/secrets_manager/secret_manager.py +262 -0
  310. rasa/core/secrets_manager/vault.py +574 -0
  311. rasa/core/test.py +1335 -0
  312. rasa/core/tracker_store.py +1699 -0
  313. rasa/core/train.py +105 -0
  314. rasa/core/training/__init__.py +89 -0
  315. rasa/core/training/converters/__init__.py +0 -0
  316. rasa/core/training/converters/responses_prefix_converter.py +119 -0
  317. rasa/core/training/interactive.py +1745 -0
  318. rasa/core/training/story_conflict.py +381 -0
  319. rasa/core/training/training.py +93 -0
  320. rasa/core/utils.py +339 -0
  321. rasa/core/visualize.py +70 -0
  322. rasa/dialogue_understanding/__init__.py +0 -0
  323. rasa/dialogue_understanding/coexistence/__init__.py +0 -0
  324. rasa/dialogue_understanding/coexistence/constants.py +4 -0
  325. rasa/dialogue_understanding/coexistence/intent_based_router.py +196 -0
  326. rasa/dialogue_understanding/coexistence/llm_based_router.py +260 -0
  327. rasa/dialogue_understanding/coexistence/router_template.jinja2 +12 -0
  328. rasa/dialogue_understanding/commands/__init__.py +49 -0
  329. rasa/dialogue_understanding/commands/can_not_handle_command.py +70 -0
  330. rasa/dialogue_understanding/commands/cancel_flow_command.py +125 -0
  331. rasa/dialogue_understanding/commands/change_flow_command.py +44 -0
  332. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +57 -0
  333. rasa/dialogue_understanding/commands/clarify_command.py +86 -0
  334. rasa/dialogue_understanding/commands/command.py +85 -0
  335. rasa/dialogue_understanding/commands/correct_slots_command.py +297 -0
  336. rasa/dialogue_understanding/commands/error_command.py +79 -0
  337. rasa/dialogue_understanding/commands/free_form_answer_command.py +9 -0
  338. rasa/dialogue_understanding/commands/handle_code_change_command.py +73 -0
  339. rasa/dialogue_understanding/commands/human_handoff_command.py +66 -0
  340. rasa/dialogue_understanding/commands/knowledge_answer_command.py +57 -0
  341. rasa/dialogue_understanding/commands/noop_command.py +54 -0
  342. rasa/dialogue_understanding/commands/set_slot_command.py +160 -0
  343. rasa/dialogue_understanding/commands/skip_question_command.py +75 -0
  344. rasa/dialogue_understanding/commands/start_flow_command.py +107 -0
  345. rasa/dialogue_understanding/generator/__init__.py +21 -0
  346. rasa/dialogue_understanding/generator/command_generator.py +343 -0
  347. rasa/dialogue_understanding/generator/constants.py +18 -0
  348. rasa/dialogue_understanding/generator/flow_document_template.jinja2 +4 -0
  349. rasa/dialogue_understanding/generator/flow_retrieval.py +412 -0
  350. rasa/dialogue_understanding/generator/llm_based_command_generator.py +467 -0
  351. rasa/dialogue_understanding/generator/llm_command_generator.py +67 -0
  352. rasa/dialogue_understanding/generator/multi_step/__init__.py +0 -0
  353. rasa/dialogue_understanding/generator/multi_step/fill_slots_prompt.jinja2 +62 -0
  354. rasa/dialogue_understanding/generator/multi_step/handle_flows_prompt.jinja2 +38 -0
  355. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +827 -0
  356. rasa/dialogue_understanding/generator/nlu_command_adapter.py +218 -0
  357. rasa/dialogue_understanding/generator/single_step/__init__.py +0 -0
  358. rasa/dialogue_understanding/generator/single_step/command_prompt_template.jinja2 +57 -0
  359. rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +345 -0
  360. rasa/dialogue_understanding/patterns/__init__.py +0 -0
  361. rasa/dialogue_understanding/patterns/cancel.py +111 -0
  362. rasa/dialogue_understanding/patterns/cannot_handle.py +43 -0
  363. rasa/dialogue_understanding/patterns/chitchat.py +37 -0
  364. rasa/dialogue_understanding/patterns/clarify.py +97 -0
  365. rasa/dialogue_understanding/patterns/code_change.py +41 -0
  366. rasa/dialogue_understanding/patterns/collect_information.py +90 -0
  367. rasa/dialogue_understanding/patterns/completed.py +40 -0
  368. rasa/dialogue_understanding/patterns/continue_interrupted.py +42 -0
  369. rasa/dialogue_understanding/patterns/correction.py +278 -0
  370. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +248 -0
  371. rasa/dialogue_understanding/patterns/human_handoff.py +37 -0
  372. rasa/dialogue_understanding/patterns/internal_error.py +47 -0
  373. rasa/dialogue_understanding/patterns/search.py +37 -0
  374. rasa/dialogue_understanding/patterns/skip_question.py +38 -0
  375. rasa/dialogue_understanding/processor/__init__.py +0 -0
  376. rasa/dialogue_understanding/processor/command_processor.py +687 -0
  377. rasa/dialogue_understanding/processor/command_processor_component.py +39 -0
  378. rasa/dialogue_understanding/stack/__init__.py +0 -0
  379. rasa/dialogue_understanding/stack/dialogue_stack.py +178 -0
  380. rasa/dialogue_understanding/stack/frames/__init__.py +19 -0
  381. rasa/dialogue_understanding/stack/frames/chit_chat_frame.py +27 -0
  382. rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py +137 -0
  383. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +157 -0
  384. rasa/dialogue_understanding/stack/frames/pattern_frame.py +10 -0
  385. rasa/dialogue_understanding/stack/frames/search_frame.py +27 -0
  386. rasa/dialogue_understanding/stack/utils.py +211 -0
  387. rasa/e2e_test/__init__.py +0 -0
  388. rasa/e2e_test/constants.py +11 -0
  389. rasa/e2e_test/e2e_test_case.py +366 -0
  390. rasa/e2e_test/e2e_test_result.py +34 -0
  391. rasa/e2e_test/e2e_test_runner.py +768 -0
  392. rasa/e2e_test/e2e_test_schema.yml +85 -0
  393. rasa/engine/__init__.py +0 -0
  394. rasa/engine/caching.py +463 -0
  395. rasa/engine/constants.py +17 -0
  396. rasa/engine/exceptions.py +14 -0
  397. rasa/engine/graph.py +637 -0
  398. rasa/engine/loader.py +36 -0
  399. rasa/engine/recipes/__init__.py +0 -0
  400. rasa/engine/recipes/config_files/default_config.yml +44 -0
  401. rasa/engine/recipes/default_components.py +99 -0
  402. rasa/engine/recipes/default_recipe.py +1251 -0
  403. rasa/engine/recipes/graph_recipe.py +79 -0
  404. rasa/engine/recipes/recipe.py +93 -0
  405. rasa/engine/runner/__init__.py +0 -0
  406. rasa/engine/runner/dask.py +250 -0
  407. rasa/engine/runner/interface.py +49 -0
  408. rasa/engine/storage/__init__.py +0 -0
  409. rasa/engine/storage/local_model_storage.py +246 -0
  410. rasa/engine/storage/resource.py +110 -0
  411. rasa/engine/storage/storage.py +203 -0
  412. rasa/engine/training/__init__.py +0 -0
  413. rasa/engine/training/components.py +176 -0
  414. rasa/engine/training/fingerprinting.py +64 -0
  415. rasa/engine/training/graph_trainer.py +256 -0
  416. rasa/engine/training/hooks.py +164 -0
  417. rasa/engine/validation.py +873 -0
  418. rasa/env.py +5 -0
  419. rasa/exceptions.py +69 -0
  420. rasa/graph_components/__init__.py +0 -0
  421. rasa/graph_components/converters/__init__.py +0 -0
  422. rasa/graph_components/converters/nlu_message_converter.py +48 -0
  423. rasa/graph_components/providers/__init__.py +0 -0
  424. rasa/graph_components/providers/domain_for_core_training_provider.py +87 -0
  425. rasa/graph_components/providers/domain_provider.py +71 -0
  426. rasa/graph_components/providers/flows_provider.py +74 -0
  427. rasa/graph_components/providers/forms_provider.py +44 -0
  428. rasa/graph_components/providers/nlu_training_data_provider.py +56 -0
  429. rasa/graph_components/providers/responses_provider.py +44 -0
  430. rasa/graph_components/providers/rule_only_provider.py +49 -0
  431. rasa/graph_components/providers/story_graph_provider.py +43 -0
  432. rasa/graph_components/providers/training_tracker_provider.py +55 -0
  433. rasa/graph_components/validators/__init__.py +0 -0
  434. rasa/graph_components/validators/default_recipe_validator.py +550 -0
  435. rasa/graph_components/validators/finetuning_validator.py +302 -0
  436. rasa/hooks.py +112 -0
  437. rasa/jupyter.py +63 -0
  438. rasa/markers/__init__.py +0 -0
  439. rasa/markers/marker.py +269 -0
  440. rasa/markers/marker_base.py +828 -0
  441. rasa/markers/upload.py +74 -0
  442. rasa/markers/validate.py +21 -0
  443. rasa/model.py +118 -0
  444. rasa/model_testing.py +457 -0
  445. rasa/model_training.py +536 -0
  446. rasa/nlu/__init__.py +7 -0
  447. rasa/nlu/classifiers/__init__.py +3 -0
  448. rasa/nlu/classifiers/classifier.py +5 -0
  449. rasa/nlu/classifiers/diet_classifier.py +1881 -0
  450. rasa/nlu/classifiers/fallback_classifier.py +192 -0
  451. rasa/nlu/classifiers/keyword_intent_classifier.py +188 -0
  452. rasa/nlu/classifiers/llm_intent_classifier.py +519 -0
  453. rasa/nlu/classifiers/logistic_regression_classifier.py +253 -0
  454. rasa/nlu/classifiers/mitie_intent_classifier.py +156 -0
  455. rasa/nlu/classifiers/regex_message_handler.py +56 -0
  456. rasa/nlu/classifiers/sklearn_intent_classifier.py +330 -0
  457. rasa/nlu/constants.py +77 -0
  458. rasa/nlu/convert.py +40 -0
  459. rasa/nlu/emulators/__init__.py +0 -0
  460. rasa/nlu/emulators/dialogflow.py +55 -0
  461. rasa/nlu/emulators/emulator.py +49 -0
  462. rasa/nlu/emulators/luis.py +86 -0
  463. rasa/nlu/emulators/no_emulator.py +10 -0
  464. rasa/nlu/emulators/wit.py +56 -0
  465. rasa/nlu/extractors/__init__.py +0 -0
  466. rasa/nlu/extractors/crf_entity_extractor.py +715 -0
  467. rasa/nlu/extractors/duckling_entity_extractor.py +206 -0
  468. rasa/nlu/extractors/entity_synonyms.py +178 -0
  469. rasa/nlu/extractors/extractor.py +470 -0
  470. rasa/nlu/extractors/mitie_entity_extractor.py +293 -0
  471. rasa/nlu/extractors/regex_entity_extractor.py +220 -0
  472. rasa/nlu/extractors/spacy_entity_extractor.py +95 -0
  473. rasa/nlu/featurizers/__init__.py +0 -0
  474. rasa/nlu/featurizers/dense_featurizer/__init__.py +0 -0
  475. rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +445 -0
  476. rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +57 -0
  477. rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +768 -0
  478. rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +170 -0
  479. rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +132 -0
  480. rasa/nlu/featurizers/featurizer.py +89 -0
  481. rasa/nlu/featurizers/sparse_featurizer/__init__.py +0 -0
  482. rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +867 -0
  483. rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +571 -0
  484. rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +271 -0
  485. rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +9 -0
  486. rasa/nlu/model.py +24 -0
  487. rasa/nlu/persistor.py +282 -0
  488. rasa/nlu/run.py +27 -0
  489. rasa/nlu/selectors/__init__.py +0 -0
  490. rasa/nlu/selectors/response_selector.py +987 -0
  491. rasa/nlu/test.py +1940 -0
  492. rasa/nlu/tokenizers/__init__.py +0 -0
  493. rasa/nlu/tokenizers/jieba_tokenizer.py +148 -0
  494. rasa/nlu/tokenizers/mitie_tokenizer.py +75 -0
  495. rasa/nlu/tokenizers/spacy_tokenizer.py +72 -0
  496. rasa/nlu/tokenizers/tokenizer.py +239 -0
  497. rasa/nlu/tokenizers/whitespace_tokenizer.py +106 -0
  498. rasa/nlu/utils/__init__.py +35 -0
  499. rasa/nlu/utils/bilou_utils.py +462 -0
  500. rasa/nlu/utils/hugging_face/__init__.py +0 -0
  501. rasa/nlu/utils/hugging_face/registry.py +108 -0
  502. rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +311 -0
  503. rasa/nlu/utils/mitie_utils.py +113 -0
  504. rasa/nlu/utils/pattern_utils.py +168 -0
  505. rasa/nlu/utils/spacy_utils.py +310 -0
  506. rasa/plugin.py +90 -0
  507. rasa/server.py +1551 -0
  508. rasa/shared/__init__.py +0 -0
  509. rasa/shared/constants.py +192 -0
  510. rasa/shared/core/__init__.py +0 -0
  511. rasa/shared/core/command_payload_reader.py +109 -0
  512. rasa/shared/core/constants.py +167 -0
  513. rasa/shared/core/conversation.py +46 -0
  514. rasa/shared/core/domain.py +2107 -0
  515. rasa/shared/core/events.py +2504 -0
  516. rasa/shared/core/flows/__init__.py +7 -0
  517. rasa/shared/core/flows/flow.py +362 -0
  518. rasa/shared/core/flows/flow_step.py +146 -0
  519. rasa/shared/core/flows/flow_step_links.py +319 -0
  520. rasa/shared/core/flows/flow_step_sequence.py +70 -0
  521. rasa/shared/core/flows/flows_list.py +223 -0
  522. rasa/shared/core/flows/flows_yaml_schema.json +217 -0
  523. rasa/shared/core/flows/nlu_trigger.py +117 -0
  524. rasa/shared/core/flows/steps/__init__.py +24 -0
  525. rasa/shared/core/flows/steps/action.py +56 -0
  526. rasa/shared/core/flows/steps/call.py +64 -0
  527. rasa/shared/core/flows/steps/collect.py +112 -0
  528. rasa/shared/core/flows/steps/constants.py +5 -0
  529. rasa/shared/core/flows/steps/continuation.py +36 -0
  530. rasa/shared/core/flows/steps/end.py +22 -0
  531. rasa/shared/core/flows/steps/internal.py +44 -0
  532. rasa/shared/core/flows/steps/link.py +51 -0
  533. rasa/shared/core/flows/steps/no_operation.py +48 -0
  534. rasa/shared/core/flows/steps/set_slots.py +50 -0
  535. rasa/shared/core/flows/steps/start.py +30 -0
  536. rasa/shared/core/flows/validation.py +527 -0
  537. rasa/shared/core/flows/yaml_flows_io.py +278 -0
  538. rasa/shared/core/generator.py +908 -0
  539. rasa/shared/core/slot_mappings.py +526 -0
  540. rasa/shared/core/slots.py +649 -0
  541. rasa/shared/core/trackers.py +1177 -0
  542. rasa/shared/core/training_data/__init__.py +0 -0
  543. rasa/shared/core/training_data/loading.py +89 -0
  544. rasa/shared/core/training_data/story_reader/__init__.py +0 -0
  545. rasa/shared/core/training_data/story_reader/story_reader.py +129 -0
  546. rasa/shared/core/training_data/story_reader/story_step_builder.py +168 -0
  547. rasa/shared/core/training_data/story_reader/yaml_story_reader.py +888 -0
  548. rasa/shared/core/training_data/story_writer/__init__.py +0 -0
  549. rasa/shared/core/training_data/story_writer/story_writer.py +76 -0
  550. rasa/shared/core/training_data/story_writer/yaml_story_writer.py +444 -0
  551. rasa/shared/core/training_data/structures.py +838 -0
  552. rasa/shared/core/training_data/visualization.html +146 -0
  553. rasa/shared/core/training_data/visualization.py +603 -0
  554. rasa/shared/data.py +249 -0
  555. rasa/shared/engine/__init__.py +0 -0
  556. rasa/shared/engine/caching.py +26 -0
  557. rasa/shared/exceptions.py +163 -0
  558. rasa/shared/importers/__init__.py +0 -0
  559. rasa/shared/importers/importer.py +704 -0
  560. rasa/shared/importers/multi_project.py +203 -0
  561. rasa/shared/importers/rasa.py +99 -0
  562. rasa/shared/importers/utils.py +34 -0
  563. rasa/shared/nlu/__init__.py +0 -0
  564. rasa/shared/nlu/constants.py +47 -0
  565. rasa/shared/nlu/interpreter.py +10 -0
  566. rasa/shared/nlu/training_data/__init__.py +0 -0
  567. rasa/shared/nlu/training_data/entities_parser.py +208 -0
  568. rasa/shared/nlu/training_data/features.py +492 -0
  569. rasa/shared/nlu/training_data/formats/__init__.py +10 -0
  570. rasa/shared/nlu/training_data/formats/dialogflow.py +163 -0
  571. rasa/shared/nlu/training_data/formats/luis.py +87 -0
  572. rasa/shared/nlu/training_data/formats/rasa.py +135 -0
  573. rasa/shared/nlu/training_data/formats/rasa_yaml.py +603 -0
  574. rasa/shared/nlu/training_data/formats/readerwriter.py +244 -0
  575. rasa/shared/nlu/training_data/formats/wit.py +52 -0
  576. rasa/shared/nlu/training_data/loading.py +137 -0
  577. rasa/shared/nlu/training_data/lookup_tables_parser.py +30 -0
  578. rasa/shared/nlu/training_data/message.py +490 -0
  579. rasa/shared/nlu/training_data/schemas/__init__.py +0 -0
  580. rasa/shared/nlu/training_data/schemas/data_schema.py +85 -0
  581. rasa/shared/nlu/training_data/schemas/nlu.yml +53 -0
  582. rasa/shared/nlu/training_data/schemas/responses.yml +70 -0
  583. rasa/shared/nlu/training_data/synonyms_parser.py +42 -0
  584. rasa/shared/nlu/training_data/training_data.py +730 -0
  585. rasa/shared/nlu/training_data/util.py +223 -0
  586. rasa/shared/providers/__init__.py +0 -0
  587. rasa/shared/providers/openai/__init__.py +0 -0
  588. rasa/shared/providers/openai/clients.py +43 -0
  589. rasa/shared/providers/openai/session_handler.py +110 -0
  590. rasa/shared/utils/__init__.py +0 -0
  591. rasa/shared/utils/cli.py +72 -0
  592. rasa/shared/utils/common.py +308 -0
  593. rasa/shared/utils/constants.py +4 -0
  594. rasa/shared/utils/io.py +415 -0
  595. rasa/shared/utils/llm.py +404 -0
  596. rasa/shared/utils/pykwalify_extensions.py +27 -0
  597. rasa/shared/utils/schemas/__init__.py +0 -0
  598. rasa/shared/utils/schemas/config.yml +2 -0
  599. rasa/shared/utils/schemas/domain.yml +145 -0
  600. rasa/shared/utils/schemas/events.py +212 -0
  601. rasa/shared/utils/schemas/model_config.yml +46 -0
  602. rasa/shared/utils/schemas/stories.yml +173 -0
  603. rasa/shared/utils/yaml.py +786 -0
  604. rasa/studio/__init__.py +0 -0
  605. rasa/studio/auth.py +268 -0
  606. rasa/studio/config.py +127 -0
  607. rasa/studio/constants.py +18 -0
  608. rasa/studio/data_handler.py +359 -0
  609. rasa/studio/download.py +483 -0
  610. rasa/studio/results_logger.py +137 -0
  611. rasa/studio/train.py +135 -0
  612. rasa/studio/upload.py +433 -0
  613. rasa/telemetry.py +1737 -0
  614. rasa/tracing/__init__.py +0 -0
  615. rasa/tracing/config.py +353 -0
  616. rasa/tracing/constants.py +62 -0
  617. rasa/tracing/instrumentation/__init__.py +0 -0
  618. rasa/tracing/instrumentation/attribute_extractors.py +672 -0
  619. rasa/tracing/instrumentation/instrumentation.py +1185 -0
  620. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +144 -0
  621. rasa/tracing/instrumentation/metrics.py +294 -0
  622. rasa/tracing/metric_instrument_provider.py +205 -0
  623. rasa/utils/__init__.py +0 -0
  624. rasa/utils/beta.py +83 -0
  625. rasa/utils/cli.py +28 -0
  626. rasa/utils/common.py +635 -0
  627. rasa/utils/converter.py +53 -0
  628. rasa/utils/endpoints.py +302 -0
  629. rasa/utils/io.py +260 -0
  630. rasa/utils/licensing.py +534 -0
  631. rasa/utils/log_utils.py +174 -0
  632. rasa/utils/mapper.py +210 -0
  633. rasa/utils/ml_utils.py +145 -0
  634. rasa/utils/plotting.py +362 -0
  635. rasa/utils/singleton.py +23 -0
  636. rasa/utils/tensorflow/__init__.py +0 -0
  637. rasa/utils/tensorflow/callback.py +112 -0
  638. rasa/utils/tensorflow/constants.py +116 -0
  639. rasa/utils/tensorflow/crf.py +492 -0
  640. rasa/utils/tensorflow/data_generator.py +440 -0
  641. rasa/utils/tensorflow/environment.py +161 -0
  642. rasa/utils/tensorflow/exceptions.py +5 -0
  643. rasa/utils/tensorflow/feature_array.py +366 -0
  644. rasa/utils/tensorflow/layers.py +1565 -0
  645. rasa/utils/tensorflow/layers_utils.py +113 -0
  646. rasa/utils/tensorflow/metrics.py +281 -0
  647. rasa/utils/tensorflow/model_data.py +798 -0
  648. rasa/utils/tensorflow/model_data_utils.py +499 -0
  649. rasa/utils/tensorflow/models.py +935 -0
  650. rasa/utils/tensorflow/rasa_layers.py +1094 -0
  651. rasa/utils/tensorflow/transformer.py +640 -0
  652. rasa/utils/tensorflow/types.py +6 -0
  653. rasa/utils/train_utils.py +572 -0
  654. rasa/utils/url_tools.py +53 -0
  655. rasa/utils/yaml.py +54 -0
  656. rasa/validator.py +1337 -0
  657. rasa/version.py +3 -0
  658. rasa_pro-3.9.18.dist-info/METADATA +563 -0
  659. rasa_pro-3.9.18.dist-info/NOTICE +5 -0
  660. rasa_pro-3.9.18.dist-info/RECORD +662 -0
  661. rasa_pro-3.9.18.dist-info/WHEEL +4 -0
  662. rasa_pro-3.9.18.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,263 @@
1
+ import argparse
2
+ from typing import Union
3
+
4
+ from rasa.cli.arguments.default_arguments import (
5
+ add_config_param,
6
+ add_stories_param,
7
+ add_nlu_data_param,
8
+ add_out_param,
9
+ add_domain_param,
10
+ add_endpoint_param,
11
+ )
12
+ from rasa.graph_components.providers.training_tracker_provider import (
13
+ TrainingTrackerProvider,
14
+ )
15
+ from rasa.shared.constants import DEFAULT_CONFIG_PATH, DEFAULT_DATA_PATH
16
+
17
+ USE_LATEST_MODEL_FOR_FINE_TUNING = True
18
+
19
+
20
+ def set_train_arguments(parser: argparse.ArgumentParser) -> None:
21
+ """Specifies CLI arguments for `rasa train`."""
22
+ add_data_param(parser)
23
+ add_config_param(parser)
24
+ add_domain_param(parser)
25
+ add_out_param(parser, help_text="Directory where your models should be stored.")
26
+
27
+ add_dry_run_param(parser)
28
+ add_validate_before_train(parser)
29
+ add_augmentation_param(parser)
30
+ add_debug_plots_param(parser)
31
+
32
+ _add_num_threads_param(parser)
33
+
34
+ _add_model_name_param(parser)
35
+ add_persist_nlu_data_param(parser)
36
+ add_force_param(parser)
37
+ add_finetune_params(parser)
38
+ add_endpoint_param(
39
+ parser, help_text="Configuration file for the connectors as a yml file."
40
+ )
41
+
42
+
43
+ def set_train_core_arguments(parser: argparse.ArgumentParser) -> None:
44
+ """Specifies CLI arguments for `rasa train core`."""
45
+ add_stories_param(parser)
46
+ add_domain_param(parser)
47
+ _add_core_config_param(parser)
48
+ add_out_param(parser, help_text="Directory where your models should be stored.")
49
+
50
+ add_augmentation_param(parser)
51
+ add_debug_plots_param(parser)
52
+
53
+ add_force_param(parser)
54
+
55
+ _add_model_name_param(parser)
56
+
57
+ compare_arguments = parser.add_argument_group("Comparison Arguments")
58
+ _add_compare_params(compare_arguments)
59
+ add_finetune_params(parser)
60
+
61
+
62
+ def set_train_nlu_arguments(parser: argparse.ArgumentParser) -> None:
63
+ """Specifies CLI arguments for `rasa train nlu`."""
64
+ add_config_param(parser)
65
+ add_domain_param(parser, default=None)
66
+ add_out_param(parser, help_text="Directory where your models should be stored.")
67
+
68
+ add_nlu_data_param(parser, help_text="File or folder containing your NLU data.")
69
+
70
+ _add_num_threads_param(parser)
71
+
72
+ _add_model_name_param(parser)
73
+ add_persist_nlu_data_param(parser)
74
+ add_finetune_params(parser)
75
+
76
+
77
+ def add_force_param(
78
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
79
+ ) -> None:
80
+ """Specifies if the model should be trained from scratch."""
81
+ parser.add_argument(
82
+ "--force",
83
+ action="store_true",
84
+ help="Force a model training even if the data has not changed.",
85
+ )
86
+
87
+
88
+ def add_data_param(
89
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
90
+ ) -> None:
91
+ """Specifies path to training data."""
92
+ parser.add_argument(
93
+ "--data",
94
+ default=[DEFAULT_DATA_PATH],
95
+ nargs="+",
96
+ help="Paths to the Core and NLU data files.",
97
+ )
98
+
99
+
100
+ def _add_core_config_param(parser: argparse.ArgumentParser) -> None:
101
+ parser.add_argument(
102
+ "-c",
103
+ "--config",
104
+ nargs="+",
105
+ default=[DEFAULT_CONFIG_PATH],
106
+ help="The policy and NLU pipeline configuration of your bot. "
107
+ "If multiple configuration files are provided, multiple Rasa Core "
108
+ "models are trained to compare policies.",
109
+ )
110
+
111
+
112
+ def _add_compare_params(
113
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
114
+ ) -> None:
115
+ parser.add_argument(
116
+ "--percentages",
117
+ nargs="*",
118
+ type=int,
119
+ default=[0, 25, 50, 75],
120
+ help="Range of exclusion percentages.",
121
+ )
122
+ parser.add_argument(
123
+ "--runs", type=int, default=3, help="Number of runs for experiments."
124
+ )
125
+
126
+
127
+ def add_dry_run_param(
128
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
129
+ ) -> None:
130
+ """Adds `--dry-run` argument to a specified `parser`.
131
+
132
+ Args:
133
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
134
+ """
135
+ parser.add_argument(
136
+ "--dry-run",
137
+ default=False,
138
+ action="store_true",
139
+ help="If enabled, no actual training will be performed. Instead, "
140
+ "it will be determined whether a model should be re-trained "
141
+ "and this information will be printed as the output. The return "
142
+ "code is a 4-bit bitmask that can also be used to determine what exactly needs "
143
+ "to be retrained:\n"
144
+ "- 0 means that no extensive training is required (note that the responses "
145
+ "still might require updating by running 'rasa train').\n"
146
+ "- 1 means the model needs to be retrained\n"
147
+ "- 8 means the training was forced (--force argument is specified)",
148
+ )
149
+
150
+
151
+ def add_validate_before_train(
152
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
153
+ ) -> None:
154
+ """Adds parameters for validating the domain and data files before training.
155
+
156
+ Args:
157
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
158
+ """
159
+ parser.add_argument(
160
+ "--skip-validation",
161
+ default=False,
162
+ action="store_true",
163
+ help="Skip validation step before training.",
164
+ )
165
+
166
+ parser.add_argument(
167
+ "--fail-on-validation-warnings",
168
+ default=False,
169
+ action="store_true",
170
+ help="Fail on validation warnings. "
171
+ "If omitted only errors will exit with a non zero status code",
172
+ )
173
+
174
+ parser.add_argument(
175
+ "--validation-max-history",
176
+ type=int,
177
+ default=None,
178
+ help="Number of turns taken into account for story structure validation.",
179
+ )
180
+
181
+
182
+ def add_augmentation_param(
183
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
184
+ ) -> None:
185
+ """Sets the augmentation factor for the Core training.
186
+
187
+ Args:
188
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
189
+ """
190
+ parser.add_argument(
191
+ "--augmentation",
192
+ type=int,
193
+ default=TrainingTrackerProvider.get_default_config()["augmentation_factor"],
194
+ help="How much data augmentation to use during training.",
195
+ )
196
+
197
+
198
+ def add_debug_plots_param(
199
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
200
+ ) -> None:
201
+ """Specifies if conversation flow should be visualized."""
202
+ parser.add_argument(
203
+ "--debug-plots",
204
+ default=TrainingTrackerProvider.get_default_config()["debug_plots"],
205
+ action="store_true",
206
+ help="If enabled, will create plots showing checkpoints "
207
+ "and their connections between story blocks in a "
208
+ "file called `story_blocks_connections.html`.",
209
+ )
210
+
211
+
212
+ def _add_num_threads_param(
213
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
214
+ ) -> None:
215
+ parser.add_argument(
216
+ "--num-threads",
217
+ type=int,
218
+ help="Maximum amount of threads to use when training.",
219
+ )
220
+
221
+
222
+ def _add_model_name_param(parser: argparse.ArgumentParser) -> None:
223
+ parser.add_argument(
224
+ "--fixed-model-name",
225
+ type=str,
226
+ help="If set, the name of the model file/directory will be set to the given "
227
+ "name.",
228
+ )
229
+
230
+
231
+ def add_persist_nlu_data_param(
232
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
233
+ ) -> None:
234
+ """Adds parameters for persisting the NLU training data with the model."""
235
+ parser.add_argument(
236
+ "--persist-nlu-data",
237
+ action="store_true",
238
+ help="Persist the NLU training data in the saved model.",
239
+ )
240
+
241
+
242
+ def add_finetune_params(
243
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
244
+ ) -> None:
245
+ """Adds parameters for model finetuning."""
246
+ parser.add_argument(
247
+ "--finetune",
248
+ nargs="?",
249
+ # If the user doesn't specify `--finetune` at all
250
+ default=None,
251
+ # If the user only specifies `--finetune` without an additional path
252
+ const=USE_LATEST_MODEL_FOR_FINE_TUNING,
253
+ help="Fine-tune a previously trained model. If no model path is provided, Rasa "
254
+ "Open Source will try to finetune the latest trained model from the "
255
+ "model directory specified via '--out'.",
256
+ )
257
+
258
+ parser.add_argument(
259
+ "--epoch-fraction",
260
+ type=float,
261
+ help="Fraction of epochs which are currently specified in the model "
262
+ "configuration which should be used when finetuning a model.",
263
+ )
@@ -0,0 +1,34 @@
1
+ import argparse
2
+
3
+ from rasa.cli.arguments.default_arguments import (
4
+ add_domain_param,
5
+ add_stories_param,
6
+ add_out_param,
7
+ add_nlu_data_param,
8
+ )
9
+
10
+
11
+ def set_visualize_stories_arguments(parser: argparse.ArgumentParser) -> None:
12
+ """Sets the CLI arguments for `rasa data visualize."""
13
+ add_domain_param(parser)
14
+ add_stories_param(parser)
15
+
16
+ add_out_param(
17
+ parser,
18
+ default="graph.html",
19
+ help_text="Filename of the output path, e.g. 'graph.html'.",
20
+ )
21
+
22
+ parser.add_argument(
23
+ "--max-history",
24
+ default=2,
25
+ type=int,
26
+ help="Max history to consider when merging paths in the output graph.",
27
+ )
28
+
29
+ add_nlu_data_param(
30
+ parser,
31
+ default=None,
32
+ help_text="File or folder containing your NLU data, "
33
+ "used to insert example messages into the graph.",
34
+ )
@@ -0,0 +1,30 @@
1
+ import argparse
2
+ from rasa.cli.arguments import default_arguments
3
+ from rasa.cli.arguments.run import add_server_arguments
4
+
5
+
6
+ def set_x_arguments(parser: argparse.ArgumentParser) -> None:
7
+ """Add CLI arguments for running rasa x --production."""
8
+ parser.add_argument(
9
+ "--production",
10
+ action="store_true",
11
+ help="Run a Rasa server in a mode that allows connecting "
12
+ "to Rasa Enterprise as the config endpoint",
13
+ )
14
+
15
+ parser.add_argument(
16
+ "--config-endpoint",
17
+ type=str,
18
+ help="Rasa X endpoint URL from which to pull the runtime config. This URL "
19
+ "typically contains the Rasa X token for authentication. Example: "
20
+ "https://example.com/api/config?token=my_rasa_x_token",
21
+ )
22
+
23
+ parser.add_argument(
24
+ "--no-prompt",
25
+ action="store_true",
26
+ help="Automatic yes or default options to prompts and oppressed warnings.",
27
+ )
28
+
29
+ default_arguments.add_model_param(parser, add_positional_arg=False)
30
+ add_server_arguments(parser)
rasa/cli/data.py ADDED
@@ -0,0 +1,292 @@
1
+ import argparse
2
+ import logging
3
+ import pathlib
4
+ from typing import List
5
+
6
+ import rasa.shared.core.domain
7
+ from rasa import telemetry
8
+ from rasa.cli import SubParsersAction
9
+ from rasa.cli.arguments import data as arguments
10
+ from rasa.cli.arguments import default_arguments
11
+ import rasa.cli.utils
12
+ from rasa.shared.constants import (
13
+ DEFAULT_DATA_PATH,
14
+ DEFAULT_CONFIG_PATH,
15
+ DEFAULT_DOMAIN_PATHS,
16
+ )
17
+ import rasa.shared.data
18
+ from rasa.shared.importers.importer import TrainingDataImporter
19
+ import rasa.shared.nlu.training_data.loading
20
+ import rasa.shared.nlu.training_data.util
21
+ import rasa.shared.utils.cli
22
+ import rasa.utils.common
23
+ import rasa.shared.utils.io
24
+ from rasa.shared.utils.yaml import read_yaml_file, write_yaml
25
+
26
+ logger = logging.getLogger(__name__)
27
+
28
+
29
+ def add_subparser(
30
+ subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
31
+ ) -> None:
32
+ """Add all data parsers.
33
+
34
+ Args:
35
+ subparsers: subparser we are going to attach to
36
+ parents: Parent parsers, needed to ensure tree structure in argparse
37
+ """
38
+ data_parser = subparsers.add_parser(
39
+ "data",
40
+ conflict_handler="resolve",
41
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
42
+ parents=parents,
43
+ help="Utils for the Rasa training files.",
44
+ )
45
+ data_parser.set_defaults(func=lambda _: data_parser.print_help(None))
46
+
47
+ data_subparsers = data_parser.add_subparsers()
48
+
49
+ _add_data_convert_parsers(data_subparsers, parents)
50
+ _add_data_split_parsers(data_subparsers, parents)
51
+ _add_data_validate_parsers(data_subparsers, parents)
52
+ _add_data_migrate_parsers(data_subparsers, parents)
53
+
54
+
55
+ def _add_data_convert_parsers(
56
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
57
+ ) -> None:
58
+ convert_parser = data_subparsers.add_parser(
59
+ "convert",
60
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
61
+ parents=parents,
62
+ help="Converts Rasa data between different formats.",
63
+ )
64
+ convert_parser.set_defaults(func=lambda _: convert_parser.print_help(None))
65
+
66
+ convert_subparsers = convert_parser.add_subparsers()
67
+ convert_nlu_parser = convert_subparsers.add_parser(
68
+ "nlu",
69
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
70
+ parents=parents,
71
+ help="Converts NLU data between formats.",
72
+ )
73
+ convert_nlu_parser.set_defaults(func=_convert_nlu_data)
74
+ arguments.set_convert_arguments(convert_nlu_parser, data_type="Rasa NLU")
75
+
76
+
77
+ def _add_data_split_parsers(
78
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
79
+ ) -> None:
80
+ split_parser = data_subparsers.add_parser(
81
+ "split",
82
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
83
+ parents=parents,
84
+ help="Splits Rasa data into training and test data.",
85
+ )
86
+ split_parser.set_defaults(func=lambda _: split_parser.print_help(None))
87
+
88
+ split_subparsers = split_parser.add_subparsers()
89
+ nlu_split_parser = split_subparsers.add_parser(
90
+ "nlu",
91
+ parents=parents,
92
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
93
+ help="Performs a split of your NLU data into training and test data "
94
+ "according to the specified percentages.",
95
+ )
96
+ nlu_split_parser.set_defaults(func=split_nlu_data)
97
+
98
+ arguments.set_split_arguments(nlu_split_parser)
99
+
100
+ stories_split_parser = split_subparsers.add_parser(
101
+ "stories",
102
+ parents=parents,
103
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
104
+ help="Performs a split of your stories into training and test data "
105
+ "according to the specified percentages.",
106
+ )
107
+ stories_split_parser.set_defaults(func=split_stories_data)
108
+
109
+ arguments.set_split_arguments(stories_split_parser)
110
+
111
+
112
+ def _add_data_validate_parsers(
113
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
114
+ ) -> None:
115
+ validate_parser = data_subparsers.add_parser(
116
+ "validate",
117
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
118
+ parents=parents,
119
+ help="Validates domain and data files to check for possible mistakes.",
120
+ )
121
+ _append_story_structure_arguments(validate_parser)
122
+ validate_parser.set_defaults(
123
+ func=lambda args: rasa.cli.utils.validate_files(
124
+ args.fail_on_warnings, args.max_history, _build_training_data_importer(args)
125
+ )
126
+ )
127
+ arguments.set_validator_arguments(validate_parser)
128
+
129
+ validate_subparsers = validate_parser.add_subparsers()
130
+ story_structure_parser = validate_subparsers.add_parser(
131
+ "stories",
132
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
133
+ parents=parents,
134
+ help="Checks for inconsistencies in the story files.",
135
+ )
136
+ _append_story_structure_arguments(story_structure_parser)
137
+
138
+ story_structure_parser.set_defaults(
139
+ func=lambda args: rasa.cli.utils.validate_files(
140
+ args.fail_on_warnings,
141
+ args.max_history,
142
+ _build_training_data_importer(args),
143
+ stories_only=True,
144
+ )
145
+ )
146
+ arguments.set_validator_arguments(story_structure_parser)
147
+
148
+ flows_structure_parser = validate_subparsers.add_parser(
149
+ "flows",
150
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
151
+ parents=parents,
152
+ help="Checks for inconsistencies in the flows files.",
153
+ )
154
+ flows_structure_parser.set_defaults(
155
+ func=lambda args: rasa.cli.utils.validate_files(
156
+ args.fail_on_warnings,
157
+ args.max_history,
158
+ _build_training_data_importer(args),
159
+ flows_only=True,
160
+ )
161
+ )
162
+ arguments.set_validator_arguments(flows_structure_parser)
163
+
164
+
165
+ def _build_training_data_importer(args: argparse.Namespace) -> "TrainingDataImporter":
166
+ config = rasa.cli.utils.get_validated_path(
167
+ args.config, "config", DEFAULT_CONFIG_PATH, none_is_valid=True
168
+ )
169
+
170
+ # Exit the validation if the domain path is invalid
171
+ domain = rasa.cli.utils.get_validated_path(
172
+ args.domain, "domain", DEFAULT_DOMAIN_PATHS, none_is_valid=False
173
+ )
174
+
175
+ return TrainingDataImporter.load_from_config(
176
+ domain_path=domain, training_data_paths=args.data, config_path=config
177
+ )
178
+
179
+
180
+ def _append_story_structure_arguments(parser: argparse.ArgumentParser) -> None:
181
+ parser.add_argument(
182
+ "--max-history",
183
+ type=int,
184
+ default=None,
185
+ help="Number of turns taken into account for story structure validation.",
186
+ )
187
+ default_arguments.add_config_param(parser)
188
+
189
+
190
+ def split_nlu_data(args: argparse.Namespace) -> None:
191
+ """Load data from a file path and split the NLU data into test and train examples.
192
+
193
+ Args:
194
+ args: Commandline arguments
195
+ """
196
+ data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
197
+ data_path = rasa.shared.data.get_nlu_directory(data_path)
198
+
199
+ nlu_data = rasa.shared.nlu.training_data.loading.load_data(data_path)
200
+ extension = rasa.shared.nlu.training_data.util.get_file_format_extension(data_path)
201
+
202
+ train, test = nlu_data.train_test_split(args.training_fraction, args.random_seed)
203
+
204
+ train.persist(args.out, filename=f"training_data{extension}")
205
+ test.persist(args.out, filename=f"test_data{extension}")
206
+
207
+ telemetry.track_data_split(args.training_fraction, "nlu")
208
+
209
+
210
+ def split_stories_data(args: argparse.Namespace) -> None:
211
+ """Load data from a file path and split stories into test and train examples.
212
+
213
+ Args:
214
+ args: Commandline arguments
215
+ """
216
+ from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
217
+ YAMLStoryReader,
218
+ KEY_STORIES,
219
+ )
220
+ from sklearn.model_selection import train_test_split
221
+
222
+ data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
223
+ data_files = rasa.shared.data.get_data_files(
224
+ data_path, YAMLStoryReader.is_stories_file
225
+ )
226
+ out_path = pathlib.Path(args.out)
227
+ out_path.mkdir(parents=True, exist_ok=True)
228
+
229
+ # load Yaml stories data
230
+ for file_name in data_files:
231
+ file_data = read_yaml_file(file_name)
232
+ assert isinstance(file_data, dict)
233
+ stories = file_data.get(KEY_STORIES, [])
234
+ if not stories:
235
+ logger.info(f"File {file_name} has no stories, skipped")
236
+ continue
237
+
238
+ file_path = pathlib.Path(file_name)
239
+
240
+ # everything besides stories are going into the training data
241
+ train, test = train_test_split(
242
+ stories, test_size=1 - args.training_fraction, random_state=args.random_seed
243
+ )
244
+ out_file_train = out_path / ("train_" + file_path.name)
245
+ out_file_test = out_path / ("test_" + file_path.name)
246
+
247
+ # train file contains everything else from the file + train stories
248
+ file_data[KEY_STORIES] = train
249
+ write_yaml(file_data, out_file_train)
250
+
251
+ # test file contains just test stories
252
+ write_yaml({KEY_STORIES: test}, out_file_test)
253
+ logger.info(
254
+ f"From {file_name} we produced {out_file_train} "
255
+ f"with {len(train)} stories and {out_file_test} "
256
+ f"with {len(test)} stories"
257
+ )
258
+
259
+
260
+ def _convert_nlu_data(args: argparse.Namespace) -> None:
261
+ import rasa.nlu.convert
262
+
263
+ if args.format in ["json", "yaml"]:
264
+ rasa.nlu.convert.convert_training_data(
265
+ args.data, args.out, args.format, args.language
266
+ )
267
+ telemetry.track_data_convert(args.format, "nlu")
268
+ else:
269
+ rasa.shared.utils.cli.print_error_and_exit(
270
+ "Could not recognize output format. Supported output formats: 'json' "
271
+ "and 'yaml'. Specify the desired output format with '--format'."
272
+ )
273
+
274
+
275
+ def _add_data_migrate_parsers(
276
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
277
+ ) -> None:
278
+ migrate_parser = data_subparsers.add_parser(
279
+ "migrate",
280
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
281
+ parents=parents,
282
+ help="Converts Rasa domain 2.0 format to required format for 3.0.",
283
+ )
284
+ migrate_parser.set_defaults(func=_migrate_domain)
285
+
286
+ arguments.set_migrate_arguments(migrate_parser)
287
+
288
+
289
+ def _migrate_domain(args: argparse.Namespace) -> None:
290
+ import rasa.core.migrate
291
+
292
+ rasa.core.migrate.migrate_domain_format(args.domain, args.out)