rasa-pro 3.12.0.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 (790) hide show
  1. README.md +41 -0
  2. rasa/__init__.py +9 -0
  3. rasa/__main__.py +177 -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 +160 -0
  12. rasa/cli/__init__.py +5 -0
  13. rasa/cli/arguments/__init__.py +0 -0
  14. rasa/cli/arguments/data.py +106 -0
  15. rasa/cli/arguments/default_arguments.py +207 -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 +219 -0
  20. rasa/cli/arguments/shell.py +17 -0
  21. rasa/cli/arguments/test.py +211 -0
  22. rasa/cli/arguments/train.py +279 -0
  23. rasa/cli/arguments/visualize.py +34 -0
  24. rasa/cli/arguments/x.py +30 -0
  25. rasa/cli/data.py +354 -0
  26. rasa/cli/dialogue_understanding_test.py +251 -0
  27. rasa/cli/e2e_test.py +259 -0
  28. rasa/cli/evaluate.py +222 -0
  29. rasa/cli/export.py +250 -0
  30. rasa/cli/inspect.py +75 -0
  31. rasa/cli/interactive.py +166 -0
  32. rasa/cli/license.py +65 -0
  33. rasa/cli/llm_fine_tuning.py +403 -0
  34. rasa/cli/markers.py +78 -0
  35. rasa/cli/project_templates/__init__.py +0 -0
  36. rasa/cli/project_templates/calm/actions/__init__.py +0 -0
  37. rasa/cli/project_templates/calm/actions/action_template.py +27 -0
  38. rasa/cli/project_templates/calm/actions/add_contact.py +30 -0
  39. rasa/cli/project_templates/calm/actions/db.py +57 -0
  40. rasa/cli/project_templates/calm/actions/list_contacts.py +22 -0
  41. rasa/cli/project_templates/calm/actions/remove_contact.py +35 -0
  42. rasa/cli/project_templates/calm/config.yml +10 -0
  43. rasa/cli/project_templates/calm/credentials.yml +33 -0
  44. rasa/cli/project_templates/calm/data/flows/add_contact.yml +31 -0
  45. rasa/cli/project_templates/calm/data/flows/list_contacts.yml +14 -0
  46. rasa/cli/project_templates/calm/data/flows/remove_contact.yml +29 -0
  47. rasa/cli/project_templates/calm/db/contacts.json +10 -0
  48. rasa/cli/project_templates/calm/domain/add_contact.yml +39 -0
  49. rasa/cli/project_templates/calm/domain/list_contacts.yml +17 -0
  50. rasa/cli/project_templates/calm/domain/remove_contact.yml +38 -0
  51. rasa/cli/project_templates/calm/domain/shared.yml +10 -0
  52. rasa/cli/project_templates/calm/e2e_tests/cancelations/user_cancels_during_a_correction.yml +16 -0
  53. rasa/cli/project_templates/calm/e2e_tests/cancelations/user_changes_mind_on_a_whim.yml +7 -0
  54. rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_handle.yml +20 -0
  55. rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_name.yml +19 -0
  56. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_adds_contact_to_their_list.yml +15 -0
  57. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_lists_contacts.yml +5 -0
  58. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact.yml +11 -0
  59. rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact_from_list.yml +12 -0
  60. rasa/cli/project_templates/calm/endpoints.yml +58 -0
  61. rasa/cli/project_templates/default/actions/__init__.py +0 -0
  62. rasa/cli/project_templates/default/actions/actions.py +27 -0
  63. rasa/cli/project_templates/default/config.yml +44 -0
  64. rasa/cli/project_templates/default/credentials.yml +33 -0
  65. rasa/cli/project_templates/default/data/nlu.yml +91 -0
  66. rasa/cli/project_templates/default/data/rules.yml +13 -0
  67. rasa/cli/project_templates/default/data/stories.yml +30 -0
  68. rasa/cli/project_templates/default/domain.yml +34 -0
  69. rasa/cli/project_templates/default/endpoints.yml +42 -0
  70. rasa/cli/project_templates/default/tests/test_stories.yml +91 -0
  71. rasa/cli/project_templates/tutorial/actions/__init__.py +0 -0
  72. rasa/cli/project_templates/tutorial/actions/actions.py +22 -0
  73. rasa/cli/project_templates/tutorial/config.yml +12 -0
  74. rasa/cli/project_templates/tutorial/credentials.yml +33 -0
  75. rasa/cli/project_templates/tutorial/data/flows.yml +8 -0
  76. rasa/cli/project_templates/tutorial/data/patterns.yml +11 -0
  77. rasa/cli/project_templates/tutorial/domain.yml +35 -0
  78. rasa/cli/project_templates/tutorial/endpoints.yml +55 -0
  79. rasa/cli/run.py +143 -0
  80. rasa/cli/scaffold.py +273 -0
  81. rasa/cli/shell.py +141 -0
  82. rasa/cli/studio/__init__.py +0 -0
  83. rasa/cli/studio/download.py +62 -0
  84. rasa/cli/studio/studio.py +296 -0
  85. rasa/cli/studio/train.py +59 -0
  86. rasa/cli/studio/upload.py +62 -0
  87. rasa/cli/telemetry.py +102 -0
  88. rasa/cli/test.py +280 -0
  89. rasa/cli/train.py +278 -0
  90. rasa/cli/utils.py +484 -0
  91. rasa/cli/visualize.py +40 -0
  92. rasa/cli/x.py +206 -0
  93. rasa/constants.py +45 -0
  94. rasa/core/__init__.py +17 -0
  95. rasa/core/actions/__init__.py +0 -0
  96. rasa/core/actions/action.py +1318 -0
  97. rasa/core/actions/action_clean_stack.py +59 -0
  98. rasa/core/actions/action_exceptions.py +24 -0
  99. rasa/core/actions/action_hangup.py +29 -0
  100. rasa/core/actions/action_repeat_bot_messages.py +89 -0
  101. rasa/core/actions/action_run_slot_rejections.py +210 -0
  102. rasa/core/actions/action_trigger_chitchat.py +31 -0
  103. rasa/core/actions/action_trigger_flow.py +109 -0
  104. rasa/core/actions/action_trigger_search.py +31 -0
  105. rasa/core/actions/constants.py +5 -0
  106. rasa/core/actions/custom_action_executor.py +191 -0
  107. rasa/core/actions/direct_custom_actions_executor.py +109 -0
  108. rasa/core/actions/e2e_stub_custom_action_executor.py +72 -0
  109. rasa/core/actions/forms.py +741 -0
  110. rasa/core/actions/grpc_custom_action_executor.py +251 -0
  111. rasa/core/actions/http_custom_action_executor.py +145 -0
  112. rasa/core/actions/loops.py +114 -0
  113. rasa/core/actions/two_stage_fallback.py +186 -0
  114. rasa/core/agent.py +559 -0
  115. rasa/core/auth_retry_tracker_store.py +122 -0
  116. rasa/core/brokers/__init__.py +0 -0
  117. rasa/core/brokers/broker.py +126 -0
  118. rasa/core/brokers/file.py +58 -0
  119. rasa/core/brokers/kafka.py +324 -0
  120. rasa/core/brokers/pika.py +388 -0
  121. rasa/core/brokers/sql.py +86 -0
  122. rasa/core/channels/__init__.py +61 -0
  123. rasa/core/channels/botframework.py +338 -0
  124. rasa/core/channels/callback.py +84 -0
  125. rasa/core/channels/channel.py +456 -0
  126. rasa/core/channels/console.py +241 -0
  127. rasa/core/channels/development_inspector.py +197 -0
  128. rasa/core/channels/facebook.py +419 -0
  129. rasa/core/channels/hangouts.py +329 -0
  130. rasa/core/channels/inspector/.eslintrc.cjs +25 -0
  131. rasa/core/channels/inspector/.gitignore +23 -0
  132. rasa/core/channels/inspector/README.md +54 -0
  133. rasa/core/channels/inspector/assets/favicon.ico +0 -0
  134. rasa/core/channels/inspector/assets/rasa-chat.js +2 -0
  135. rasa/core/channels/inspector/custom.d.ts +3 -0
  136. rasa/core/channels/inspector/dist/assets/arc-861ddd57.js +1 -0
  137. rasa/core/channels/inspector/dist/assets/array-9f3ba611.js +1 -0
  138. rasa/core/channels/inspector/dist/assets/c4Diagram-d0fbc5ce-921f02db.js +10 -0
  139. rasa/core/channels/inspector/dist/assets/classDiagram-936ed81e-b436c4f8.js +2 -0
  140. rasa/core/channels/inspector/dist/assets/classDiagram-v2-c3cb15f1-511a23cb.js +2 -0
  141. rasa/core/channels/inspector/dist/assets/createText-62fc7601-ef476ecd.js +7 -0
  142. rasa/core/channels/inspector/dist/assets/edges-f2ad444c-f1878e0a.js +4 -0
  143. rasa/core/channels/inspector/dist/assets/erDiagram-9d236eb7-fac75185.js +51 -0
  144. rasa/core/channels/inspector/dist/assets/flowDb-1972c806-201c5bbc.js +6 -0
  145. rasa/core/channels/inspector/dist/assets/flowDiagram-7ea5b25a-f904ae41.js +4 -0
  146. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-b080d6f2.js +1 -0
  147. rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-abe16c3d-1813da66.js +139 -0
  148. rasa/core/channels/inspector/dist/assets/ganttDiagram-9b5ea136-872af172.js +266 -0
  149. rasa/core/channels/inspector/dist/assets/gitGraphDiagram-99d0ae7c-34a0af5a.js +70 -0
  150. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-128cfa44.ttf +0 -0
  151. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-21dbcb97.woff +0 -0
  152. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-222b5e26.svg +329 -0
  153. rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-9ad89b2a.woff2 +0 -0
  154. rasa/core/channels/inspector/dist/assets/index-2c4b9a3b-42ba3e3d.js +1 -0
  155. rasa/core/channels/inspector/dist/assets/index-37817b51.js +1317 -0
  156. rasa/core/channels/inspector/dist/assets/index-3ee28881.css +1 -0
  157. rasa/core/channels/inspector/dist/assets/infoDiagram-736b4530-6b731386.js +7 -0
  158. rasa/core/channels/inspector/dist/assets/init-77b53fdd.js +1 -0
  159. rasa/core/channels/inspector/dist/assets/journeyDiagram-df861f2b-e8579ac6.js +139 -0
  160. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-60c05ee4.woff +0 -0
  161. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-8335d9b8.svg +438 -0
  162. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-9cc39c75.ttf +0 -0
  163. rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-ead13ccf.woff2 +0 -0
  164. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-16705655.woff2 +0 -0
  165. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-5aeb07f9.woff +0 -0
  166. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9c459044.ttf +0 -0
  167. rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9e2898a4.svg +435 -0
  168. rasa/core/channels/inspector/dist/assets/layout-89e6403a.js +1 -0
  169. rasa/core/channels/inspector/dist/assets/line-dc73d3fc.js +1 -0
  170. rasa/core/channels/inspector/dist/assets/linear-f5b1d2bc.js +1 -0
  171. rasa/core/channels/inspector/dist/assets/mindmap-definition-beec6740-82cb74fa.js +109 -0
  172. rasa/core/channels/inspector/dist/assets/ordinal-ba9b4969.js +1 -0
  173. rasa/core/channels/inspector/dist/assets/path-53f90ab3.js +1 -0
  174. rasa/core/channels/inspector/dist/assets/pieDiagram-dbbf0591-bdf5f29b.js +35 -0
  175. rasa/core/channels/inspector/dist/assets/quadrantDiagram-4d7f4fd6-c7a0cbe4.js +7 -0
  176. rasa/core/channels/inspector/dist/assets/requirementDiagram-6fc4c22a-7ec5410f.js +52 -0
  177. rasa/core/channels/inspector/dist/assets/sankeyDiagram-8f13d901-caee5554.js +8 -0
  178. rasa/core/channels/inspector/dist/assets/sequenceDiagram-b655622a-2935f8db.js +122 -0
  179. rasa/core/channels/inspector/dist/assets/stateDiagram-59f0c015-8f5d9693.js +1 -0
  180. rasa/core/channels/inspector/dist/assets/stateDiagram-v2-2b26beab-d565d1de.js +1 -0
  181. rasa/core/channels/inspector/dist/assets/styles-080da4f6-75ad421d.js +110 -0
  182. rasa/core/channels/inspector/dist/assets/styles-3dcbcfbf-7e764226.js +159 -0
  183. rasa/core/channels/inspector/dist/assets/styles-9c745c82-7a4e0e61.js +207 -0
  184. rasa/core/channels/inspector/dist/assets/svgDrawCommon-4835440b-4019d1bf.js +1 -0
  185. rasa/core/channels/inspector/dist/assets/timeline-definition-5b62e21b-01ea12df.js +61 -0
  186. rasa/core/channels/inspector/dist/assets/xychartDiagram-2b33534f-89407137.js +7 -0
  187. rasa/core/channels/inspector/dist/index.html +42 -0
  188. rasa/core/channels/inspector/index.html +40 -0
  189. rasa/core/channels/inspector/jest.config.ts +13 -0
  190. rasa/core/channels/inspector/package.json +52 -0
  191. rasa/core/channels/inspector/setupTests.ts +2 -0
  192. rasa/core/channels/inspector/src/App.tsx +220 -0
  193. rasa/core/channels/inspector/src/components/Chat.tsx +95 -0
  194. rasa/core/channels/inspector/src/components/DiagramFlow.tsx +108 -0
  195. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +187 -0
  196. rasa/core/channels/inspector/src/components/DialogueStack.tsx +136 -0
  197. rasa/core/channels/inspector/src/components/ExpandIcon.tsx +16 -0
  198. rasa/core/channels/inspector/src/components/FullscreenButton.tsx +45 -0
  199. rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +22 -0
  200. rasa/core/channels/inspector/src/components/NoActiveFlow.tsx +21 -0
  201. rasa/core/channels/inspector/src/components/RasaLogo.tsx +32 -0
  202. rasa/core/channels/inspector/src/components/SaraDiagrams.tsx +39 -0
  203. rasa/core/channels/inspector/src/components/Slots.tsx +91 -0
  204. rasa/core/channels/inspector/src/components/Welcome.tsx +54 -0
  205. rasa/core/channels/inspector/src/helpers/audiostream.ts +191 -0
  206. rasa/core/channels/inspector/src/helpers/formatters.test.ts +392 -0
  207. rasa/core/channels/inspector/src/helpers/formatters.ts +306 -0
  208. rasa/core/channels/inspector/src/helpers/utils.ts +127 -0
  209. rasa/core/channels/inspector/src/main.tsx +13 -0
  210. rasa/core/channels/inspector/src/theme/Button/Button.ts +29 -0
  211. rasa/core/channels/inspector/src/theme/Heading/Heading.ts +31 -0
  212. rasa/core/channels/inspector/src/theme/Input/Input.ts +27 -0
  213. rasa/core/channels/inspector/src/theme/Link/Link.ts +10 -0
  214. rasa/core/channels/inspector/src/theme/Modal/Modal.ts +47 -0
  215. rasa/core/channels/inspector/src/theme/Table/Table.tsx +38 -0
  216. rasa/core/channels/inspector/src/theme/Tooltip/Tooltip.ts +12 -0
  217. rasa/core/channels/inspector/src/theme/base/breakpoints.ts +8 -0
  218. rasa/core/channels/inspector/src/theme/base/colors.ts +88 -0
  219. rasa/core/channels/inspector/src/theme/base/fonts/fontFaces.css +29 -0
  220. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.eot +0 -0
  221. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.svg +329 -0
  222. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.ttf +0 -0
  223. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff +0 -0
  224. rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff2 +0 -0
  225. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.eot +0 -0
  226. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.svg +438 -0
  227. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.ttf +0 -0
  228. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff +0 -0
  229. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff2 +0 -0
  230. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.eot +0 -0
  231. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.svg +435 -0
  232. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.ttf +0 -0
  233. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff +0 -0
  234. rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff2 +0 -0
  235. rasa/core/channels/inspector/src/theme/base/radii.ts +9 -0
  236. rasa/core/channels/inspector/src/theme/base/shadows.ts +7 -0
  237. rasa/core/channels/inspector/src/theme/base/sizes.ts +7 -0
  238. rasa/core/channels/inspector/src/theme/base/space.ts +15 -0
  239. rasa/core/channels/inspector/src/theme/base/styles.ts +13 -0
  240. rasa/core/channels/inspector/src/theme/base/typography.ts +24 -0
  241. rasa/core/channels/inspector/src/theme/base/zIndices.ts +19 -0
  242. rasa/core/channels/inspector/src/theme/index.ts +101 -0
  243. rasa/core/channels/inspector/src/types.ts +84 -0
  244. rasa/core/channels/inspector/src/vite-env.d.ts +1 -0
  245. rasa/core/channels/inspector/tests/__mocks__/fileMock.ts +1 -0
  246. rasa/core/channels/inspector/tests/__mocks__/matchMedia.ts +16 -0
  247. rasa/core/channels/inspector/tests/__mocks__/styleMock.ts +1 -0
  248. rasa/core/channels/inspector/tests/renderWithProviders.tsx +14 -0
  249. rasa/core/channels/inspector/tsconfig.json +26 -0
  250. rasa/core/channels/inspector/tsconfig.node.json +10 -0
  251. rasa/core/channels/inspector/vite.config.ts +8 -0
  252. rasa/core/channels/inspector/yarn.lock +6249 -0
  253. rasa/core/channels/mattermost.py +229 -0
  254. rasa/core/channels/rasa_chat.py +126 -0
  255. rasa/core/channels/rest.py +230 -0
  256. rasa/core/channels/rocketchat.py +174 -0
  257. rasa/core/channels/slack.py +620 -0
  258. rasa/core/channels/socketio.py +302 -0
  259. rasa/core/channels/telegram.py +298 -0
  260. rasa/core/channels/twilio.py +169 -0
  261. rasa/core/channels/vier_cvg.py +374 -0
  262. rasa/core/channels/voice_ready/__init__.py +0 -0
  263. rasa/core/channels/voice_ready/audiocodes.py +501 -0
  264. rasa/core/channels/voice_ready/jambonz.py +121 -0
  265. rasa/core/channels/voice_ready/jambonz_protocol.py +396 -0
  266. rasa/core/channels/voice_ready/twilio_voice.py +403 -0
  267. rasa/core/channels/voice_ready/utils.py +37 -0
  268. rasa/core/channels/voice_stream/__init__.py +0 -0
  269. rasa/core/channels/voice_stream/asr/__init__.py +0 -0
  270. rasa/core/channels/voice_stream/asr/asr_engine.py +89 -0
  271. rasa/core/channels/voice_stream/asr/asr_event.py +18 -0
  272. rasa/core/channels/voice_stream/asr/azure.py +130 -0
  273. rasa/core/channels/voice_stream/asr/deepgram.py +90 -0
  274. rasa/core/channels/voice_stream/audio_bytes.py +8 -0
  275. rasa/core/channels/voice_stream/browser_audio.py +107 -0
  276. rasa/core/channels/voice_stream/call_state.py +23 -0
  277. rasa/core/channels/voice_stream/tts/__init__.py +0 -0
  278. rasa/core/channels/voice_stream/tts/azure.py +106 -0
  279. rasa/core/channels/voice_stream/tts/cartesia.py +118 -0
  280. rasa/core/channels/voice_stream/tts/tts_cache.py +27 -0
  281. rasa/core/channels/voice_stream/tts/tts_engine.py +58 -0
  282. rasa/core/channels/voice_stream/twilio_media_streams.py +173 -0
  283. rasa/core/channels/voice_stream/util.py +57 -0
  284. rasa/core/channels/voice_stream/voice_channel.py +427 -0
  285. rasa/core/channels/webexteams.py +134 -0
  286. rasa/core/concurrent_lock_store.py +210 -0
  287. rasa/core/constants.py +112 -0
  288. rasa/core/evaluation/__init__.py +0 -0
  289. rasa/core/evaluation/marker.py +267 -0
  290. rasa/core/evaluation/marker_base.py +923 -0
  291. rasa/core/evaluation/marker_stats.py +293 -0
  292. rasa/core/evaluation/marker_tracker_loader.py +103 -0
  293. rasa/core/exceptions.py +29 -0
  294. rasa/core/exporter.py +284 -0
  295. rasa/core/featurizers/__init__.py +0 -0
  296. rasa/core/featurizers/precomputation.py +410 -0
  297. rasa/core/featurizers/single_state_featurizer.py +421 -0
  298. rasa/core/featurizers/tracker_featurizers.py +1262 -0
  299. rasa/core/http_interpreter.py +89 -0
  300. rasa/core/information_retrieval/__init__.py +7 -0
  301. rasa/core/information_retrieval/faiss.py +124 -0
  302. rasa/core/information_retrieval/information_retrieval.py +137 -0
  303. rasa/core/information_retrieval/milvus.py +59 -0
  304. rasa/core/information_retrieval/qdrant.py +96 -0
  305. rasa/core/jobs.py +63 -0
  306. rasa/core/lock.py +139 -0
  307. rasa/core/lock_store.py +343 -0
  308. rasa/core/migrate.py +403 -0
  309. rasa/core/nlg/__init__.py +3 -0
  310. rasa/core/nlg/callback.py +146 -0
  311. rasa/core/nlg/contextual_response_rephraser.py +320 -0
  312. rasa/core/nlg/generator.py +230 -0
  313. rasa/core/nlg/interpolator.py +143 -0
  314. rasa/core/nlg/response.py +155 -0
  315. rasa/core/nlg/summarize.py +70 -0
  316. rasa/core/persistor.py +538 -0
  317. rasa/core/policies/__init__.py +0 -0
  318. rasa/core/policies/ensemble.py +329 -0
  319. rasa/core/policies/enterprise_search_policy.py +905 -0
  320. rasa/core/policies/enterprise_search_prompt_template.jinja2 +25 -0
  321. rasa/core/policies/enterprise_search_prompt_with_citation_template.jinja2 +60 -0
  322. rasa/core/policies/flow_policy.py +205 -0
  323. rasa/core/policies/flows/__init__.py +0 -0
  324. rasa/core/policies/flows/flow_exceptions.py +44 -0
  325. rasa/core/policies/flows/flow_executor.py +754 -0
  326. rasa/core/policies/flows/flow_step_result.py +43 -0
  327. rasa/core/policies/intentless_policy.py +1031 -0
  328. rasa/core/policies/intentless_prompt_template.jinja2 +22 -0
  329. rasa/core/policies/memoization.py +538 -0
  330. rasa/core/policies/policy.py +725 -0
  331. rasa/core/policies/rule_policy.py +1273 -0
  332. rasa/core/policies/ted_policy.py +2169 -0
  333. rasa/core/policies/unexpected_intent_policy.py +1022 -0
  334. rasa/core/processor.py +1465 -0
  335. rasa/core/run.py +342 -0
  336. rasa/core/secrets_manager/__init__.py +0 -0
  337. rasa/core/secrets_manager/constants.py +36 -0
  338. rasa/core/secrets_manager/endpoints.py +391 -0
  339. rasa/core/secrets_manager/factory.py +241 -0
  340. rasa/core/secrets_manager/secret_manager.py +262 -0
  341. rasa/core/secrets_manager/vault.py +584 -0
  342. rasa/core/test.py +1335 -0
  343. rasa/core/tracker_store.py +1703 -0
  344. rasa/core/train.py +105 -0
  345. rasa/core/training/__init__.py +89 -0
  346. rasa/core/training/converters/__init__.py +0 -0
  347. rasa/core/training/converters/responses_prefix_converter.py +119 -0
  348. rasa/core/training/interactive.py +1744 -0
  349. rasa/core/training/story_conflict.py +381 -0
  350. rasa/core/training/training.py +93 -0
  351. rasa/core/utils.py +366 -0
  352. rasa/core/visualize.py +70 -0
  353. rasa/dialogue_understanding/__init__.py +0 -0
  354. rasa/dialogue_understanding/coexistence/__init__.py +0 -0
  355. rasa/dialogue_understanding/coexistence/constants.py +4 -0
  356. rasa/dialogue_understanding/coexistence/intent_based_router.py +196 -0
  357. rasa/dialogue_understanding/coexistence/llm_based_router.py +327 -0
  358. rasa/dialogue_understanding/coexistence/router_template.jinja2 +12 -0
  359. rasa/dialogue_understanding/commands/__init__.py +61 -0
  360. rasa/dialogue_understanding/commands/can_not_handle_command.py +70 -0
  361. rasa/dialogue_understanding/commands/cancel_flow_command.py +125 -0
  362. rasa/dialogue_understanding/commands/change_flow_command.py +44 -0
  363. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +57 -0
  364. rasa/dialogue_understanding/commands/clarify_command.py +86 -0
  365. rasa/dialogue_understanding/commands/command.py +85 -0
  366. rasa/dialogue_understanding/commands/correct_slots_command.py +297 -0
  367. rasa/dialogue_understanding/commands/error_command.py +79 -0
  368. rasa/dialogue_understanding/commands/free_form_answer_command.py +9 -0
  369. rasa/dialogue_understanding/commands/handle_code_change_command.py +73 -0
  370. rasa/dialogue_understanding/commands/human_handoff_command.py +66 -0
  371. rasa/dialogue_understanding/commands/knowledge_answer_command.py +57 -0
  372. rasa/dialogue_understanding/commands/noop_command.py +54 -0
  373. rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +60 -0
  374. rasa/dialogue_understanding/commands/restart_command.py +58 -0
  375. rasa/dialogue_understanding/commands/session_end_command.py +61 -0
  376. rasa/dialogue_understanding/commands/session_start_command.py +59 -0
  377. rasa/dialogue_understanding/commands/set_slot_command.py +160 -0
  378. rasa/dialogue_understanding/commands/skip_question_command.py +75 -0
  379. rasa/dialogue_understanding/commands/start_flow_command.py +107 -0
  380. rasa/dialogue_understanding/commands/user_silence_command.py +59 -0
  381. rasa/dialogue_understanding/commands/utils.py +45 -0
  382. rasa/dialogue_understanding/generator/__init__.py +21 -0
  383. rasa/dialogue_understanding/generator/command_generator.py +464 -0
  384. rasa/dialogue_understanding/generator/constants.py +27 -0
  385. rasa/dialogue_understanding/generator/flow_document_template.jinja2 +4 -0
  386. rasa/dialogue_understanding/generator/flow_retrieval.py +466 -0
  387. rasa/dialogue_understanding/generator/llm_based_command_generator.py +500 -0
  388. rasa/dialogue_understanding/generator/llm_command_generator.py +67 -0
  389. rasa/dialogue_understanding/generator/multi_step/__init__.py +0 -0
  390. rasa/dialogue_understanding/generator/multi_step/fill_slots_prompt.jinja2 +62 -0
  391. rasa/dialogue_understanding/generator/multi_step/handle_flows_prompt.jinja2 +38 -0
  392. rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +920 -0
  393. rasa/dialogue_understanding/generator/nlu_command_adapter.py +261 -0
  394. rasa/dialogue_understanding/generator/single_step/__init__.py +0 -0
  395. rasa/dialogue_understanding/generator/single_step/command_prompt_template.jinja2 +60 -0
  396. rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +486 -0
  397. rasa/dialogue_understanding/patterns/__init__.py +0 -0
  398. rasa/dialogue_understanding/patterns/cancel.py +111 -0
  399. rasa/dialogue_understanding/patterns/cannot_handle.py +43 -0
  400. rasa/dialogue_understanding/patterns/chitchat.py +37 -0
  401. rasa/dialogue_understanding/patterns/clarify.py +97 -0
  402. rasa/dialogue_understanding/patterns/code_change.py +41 -0
  403. rasa/dialogue_understanding/patterns/collect_information.py +90 -0
  404. rasa/dialogue_understanding/patterns/completed.py +40 -0
  405. rasa/dialogue_understanding/patterns/continue_interrupted.py +42 -0
  406. rasa/dialogue_understanding/patterns/correction.py +278 -0
  407. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +301 -0
  408. rasa/dialogue_understanding/patterns/human_handoff.py +37 -0
  409. rasa/dialogue_understanding/patterns/internal_error.py +47 -0
  410. rasa/dialogue_understanding/patterns/repeat.py +37 -0
  411. rasa/dialogue_understanding/patterns/restart.py +37 -0
  412. rasa/dialogue_understanding/patterns/search.py +37 -0
  413. rasa/dialogue_understanding/patterns/session_start.py +37 -0
  414. rasa/dialogue_understanding/patterns/skip_question.py +38 -0
  415. rasa/dialogue_understanding/patterns/user_silence.py +37 -0
  416. rasa/dialogue_understanding/processor/__init__.py +0 -0
  417. rasa/dialogue_understanding/processor/command_processor.py +720 -0
  418. rasa/dialogue_understanding/processor/command_processor_component.py +43 -0
  419. rasa/dialogue_understanding/stack/__init__.py +0 -0
  420. rasa/dialogue_understanding/stack/dialogue_stack.py +178 -0
  421. rasa/dialogue_understanding/stack/frames/__init__.py +19 -0
  422. rasa/dialogue_understanding/stack/frames/chit_chat_frame.py +27 -0
  423. rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py +137 -0
  424. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +157 -0
  425. rasa/dialogue_understanding/stack/frames/pattern_frame.py +10 -0
  426. rasa/dialogue_understanding/stack/frames/search_frame.py +27 -0
  427. rasa/dialogue_understanding/stack/utils.py +211 -0
  428. rasa/dialogue_understanding/utils.py +14 -0
  429. rasa/dialogue_understanding_test/__init__.py +0 -0
  430. rasa/dialogue_understanding_test/command_metric_calculation.py +12 -0
  431. rasa/dialogue_understanding_test/constants.py +17 -0
  432. rasa/dialogue_understanding_test/du_test_case.py +118 -0
  433. rasa/dialogue_understanding_test/du_test_result.py +11 -0
  434. rasa/dialogue_understanding_test/du_test_runner.py +93 -0
  435. rasa/dialogue_understanding_test/io.py +54 -0
  436. rasa/dialogue_understanding_test/validation.py +22 -0
  437. rasa/e2e_test/__init__.py +0 -0
  438. rasa/e2e_test/aggregate_test_stats_calculator.py +134 -0
  439. rasa/e2e_test/assertions.py +1345 -0
  440. rasa/e2e_test/assertions_schema.yml +129 -0
  441. rasa/e2e_test/constants.py +31 -0
  442. rasa/e2e_test/e2e_config.py +220 -0
  443. rasa/e2e_test/e2e_config_schema.yml +26 -0
  444. rasa/e2e_test/e2e_test_case.py +569 -0
  445. rasa/e2e_test/e2e_test_converter.py +363 -0
  446. rasa/e2e_test/e2e_test_converter_prompt.jinja2 +70 -0
  447. rasa/e2e_test/e2e_test_coverage_report.py +364 -0
  448. rasa/e2e_test/e2e_test_result.py +54 -0
  449. rasa/e2e_test/e2e_test_runner.py +1192 -0
  450. rasa/e2e_test/e2e_test_schema.yml +181 -0
  451. rasa/e2e_test/pykwalify_extensions.py +39 -0
  452. rasa/e2e_test/stub_custom_action.py +70 -0
  453. rasa/e2e_test/utils/__init__.py +0 -0
  454. rasa/e2e_test/utils/e2e_yaml_utils.py +55 -0
  455. rasa/e2e_test/utils/io.py +598 -0
  456. rasa/e2e_test/utils/validation.py +178 -0
  457. rasa/engine/__init__.py +0 -0
  458. rasa/engine/caching.py +463 -0
  459. rasa/engine/constants.py +17 -0
  460. rasa/engine/exceptions.py +14 -0
  461. rasa/engine/graph.py +642 -0
  462. rasa/engine/loader.py +48 -0
  463. rasa/engine/recipes/__init__.py +0 -0
  464. rasa/engine/recipes/config_files/default_config.yml +41 -0
  465. rasa/engine/recipes/default_components.py +97 -0
  466. rasa/engine/recipes/default_recipe.py +1272 -0
  467. rasa/engine/recipes/graph_recipe.py +79 -0
  468. rasa/engine/recipes/recipe.py +93 -0
  469. rasa/engine/runner/__init__.py +0 -0
  470. rasa/engine/runner/dask.py +250 -0
  471. rasa/engine/runner/interface.py +49 -0
  472. rasa/engine/storage/__init__.py +0 -0
  473. rasa/engine/storage/local_model_storage.py +244 -0
  474. rasa/engine/storage/resource.py +110 -0
  475. rasa/engine/storage/storage.py +199 -0
  476. rasa/engine/training/__init__.py +0 -0
  477. rasa/engine/training/components.py +176 -0
  478. rasa/engine/training/fingerprinting.py +64 -0
  479. rasa/engine/training/graph_trainer.py +256 -0
  480. rasa/engine/training/hooks.py +164 -0
  481. rasa/engine/validation.py +1451 -0
  482. rasa/env.py +14 -0
  483. rasa/exceptions.py +69 -0
  484. rasa/graph_components/__init__.py +0 -0
  485. rasa/graph_components/converters/__init__.py +0 -0
  486. rasa/graph_components/converters/nlu_message_converter.py +48 -0
  487. rasa/graph_components/providers/__init__.py +0 -0
  488. rasa/graph_components/providers/domain_for_core_training_provider.py +87 -0
  489. rasa/graph_components/providers/domain_provider.py +71 -0
  490. rasa/graph_components/providers/flows_provider.py +74 -0
  491. rasa/graph_components/providers/forms_provider.py +44 -0
  492. rasa/graph_components/providers/nlu_training_data_provider.py +56 -0
  493. rasa/graph_components/providers/responses_provider.py +44 -0
  494. rasa/graph_components/providers/rule_only_provider.py +49 -0
  495. rasa/graph_components/providers/story_graph_provider.py +96 -0
  496. rasa/graph_components/providers/training_tracker_provider.py +55 -0
  497. rasa/graph_components/validators/__init__.py +0 -0
  498. rasa/graph_components/validators/default_recipe_validator.py +550 -0
  499. rasa/graph_components/validators/finetuning_validator.py +302 -0
  500. rasa/hooks.py +111 -0
  501. rasa/jupyter.py +63 -0
  502. rasa/llm_fine_tuning/__init__.py +0 -0
  503. rasa/llm_fine_tuning/annotation_module.py +241 -0
  504. rasa/llm_fine_tuning/conversations.py +144 -0
  505. rasa/llm_fine_tuning/llm_data_preparation_module.py +178 -0
  506. rasa/llm_fine_tuning/paraphrasing/__init__.py +0 -0
  507. rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +281 -0
  508. rasa/llm_fine_tuning/paraphrasing/default_rephrase_prompt_template.jina2 +44 -0
  509. rasa/llm_fine_tuning/paraphrasing/rephrase_validator.py +121 -0
  510. rasa/llm_fine_tuning/paraphrasing/rephrased_user_message.py +10 -0
  511. rasa/llm_fine_tuning/paraphrasing_module.py +128 -0
  512. rasa/llm_fine_tuning/storage.py +174 -0
  513. rasa/llm_fine_tuning/train_test_split_module.py +441 -0
  514. rasa/markers/__init__.py +0 -0
  515. rasa/markers/marker.py +269 -0
  516. rasa/markers/marker_base.py +828 -0
  517. rasa/markers/upload.py +74 -0
  518. rasa/markers/validate.py +21 -0
  519. rasa/model.py +118 -0
  520. rasa/model_manager/__init__.py +0 -0
  521. rasa/model_manager/config.py +40 -0
  522. rasa/model_manager/model_api.py +559 -0
  523. rasa/model_manager/runner_service.py +286 -0
  524. rasa/model_manager/socket_bridge.py +146 -0
  525. rasa/model_manager/studio_jwt_auth.py +86 -0
  526. rasa/model_manager/trainer_service.py +325 -0
  527. rasa/model_manager/utils.py +87 -0
  528. rasa/model_manager/warm_rasa_process.py +187 -0
  529. rasa/model_service.py +112 -0
  530. rasa/model_testing.py +457 -0
  531. rasa/model_training.py +596 -0
  532. rasa/nlu/__init__.py +7 -0
  533. rasa/nlu/classifiers/__init__.py +3 -0
  534. rasa/nlu/classifiers/classifier.py +5 -0
  535. rasa/nlu/classifiers/diet_classifier.py +1881 -0
  536. rasa/nlu/classifiers/fallback_classifier.py +192 -0
  537. rasa/nlu/classifiers/keyword_intent_classifier.py +188 -0
  538. rasa/nlu/classifiers/logistic_regression_classifier.py +253 -0
  539. rasa/nlu/classifiers/mitie_intent_classifier.py +156 -0
  540. rasa/nlu/classifiers/regex_message_handler.py +56 -0
  541. rasa/nlu/classifiers/sklearn_intent_classifier.py +330 -0
  542. rasa/nlu/constants.py +77 -0
  543. rasa/nlu/convert.py +40 -0
  544. rasa/nlu/emulators/__init__.py +0 -0
  545. rasa/nlu/emulators/dialogflow.py +55 -0
  546. rasa/nlu/emulators/emulator.py +49 -0
  547. rasa/nlu/emulators/luis.py +86 -0
  548. rasa/nlu/emulators/no_emulator.py +10 -0
  549. rasa/nlu/emulators/wit.py +56 -0
  550. rasa/nlu/extractors/__init__.py +0 -0
  551. rasa/nlu/extractors/crf_entity_extractor.py +715 -0
  552. rasa/nlu/extractors/duckling_entity_extractor.py +206 -0
  553. rasa/nlu/extractors/entity_synonyms.py +178 -0
  554. rasa/nlu/extractors/extractor.py +470 -0
  555. rasa/nlu/extractors/mitie_entity_extractor.py +293 -0
  556. rasa/nlu/extractors/regex_entity_extractor.py +220 -0
  557. rasa/nlu/extractors/spacy_entity_extractor.py +95 -0
  558. rasa/nlu/featurizers/__init__.py +0 -0
  559. rasa/nlu/featurizers/dense_featurizer/__init__.py +0 -0
  560. rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +445 -0
  561. rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +57 -0
  562. rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +768 -0
  563. rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +170 -0
  564. rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +132 -0
  565. rasa/nlu/featurizers/featurizer.py +89 -0
  566. rasa/nlu/featurizers/sparse_featurizer/__init__.py +0 -0
  567. rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +867 -0
  568. rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +571 -0
  569. rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +271 -0
  570. rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +9 -0
  571. rasa/nlu/model.py +24 -0
  572. rasa/nlu/run.py +27 -0
  573. rasa/nlu/selectors/__init__.py +0 -0
  574. rasa/nlu/selectors/response_selector.py +987 -0
  575. rasa/nlu/test.py +1940 -0
  576. rasa/nlu/tokenizers/__init__.py +0 -0
  577. rasa/nlu/tokenizers/jieba_tokenizer.py +148 -0
  578. rasa/nlu/tokenizers/mitie_tokenizer.py +75 -0
  579. rasa/nlu/tokenizers/spacy_tokenizer.py +72 -0
  580. rasa/nlu/tokenizers/tokenizer.py +239 -0
  581. rasa/nlu/tokenizers/whitespace_tokenizer.py +95 -0
  582. rasa/nlu/utils/__init__.py +35 -0
  583. rasa/nlu/utils/bilou_utils.py +462 -0
  584. rasa/nlu/utils/hugging_face/__init__.py +0 -0
  585. rasa/nlu/utils/hugging_face/registry.py +108 -0
  586. rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +311 -0
  587. rasa/nlu/utils/mitie_utils.py +113 -0
  588. rasa/nlu/utils/pattern_utils.py +168 -0
  589. rasa/nlu/utils/spacy_utils.py +310 -0
  590. rasa/plugin.py +90 -0
  591. rasa/server.py +1588 -0
  592. rasa/shared/__init__.py +0 -0
  593. rasa/shared/constants.py +311 -0
  594. rasa/shared/core/__init__.py +0 -0
  595. rasa/shared/core/command_payload_reader.py +109 -0
  596. rasa/shared/core/constants.py +180 -0
  597. rasa/shared/core/conversation.py +46 -0
  598. rasa/shared/core/domain.py +2172 -0
  599. rasa/shared/core/events.py +2559 -0
  600. rasa/shared/core/flows/__init__.py +7 -0
  601. rasa/shared/core/flows/flow.py +562 -0
  602. rasa/shared/core/flows/flow_path.py +84 -0
  603. rasa/shared/core/flows/flow_step.py +146 -0
  604. rasa/shared/core/flows/flow_step_links.py +319 -0
  605. rasa/shared/core/flows/flow_step_sequence.py +70 -0
  606. rasa/shared/core/flows/flows_list.py +258 -0
  607. rasa/shared/core/flows/flows_yaml_schema.json +303 -0
  608. rasa/shared/core/flows/nlu_trigger.py +117 -0
  609. rasa/shared/core/flows/steps/__init__.py +24 -0
  610. rasa/shared/core/flows/steps/action.py +56 -0
  611. rasa/shared/core/flows/steps/call.py +64 -0
  612. rasa/shared/core/flows/steps/collect.py +112 -0
  613. rasa/shared/core/flows/steps/constants.py +5 -0
  614. rasa/shared/core/flows/steps/continuation.py +36 -0
  615. rasa/shared/core/flows/steps/end.py +22 -0
  616. rasa/shared/core/flows/steps/internal.py +44 -0
  617. rasa/shared/core/flows/steps/link.py +51 -0
  618. rasa/shared/core/flows/steps/no_operation.py +48 -0
  619. rasa/shared/core/flows/steps/set_slots.py +50 -0
  620. rasa/shared/core/flows/steps/start.py +30 -0
  621. rasa/shared/core/flows/utils.py +39 -0
  622. rasa/shared/core/flows/validation.py +735 -0
  623. rasa/shared/core/flows/yaml_flows_io.py +405 -0
  624. rasa/shared/core/generator.py +908 -0
  625. rasa/shared/core/slot_mappings.py +526 -0
  626. rasa/shared/core/slots.py +654 -0
  627. rasa/shared/core/trackers.py +1183 -0
  628. rasa/shared/core/training_data/__init__.py +0 -0
  629. rasa/shared/core/training_data/loading.py +89 -0
  630. rasa/shared/core/training_data/story_reader/__init__.py +0 -0
  631. rasa/shared/core/training_data/story_reader/story_reader.py +129 -0
  632. rasa/shared/core/training_data/story_reader/story_step_builder.py +168 -0
  633. rasa/shared/core/training_data/story_reader/yaml_story_reader.py +888 -0
  634. rasa/shared/core/training_data/story_writer/__init__.py +0 -0
  635. rasa/shared/core/training_data/story_writer/story_writer.py +76 -0
  636. rasa/shared/core/training_data/story_writer/yaml_story_writer.py +444 -0
  637. rasa/shared/core/training_data/structures.py +858 -0
  638. rasa/shared/core/training_data/visualization.html +146 -0
  639. rasa/shared/core/training_data/visualization.py +603 -0
  640. rasa/shared/data.py +249 -0
  641. rasa/shared/engine/__init__.py +0 -0
  642. rasa/shared/engine/caching.py +26 -0
  643. rasa/shared/exceptions.py +167 -0
  644. rasa/shared/importers/__init__.py +0 -0
  645. rasa/shared/importers/importer.py +770 -0
  646. rasa/shared/importers/multi_project.py +215 -0
  647. rasa/shared/importers/rasa.py +108 -0
  648. rasa/shared/importers/remote_importer.py +196 -0
  649. rasa/shared/importers/utils.py +36 -0
  650. rasa/shared/nlu/__init__.py +0 -0
  651. rasa/shared/nlu/constants.py +53 -0
  652. rasa/shared/nlu/interpreter.py +10 -0
  653. rasa/shared/nlu/training_data/__init__.py +0 -0
  654. rasa/shared/nlu/training_data/entities_parser.py +208 -0
  655. rasa/shared/nlu/training_data/features.py +492 -0
  656. rasa/shared/nlu/training_data/formats/__init__.py +10 -0
  657. rasa/shared/nlu/training_data/formats/dialogflow.py +163 -0
  658. rasa/shared/nlu/training_data/formats/luis.py +87 -0
  659. rasa/shared/nlu/training_data/formats/rasa.py +135 -0
  660. rasa/shared/nlu/training_data/formats/rasa_yaml.py +618 -0
  661. rasa/shared/nlu/training_data/formats/readerwriter.py +244 -0
  662. rasa/shared/nlu/training_data/formats/wit.py +52 -0
  663. rasa/shared/nlu/training_data/loading.py +137 -0
  664. rasa/shared/nlu/training_data/lookup_tables_parser.py +30 -0
  665. rasa/shared/nlu/training_data/message.py +490 -0
  666. rasa/shared/nlu/training_data/schemas/__init__.py +0 -0
  667. rasa/shared/nlu/training_data/schemas/data_schema.py +85 -0
  668. rasa/shared/nlu/training_data/schemas/nlu.yml +53 -0
  669. rasa/shared/nlu/training_data/schemas/responses.yml +70 -0
  670. rasa/shared/nlu/training_data/synonyms_parser.py +42 -0
  671. rasa/shared/nlu/training_data/training_data.py +729 -0
  672. rasa/shared/nlu/training_data/util.py +223 -0
  673. rasa/shared/providers/__init__.py +0 -0
  674. rasa/shared/providers/_configs/__init__.py +0 -0
  675. rasa/shared/providers/_configs/azure_openai_client_config.py +677 -0
  676. rasa/shared/providers/_configs/client_config.py +59 -0
  677. rasa/shared/providers/_configs/default_litellm_client_config.py +132 -0
  678. rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +236 -0
  679. rasa/shared/providers/_configs/litellm_router_client_config.py +222 -0
  680. rasa/shared/providers/_configs/model_group_config.py +173 -0
  681. rasa/shared/providers/_configs/openai_client_config.py +177 -0
  682. rasa/shared/providers/_configs/rasa_llm_client_config.py +75 -0
  683. rasa/shared/providers/_configs/self_hosted_llm_client_config.py +178 -0
  684. rasa/shared/providers/_configs/utils.py +117 -0
  685. rasa/shared/providers/_ssl_verification_utils.py +124 -0
  686. rasa/shared/providers/_utils.py +79 -0
  687. rasa/shared/providers/constants.py +7 -0
  688. rasa/shared/providers/embedding/__init__.py +0 -0
  689. rasa/shared/providers/embedding/_base_litellm_embedding_client.py +243 -0
  690. rasa/shared/providers/embedding/_langchain_embedding_client_adapter.py +74 -0
  691. rasa/shared/providers/embedding/azure_openai_embedding_client.py +335 -0
  692. rasa/shared/providers/embedding/default_litellm_embedding_client.py +126 -0
  693. rasa/shared/providers/embedding/embedding_client.py +90 -0
  694. rasa/shared/providers/embedding/embedding_response.py +41 -0
  695. rasa/shared/providers/embedding/huggingface_local_embedding_client.py +191 -0
  696. rasa/shared/providers/embedding/litellm_router_embedding_client.py +138 -0
  697. rasa/shared/providers/embedding/openai_embedding_client.py +172 -0
  698. rasa/shared/providers/llm/__init__.py +0 -0
  699. rasa/shared/providers/llm/_base_litellm_client.py +265 -0
  700. rasa/shared/providers/llm/azure_openai_llm_client.py +415 -0
  701. rasa/shared/providers/llm/default_litellm_llm_client.py +110 -0
  702. rasa/shared/providers/llm/litellm_router_llm_client.py +202 -0
  703. rasa/shared/providers/llm/llm_client.py +78 -0
  704. rasa/shared/providers/llm/llm_response.py +50 -0
  705. rasa/shared/providers/llm/openai_llm_client.py +161 -0
  706. rasa/shared/providers/llm/rasa_llm_client.py +120 -0
  707. rasa/shared/providers/llm/self_hosted_llm_client.py +276 -0
  708. rasa/shared/providers/mappings.py +94 -0
  709. rasa/shared/providers/router/__init__.py +0 -0
  710. rasa/shared/providers/router/_base_litellm_router_client.py +185 -0
  711. rasa/shared/providers/router/router_client.py +75 -0
  712. rasa/shared/utils/__init__.py +0 -0
  713. rasa/shared/utils/cli.py +102 -0
  714. rasa/shared/utils/common.py +324 -0
  715. rasa/shared/utils/constants.py +4 -0
  716. rasa/shared/utils/health_check/__init__.py +0 -0
  717. rasa/shared/utils/health_check/embeddings_health_check_mixin.py +31 -0
  718. rasa/shared/utils/health_check/health_check.py +258 -0
  719. rasa/shared/utils/health_check/llm_health_check_mixin.py +31 -0
  720. rasa/shared/utils/io.py +499 -0
  721. rasa/shared/utils/llm.py +764 -0
  722. rasa/shared/utils/pykwalify_extensions.py +27 -0
  723. rasa/shared/utils/schemas/__init__.py +0 -0
  724. rasa/shared/utils/schemas/config.yml +2 -0
  725. rasa/shared/utils/schemas/domain.yml +145 -0
  726. rasa/shared/utils/schemas/events.py +214 -0
  727. rasa/shared/utils/schemas/model_config.yml +36 -0
  728. rasa/shared/utils/schemas/stories.yml +173 -0
  729. rasa/shared/utils/yaml.py +1068 -0
  730. rasa/studio/__init__.py +0 -0
  731. rasa/studio/auth.py +270 -0
  732. rasa/studio/config.py +136 -0
  733. rasa/studio/constants.py +19 -0
  734. rasa/studio/data_handler.py +368 -0
  735. rasa/studio/download.py +489 -0
  736. rasa/studio/results_logger.py +137 -0
  737. rasa/studio/train.py +134 -0
  738. rasa/studio/upload.py +563 -0
  739. rasa/telemetry.py +1876 -0
  740. rasa/tracing/__init__.py +0 -0
  741. rasa/tracing/config.py +355 -0
  742. rasa/tracing/constants.py +62 -0
  743. rasa/tracing/instrumentation/__init__.py +0 -0
  744. rasa/tracing/instrumentation/attribute_extractors.py +765 -0
  745. rasa/tracing/instrumentation/instrumentation.py +1306 -0
  746. rasa/tracing/instrumentation/intentless_policy_instrumentation.py +144 -0
  747. rasa/tracing/instrumentation/metrics.py +294 -0
  748. rasa/tracing/metric_instrument_provider.py +205 -0
  749. rasa/utils/__init__.py +0 -0
  750. rasa/utils/beta.py +83 -0
  751. rasa/utils/cli.py +28 -0
  752. rasa/utils/common.py +639 -0
  753. rasa/utils/converter.py +53 -0
  754. rasa/utils/endpoints.py +331 -0
  755. rasa/utils/io.py +252 -0
  756. rasa/utils/json_utils.py +60 -0
  757. rasa/utils/licensing.py +542 -0
  758. rasa/utils/log_utils.py +181 -0
  759. rasa/utils/mapper.py +210 -0
  760. rasa/utils/ml_utils.py +147 -0
  761. rasa/utils/plotting.py +362 -0
  762. rasa/utils/sanic_error_handler.py +32 -0
  763. rasa/utils/singleton.py +23 -0
  764. rasa/utils/tensorflow/__init__.py +0 -0
  765. rasa/utils/tensorflow/callback.py +112 -0
  766. rasa/utils/tensorflow/constants.py +116 -0
  767. rasa/utils/tensorflow/crf.py +492 -0
  768. rasa/utils/tensorflow/data_generator.py +440 -0
  769. rasa/utils/tensorflow/environment.py +161 -0
  770. rasa/utils/tensorflow/exceptions.py +5 -0
  771. rasa/utils/tensorflow/feature_array.py +366 -0
  772. rasa/utils/tensorflow/layers.py +1565 -0
  773. rasa/utils/tensorflow/layers_utils.py +113 -0
  774. rasa/utils/tensorflow/metrics.py +281 -0
  775. rasa/utils/tensorflow/model_data.py +798 -0
  776. rasa/utils/tensorflow/model_data_utils.py +499 -0
  777. rasa/utils/tensorflow/models.py +935 -0
  778. rasa/utils/tensorflow/rasa_layers.py +1094 -0
  779. rasa/utils/tensorflow/transformer.py +640 -0
  780. rasa/utils/tensorflow/types.py +6 -0
  781. rasa/utils/train_utils.py +572 -0
  782. rasa/utils/url_tools.py +53 -0
  783. rasa/utils/yaml.py +54 -0
  784. rasa/validator.py +1644 -0
  785. rasa/version.py +3 -0
  786. rasa_pro-3.12.0.dev1.dist-info/METADATA +199 -0
  787. rasa_pro-3.12.0.dev1.dist-info/NOTICE +5 -0
  788. rasa_pro-3.12.0.dev1.dist-info/RECORD +790 -0
  789. rasa_pro-3.12.0.dev1.dist-info/WHEEL +4 -0
  790. rasa_pro-3.12.0.dev1.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,279 @@
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
+ add_remote_storage_param,
12
+ )
13
+ from rasa.graph_components.providers.training_tracker_provider import (
14
+ TrainingTrackerProvider,
15
+ )
16
+ from rasa.shared.constants import DEFAULT_CONFIG_PATH, DEFAULT_DATA_PATH
17
+
18
+ USE_LATEST_MODEL_FOR_FINE_TUNING = True
19
+
20
+
21
+ def set_train_arguments(parser: argparse.ArgumentParser) -> None:
22
+ """Specifies CLI arguments for `rasa train`."""
23
+ add_data_param(parser)
24
+ add_config_param(parser)
25
+ add_domain_param(parser)
26
+ add_out_param(parser, help_text="Directory where your models should be stored.")
27
+
28
+ add_dry_run_param(parser)
29
+ add_validate_before_train(parser)
30
+ add_augmentation_param(parser)
31
+ add_debug_plots_param(parser)
32
+
33
+ _add_num_threads_param(parser)
34
+
35
+ _add_model_name_param(parser)
36
+ add_persist_nlu_data_param(parser)
37
+ add_keep_local_model_copy_param(parser)
38
+ add_force_param(parser)
39
+ add_finetune_params(parser)
40
+ add_endpoint_param(
41
+ parser, help_text="Configuration file for the connectors as a yml file."
42
+ )
43
+ add_remote_storage_param(parser)
44
+
45
+
46
+ def set_train_core_arguments(parser: argparse.ArgumentParser) -> None:
47
+ """Specifies CLI arguments for `rasa train core`."""
48
+ add_stories_param(parser)
49
+ add_domain_param(parser)
50
+ _add_core_config_param(parser)
51
+ add_out_param(parser, help_text="Directory where your models should be stored.")
52
+
53
+ add_augmentation_param(parser)
54
+ add_debug_plots_param(parser)
55
+
56
+ add_force_param(parser)
57
+
58
+ _add_model_name_param(parser)
59
+
60
+ compare_arguments = parser.add_argument_group("Comparison Arguments")
61
+ _add_compare_params(compare_arguments)
62
+ add_finetune_params(parser)
63
+
64
+
65
+ def set_train_nlu_arguments(parser: argparse.ArgumentParser) -> None:
66
+ """Specifies CLI arguments for `rasa train nlu`."""
67
+ add_config_param(parser)
68
+ add_domain_param(parser, default=None)
69
+ add_out_param(parser, help_text="Directory where your models should be stored.")
70
+
71
+ add_nlu_data_param(parser, help_text="File or folder containing your NLU data.")
72
+
73
+ _add_num_threads_param(parser)
74
+
75
+ _add_model_name_param(parser)
76
+ add_persist_nlu_data_param(parser)
77
+ add_finetune_params(parser)
78
+
79
+
80
+ def add_force_param(
81
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
82
+ ) -> None:
83
+ """Specifies if the model should be trained from scratch."""
84
+ parser.add_argument(
85
+ "--force",
86
+ action="store_true",
87
+ help="Force a model training even if the data has not changed.",
88
+ )
89
+
90
+
91
+ def add_data_param(
92
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
93
+ ) -> None:
94
+ """Specifies path to training data."""
95
+ parser.add_argument(
96
+ "--data",
97
+ default=[DEFAULT_DATA_PATH],
98
+ nargs="+",
99
+ help="Paths to the Core and NLU data files.",
100
+ )
101
+
102
+
103
+ def _add_core_config_param(parser: argparse.ArgumentParser) -> None:
104
+ parser.add_argument(
105
+ "-c",
106
+ "--config",
107
+ nargs="+",
108
+ default=[DEFAULT_CONFIG_PATH],
109
+ help="The policy and NLU pipeline configuration of your bot. "
110
+ "If multiple configuration files are provided, multiple Rasa Core "
111
+ "models are trained to compare policies.",
112
+ )
113
+
114
+
115
+ def _add_compare_params(
116
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
117
+ ) -> None:
118
+ parser.add_argument(
119
+ "--percentages",
120
+ nargs="*",
121
+ type=int,
122
+ default=[0, 25, 50, 75],
123
+ help="Range of exclusion percentages.",
124
+ )
125
+ parser.add_argument(
126
+ "--runs", type=int, default=3, help="Number of runs for experiments."
127
+ )
128
+
129
+
130
+ def add_dry_run_param(
131
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
132
+ ) -> None:
133
+ """Adds `--dry-run` argument to a specified `parser`.
134
+
135
+ Args:
136
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
137
+ """
138
+ parser.add_argument(
139
+ "--dry-run",
140
+ default=False,
141
+ action="store_true",
142
+ help="If enabled, no actual training will be performed. Instead, "
143
+ "it will be determined whether a model should be re-trained "
144
+ "and this information will be printed as the output. The return "
145
+ "code is a 4-bit bitmask that can also be used to determine what exactly needs "
146
+ "to be retrained:\n"
147
+ "- 0 means that no extensive training is required (note that the responses "
148
+ "still might require updating by running 'rasa train').\n"
149
+ "- 1 means the model needs to be retrained\n"
150
+ "- 8 means the training was forced (--force argument is specified)",
151
+ )
152
+
153
+
154
+ def add_validate_before_train(
155
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
156
+ ) -> None:
157
+ """Adds parameters for validating the domain and data files before training.
158
+
159
+ Args:
160
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
161
+ """
162
+ parser.add_argument(
163
+ "--skip-validation",
164
+ default=False,
165
+ action="store_true",
166
+ help="Skip validation step before training.",
167
+ )
168
+
169
+ parser.add_argument(
170
+ "--fail-on-validation-warnings",
171
+ default=False,
172
+ action="store_true",
173
+ help="Fail on validation warnings. "
174
+ "If omitted only errors will exit with a non zero status code",
175
+ )
176
+
177
+ parser.add_argument(
178
+ "--validation-max-history",
179
+ type=int,
180
+ default=None,
181
+ help="Number of turns taken into account for story structure validation.",
182
+ )
183
+
184
+
185
+ def add_augmentation_param(
186
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
187
+ ) -> None:
188
+ """Sets the augmentation factor for the Core training.
189
+
190
+ Args:
191
+ parser: An instance of `ArgumentParser` or `_ActionsContainer`.
192
+ """
193
+ parser.add_argument(
194
+ "--augmentation",
195
+ type=int,
196
+ default=TrainingTrackerProvider.get_default_config()["augmentation_factor"],
197
+ help="How much data augmentation to use during training.",
198
+ )
199
+
200
+
201
+ def add_debug_plots_param(
202
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
203
+ ) -> None:
204
+ """Specifies if conversation flow should be visualized."""
205
+ parser.add_argument(
206
+ "--debug-plots",
207
+ default=TrainingTrackerProvider.get_default_config()["debug_plots"],
208
+ action="store_true",
209
+ help="If enabled, will create plots showing checkpoints "
210
+ "and their connections between story blocks in a "
211
+ "file called `story_blocks_connections.html`.",
212
+ )
213
+
214
+
215
+ def _add_num_threads_param(
216
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
217
+ ) -> None:
218
+ parser.add_argument(
219
+ "--num-threads",
220
+ type=int,
221
+ help="Maximum amount of threads to use when training.",
222
+ )
223
+
224
+
225
+ def _add_model_name_param(parser: argparse.ArgumentParser) -> None:
226
+ parser.add_argument(
227
+ "--fixed-model-name",
228
+ type=str,
229
+ help="If set, the name of the model file/directory will be set to the given "
230
+ "name.",
231
+ )
232
+
233
+
234
+ def add_persist_nlu_data_param(
235
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
236
+ ) -> None:
237
+ """Adds parameters for persisting the NLU training data with the model."""
238
+ parser.add_argument(
239
+ "--persist-nlu-data",
240
+ action="store_true",
241
+ help="Persist the NLU training data in the saved model.",
242
+ )
243
+
244
+
245
+ def add_keep_local_model_copy_param(
246
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
247
+ ) -> None:
248
+ """Adds parameters for keeping a local copy of the model."""
249
+ parser.add_argument(
250
+ "--keep-local-model-copy",
251
+ action="store_true",
252
+ help="Keep a copy of the model in the model directory if remote "
253
+ "model upload is configured. Defaults to `false`, which "
254
+ "deletes the local copy of the model after upload.",
255
+ )
256
+
257
+
258
+ def add_finetune_params(
259
+ parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
260
+ ) -> None:
261
+ """Adds parameters for model finetuning."""
262
+ parser.add_argument(
263
+ "--finetune",
264
+ nargs="?",
265
+ # If the user doesn't specify `--finetune` at all
266
+ default=None,
267
+ # If the user only specifies `--finetune` without an additional path
268
+ const=USE_LATEST_MODEL_FOR_FINE_TUNING,
269
+ help="Fine-tune a previously trained model. If no model path is provided, Rasa "
270
+ "Open Source will try to finetune the latest trained model from the "
271
+ "model directory specified via '--out'.",
272
+ )
273
+
274
+ parser.add_argument(
275
+ "--epoch-fraction",
276
+ type=float,
277
+ help="Fraction of epochs which are currently specified in the model "
278
+ "configuration which should be used when finetuning a model.",
279
+ )
@@ -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,354 @@
1
+ import argparse
2
+ import logging
3
+ import pathlib
4
+ from typing import List
5
+
6
+ import rasa.cli.utils
7
+ import rasa.shared.core.domain
8
+ import rasa.shared.data
9
+ import rasa.shared.nlu.training_data.loading
10
+ import rasa.shared.nlu.training_data.util
11
+ import rasa.shared.utils.cli
12
+ import rasa.shared.utils.io
13
+ import rasa.utils.common
14
+ from rasa import telemetry
15
+ from rasa.cli import SubParsersAction
16
+ from rasa.cli.arguments import data as arguments
17
+ from rasa.cli.arguments import default_arguments
18
+ from rasa.e2e_test.e2e_config import create_llm_e2e_test_converter_config
19
+ from rasa.e2e_test.e2e_test_converter import E2ETestConverter
20
+ from rasa.e2e_test.utils.e2e_yaml_utils import E2ETestYAMLWriter
21
+ from rasa.shared.constants import (
22
+ DEFAULT_DATA_PATH,
23
+ DEFAULT_CONFIG_PATH,
24
+ DEFAULT_DOMAIN_PATHS,
25
+ )
26
+ from rasa.shared.exceptions import RasaException
27
+ from rasa.shared.importers.importer import TrainingDataImporter
28
+ from rasa.shared.utils.common import minimal_kwargs
29
+ from rasa.shared.utils.yaml import read_yaml_file, write_yaml
30
+ from rasa.utils.beta import ensure_beta_feature_is_enabled
31
+
32
+ logger = logging.getLogger(__name__)
33
+
34
+ RASA_PRO_BETA_E2E_CONVERSION_ENV_VAR_NAME = "RASA_PRO_BETA_E2E_CONVERSION"
35
+
36
+
37
+ def add_subparser(
38
+ subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
39
+ ) -> None:
40
+ """Add all data parsers.
41
+
42
+ Args:
43
+ subparsers: subparser we are going to attach to
44
+ parents: Parent parsers, needed to ensure tree structure in argparse
45
+ """
46
+ data_parser = subparsers.add_parser(
47
+ "data",
48
+ conflict_handler="resolve",
49
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
50
+ parents=parents,
51
+ help="Utils for the Rasa training files.",
52
+ )
53
+ data_parser.set_defaults(func=lambda _: data_parser.print_help(None))
54
+
55
+ data_subparsers = data_parser.add_subparsers()
56
+
57
+ _add_data_convert_parsers(data_subparsers, parents)
58
+ _add_data_split_parsers(data_subparsers, parents)
59
+ _add_data_validate_parsers(data_subparsers, parents)
60
+ _add_data_migrate_parsers(data_subparsers, parents)
61
+
62
+
63
+ def _add_data_convert_parsers(
64
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
65
+ ) -> None:
66
+ convert_parser = data_subparsers.add_parser(
67
+ "convert",
68
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
69
+ parents=parents,
70
+ help="Converts Rasa data between different formats.",
71
+ )
72
+ convert_parser.set_defaults(func=lambda _: convert_parser.print_help(None))
73
+
74
+ convert_subparsers = convert_parser.add_subparsers()
75
+ convert_nlu_parser = convert_subparsers.add_parser(
76
+ "nlu",
77
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
78
+ parents=parents,
79
+ help="Converts NLU data between formats.",
80
+ )
81
+ convert_nlu_parser.set_defaults(func=_convert_nlu_data)
82
+ arguments.set_convert_nlu_arguments(convert_nlu_parser, data_type="Rasa NLU")
83
+
84
+ convert_e2e_parser = convert_subparsers.add_parser(
85
+ "e2e",
86
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
87
+ parents=parents,
88
+ help="Convert input sample conversations into E2E test cases.",
89
+ )
90
+ convert_e2e_parser.set_defaults(func=convert_data_to_e2e_tests)
91
+ arguments.set_convert_e2e_arguments(convert_e2e_parser)
92
+
93
+
94
+ def _add_data_split_parsers(
95
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
96
+ ) -> None:
97
+ split_parser = data_subparsers.add_parser(
98
+ "split",
99
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
100
+ parents=parents,
101
+ help="Splits Rasa data into training and test data.",
102
+ )
103
+ split_parser.set_defaults(func=lambda _: split_parser.print_help(None))
104
+
105
+ split_subparsers = split_parser.add_subparsers()
106
+ nlu_split_parser = split_subparsers.add_parser(
107
+ "nlu",
108
+ parents=parents,
109
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
110
+ help="Performs a split of your NLU data into training and test data "
111
+ "according to the specified percentages.",
112
+ )
113
+ nlu_split_parser.set_defaults(func=split_nlu_data)
114
+
115
+ arguments.set_split_arguments(nlu_split_parser)
116
+
117
+ stories_split_parser = split_subparsers.add_parser(
118
+ "stories",
119
+ parents=parents,
120
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
121
+ help="Performs a split of your stories into training and test data "
122
+ "according to the specified percentages.",
123
+ )
124
+ stories_split_parser.set_defaults(func=split_stories_data)
125
+
126
+ arguments.set_split_arguments(stories_split_parser)
127
+
128
+
129
+ def _add_data_validate_parsers(
130
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
131
+ ) -> None:
132
+ validate_parser = data_subparsers.add_parser(
133
+ "validate",
134
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
135
+ parents=parents,
136
+ help="Validates domain and data files to check for possible mistakes.",
137
+ )
138
+ _append_story_structure_arguments(validate_parser)
139
+ validate_parser.set_defaults(
140
+ func=lambda args: rasa.cli.utils.validate_files(
141
+ args.fail_on_warnings, args.max_history, _build_training_data_importer(args)
142
+ )
143
+ )
144
+ arguments.set_validator_arguments(validate_parser)
145
+
146
+ validate_subparsers = validate_parser.add_subparsers()
147
+ story_structure_parser = validate_subparsers.add_parser(
148
+ "stories",
149
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
150
+ parents=parents,
151
+ help="Checks for inconsistencies in the story files.",
152
+ )
153
+ _append_story_structure_arguments(story_structure_parser)
154
+
155
+ story_structure_parser.set_defaults(
156
+ func=lambda args: rasa.cli.utils.validate_files(
157
+ args.fail_on_warnings,
158
+ args.max_history,
159
+ _build_training_data_importer(args),
160
+ stories_only=True,
161
+ )
162
+ )
163
+ arguments.set_validator_arguments(story_structure_parser)
164
+
165
+ flows_structure_parser = validate_subparsers.add_parser(
166
+ "flows",
167
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
168
+ parents=parents,
169
+ help="Checks for inconsistencies in the flows files.",
170
+ )
171
+ flows_structure_parser.set_defaults(
172
+ func=lambda args: rasa.cli.utils.validate_files(
173
+ args.fail_on_warnings,
174
+ args.max_history,
175
+ _build_training_data_importer(args),
176
+ flows_only=True,
177
+ )
178
+ )
179
+ arguments.set_validator_arguments(flows_structure_parser)
180
+
181
+
182
+ def _build_training_data_importer(args: argparse.Namespace) -> "TrainingDataImporter":
183
+ config = rasa.cli.utils.get_validated_path(
184
+ args.config, "config", DEFAULT_CONFIG_PATH, none_is_valid=True
185
+ )
186
+
187
+ # Exit the validation if the domain path is invalid
188
+ domain = rasa.cli.utils.get_validated_path(
189
+ args.domain, "domain", DEFAULT_DOMAIN_PATHS, none_is_valid=False
190
+ )
191
+
192
+ return TrainingDataImporter.load_from_config(
193
+ domain_path=domain, training_data_paths=args.data, config_path=config
194
+ )
195
+
196
+
197
+ def _append_story_structure_arguments(parser: argparse.ArgumentParser) -> None:
198
+ parser.add_argument(
199
+ "--max-history",
200
+ type=int,
201
+ default=None,
202
+ help="Number of turns taken into account for story structure validation.",
203
+ )
204
+ default_arguments.add_config_param(parser)
205
+
206
+
207
+ def split_nlu_data(args: argparse.Namespace) -> None:
208
+ """Load data from a file path and split the NLU data into test and train examples.
209
+
210
+ Args:
211
+ args: Commandline arguments
212
+ """
213
+ data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
214
+ data_path = rasa.shared.data.get_nlu_directory(data_path)
215
+
216
+ nlu_data = rasa.shared.nlu.training_data.loading.load_data(data_path)
217
+ extension = rasa.shared.nlu.training_data.util.get_file_format_extension(data_path)
218
+
219
+ train, test = nlu_data.train_test_split(args.training_fraction, args.random_seed)
220
+
221
+ train.persist(args.out, filename=f"training_data{extension}")
222
+ test.persist(args.out, filename=f"test_data{extension}")
223
+
224
+ telemetry.track_data_split(args.training_fraction, "nlu")
225
+
226
+
227
+ def split_stories_data(args: argparse.Namespace) -> None:
228
+ """Load data from a file path and split stories into test and train examples.
229
+
230
+ Args:
231
+ args: Commandline arguments
232
+ """
233
+ from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
234
+ YAMLStoryReader,
235
+ KEY_STORIES,
236
+ )
237
+ from sklearn.model_selection import train_test_split
238
+
239
+ data_path = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH)
240
+ data_files = rasa.shared.data.get_data_files(
241
+ data_path, YAMLStoryReader.is_stories_file
242
+ )
243
+ out_path = pathlib.Path(args.out)
244
+ out_path.mkdir(parents=True, exist_ok=True)
245
+
246
+ # load Yaml stories data
247
+ for file_name in data_files:
248
+ file_data = read_yaml_file(file_name)
249
+ assert isinstance(file_data, dict)
250
+ stories = file_data.get(KEY_STORIES, [])
251
+ if not stories:
252
+ logger.info(f"File {file_name} has no stories, skipped")
253
+ continue
254
+
255
+ file_path = pathlib.Path(file_name)
256
+
257
+ # everything besides stories are going into the training data
258
+ train, test = train_test_split(
259
+ stories, test_size=1 - args.training_fraction, random_state=args.random_seed
260
+ )
261
+ out_file_train = out_path / ("train_" + file_path.name)
262
+ out_file_test = out_path / ("test_" + file_path.name)
263
+
264
+ # train file contains everything else from the file + train stories
265
+ file_data[KEY_STORIES] = train
266
+ write_yaml(file_data, out_file_train)
267
+
268
+ # test file contains just test stories
269
+ write_yaml({KEY_STORIES: test}, out_file_test)
270
+ logger.info(
271
+ f"From {file_name} we produced {out_file_train} "
272
+ f"with {len(train)} stories and {out_file_test} "
273
+ f"with {len(test)} stories"
274
+ )
275
+
276
+
277
+ def _convert_nlu_data(args: argparse.Namespace) -> None:
278
+ import rasa.nlu.convert
279
+
280
+ if args.format in ["json", "yaml"]:
281
+ rasa.nlu.convert.convert_training_data(
282
+ args.data, args.out, args.format, args.language
283
+ )
284
+ telemetry.track_data_convert(args.format, "nlu")
285
+ else:
286
+ rasa.shared.utils.cli.print_error_and_exit(
287
+ "Could not recognize output format. Supported output formats: 'json' "
288
+ "and 'yaml'. Specify the desired output format with '--format'."
289
+ )
290
+
291
+
292
+ def _add_data_migrate_parsers(
293
+ data_subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
294
+ ) -> None:
295
+ migrate_parser = data_subparsers.add_parser(
296
+ "migrate",
297
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
298
+ parents=parents,
299
+ help="Converts Rasa domain 2.0 format to required format for 3.0.",
300
+ )
301
+ migrate_parser.set_defaults(func=_migrate_domain)
302
+
303
+ arguments.set_migrate_arguments(migrate_parser)
304
+
305
+
306
+ def _migrate_domain(args: argparse.Namespace) -> None:
307
+ import rasa.core.migrate
308
+
309
+ rasa.core.migrate.migrate_domain_format(args.domain, args.out)
310
+
311
+
312
+ def validate_e2e_test_conversion_output_path(output_path: str) -> None:
313
+ """Validates that the provided output path is within the project directory.
314
+
315
+ Args:
316
+ output_path (str): The output path to be validated.
317
+
318
+ Raises:
319
+ RasaException: If the provided output path is an absolute path.
320
+ """
321
+ if pathlib.Path(output_path).is_absolute():
322
+ raise RasaException(
323
+ "Please provide a relative output path within the assistant "
324
+ "project directory in which the command is running."
325
+ )
326
+
327
+
328
+ def convert_data_to_e2e_tests(args: argparse.Namespace) -> None:
329
+ """Converts sample conversation data into E2E test cases
330
+ and stores them in the output YAML file.
331
+
332
+ Args:
333
+ args: The arguments passed in from the CLI.
334
+ """
335
+ try:
336
+ ensure_beta_feature_is_enabled(
337
+ "conversion of sample conversations into end-to-end tests",
338
+ RASA_PRO_BETA_E2E_CONVERSION_ENV_VAR_NAME,
339
+ )
340
+ validate_e2e_test_conversion_output_path(args.output)
341
+
342
+ config_path = pathlib.Path(args.output)
343
+ llm_config = create_llm_e2e_test_converter_config(config_path)
344
+
345
+ kwargs = minimal_kwargs(vars(args), E2ETestConverter)
346
+ converter = E2ETestConverter(llm_config=llm_config, **kwargs)
347
+ yaml_tests_string = converter.run()
348
+
349
+ writer = E2ETestYAMLWriter(output_path=args.output)
350
+ writer.write_to_file(yaml_tests_string)
351
+ except RasaException as exc:
352
+ rasa.shared.utils.cli.print_error_and_exit(
353
+ f"Failed to convert the data into E2E tests. Error: {exc}"
354
+ )