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,765 @@
1
+ import json
2
+ import logging
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Tuple, Union
5
+
6
+ import tiktoken
7
+ from numpy import ndarray
8
+ from rasa_sdk.grpc_py import action_webhook_pb2
9
+
10
+ from rasa.core.actions.action import DirectCustomActionExecutor
11
+ from rasa.core.actions.grpc_custom_action_executor import GRPCCustomActionExecutor
12
+ from rasa.core.actions.http_custom_action_executor import HTTPCustomActionExecutor
13
+ from rasa.core.agent import Agent
14
+ from rasa.core.brokers.broker import EventBroker
15
+ from rasa.core.channels import UserMessage
16
+ from rasa.core.lock_store import LOCK_LIFETIME, LockStore
17
+ from rasa.core.nlg.contextual_response_rephraser import ContextualResponseRephraser
18
+ from rasa.core.processor import MessageProcessor
19
+ from rasa.core.tracker_store import TrackerStore
20
+ from rasa.dialogue_understanding.commands import Command
21
+ from rasa.dialogue_understanding.generator import LLMBasedCommandGenerator
22
+ from rasa.dialogue_understanding.generator.constants import FLOW_RETRIEVAL_KEY
23
+ from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
24
+ from rasa.engine.graph import ExecutionContext, GraphModelConfiguration, GraphNode
25
+ from rasa.engine.training.graph_trainer import GraphTrainer
26
+ from rasa.shared.constants import (
27
+ CONFIG_RECIPE_KEY,
28
+ DEPLOYMENT_CONFIG_KEY,
29
+ EMBEDDINGS_CONFIG_KEY,
30
+ LLM_CONFIG_KEY,
31
+ MODEL_CONFIG_KEY,
32
+ MODEL_GROUP_ID_CONFIG_KEY,
33
+ PROVIDER_CONFIG_KEY,
34
+ TIMEOUT_CONFIG_KEY,
35
+ )
36
+ from rasa.shared.core.constants import REQUESTED_SLOT
37
+ from rasa.shared.core.domain import Domain
38
+ from rasa.shared.core.events import DialogueStackUpdated, Event
39
+ from rasa.shared.core.flows import Flow, FlowsList, FlowStep
40
+ from rasa.shared.core.trackers import DialogueStateTracker
41
+ from rasa.shared.core.training_data.structures import StoryGraph
42
+ from rasa.shared.importers.importer import TrainingDataImporter
43
+ from rasa.shared.nlu.constants import INTENT_NAME_KEY, SET_SLOT_COMMAND
44
+ from rasa.shared.utils.llm import (
45
+ combine_custom_and_default_config,
46
+ )
47
+ from rasa.tracing.constants import (
48
+ PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME,
49
+ REQUEST_BODY_SIZE_IN_BYTES_ATTRIBUTE_NAME,
50
+ )
51
+
52
+ if TYPE_CHECKING:
53
+ from langchain.llms.base import BaseLLM
54
+
55
+ from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
56
+ from rasa.core.policies.intentless_policy import IntentlessPolicy
57
+ from rasa.core.policies.policy import PolicyPrediction
58
+ from rasa.dialogue_understanding.generator import CommandGenerator
59
+
60
+ # This file contains all attribute extractors for tracing instrumentation.
61
+ # These are functions that are applied to the arguments of the wrapped function to be
62
+ # traced to extract the attributes that we want to forward to our tracing backend.
63
+ # Note that we always mirror the argument lists of the wrapped functions, as our
64
+ # wrapping mechanism always passes in the original arguments unchanged for further
65
+ # processing.
66
+
67
+ logger = logging.getLogger(__name__)
68
+
69
+
70
+ def extract_attrs_for_agent(
71
+ self: Agent,
72
+ message: UserMessage,
73
+ ) -> Dict[str, Any]:
74
+ """Extract the attributes for `Agent.handle_message`.
75
+
76
+ :param self: The `Agent` on which `handle_message` is called.
77
+ :param message: The `UserMessage` argument.
78
+ :return: A dictionary containing the attributes.
79
+ """
80
+ return {
81
+ "input_channel": str(message.input_channel),
82
+ "sender_id": message.sender_id,
83
+ "model_id": str(self.model_id),
84
+ "model_name": self.processor.model_filename if self.processor else "None",
85
+ }
86
+
87
+
88
+ def extract_llm_command_generator_attrs(
89
+ attributes: Dict[str, Any], commands: List[Dict[str, Any]]
90
+ ) -> None:
91
+ """Extract more attributes for `GraphNode` type `LLMCommandGenerator`.
92
+
93
+ :param attributes: A dictionary containing attributes.
94
+ :param commands: The commands to execute.
95
+ """
96
+ commands_list = []
97
+
98
+ for command in commands:
99
+ command_name = command.get("command")
100
+ commands_list.append(command_name)
101
+
102
+ if command_name == SET_SLOT_COMMAND:
103
+ attributes["slot_name"] = command.get("name")
104
+
105
+ if command_name == "start flow":
106
+ attributes["flow_name"] = command.get("flow")
107
+
108
+ attributes["commands"] = str(commands_list)
109
+
110
+
111
+ def extract_flow_policy_attrs(
112
+ attributes: Dict[str, Any], policy_prediction: "PolicyPrediction"
113
+ ) -> None:
114
+ """Extract more attributes for `GraphNode` type `FlowPolicy`.
115
+
116
+ :param attributes: A dictionary containing attributes.
117
+ :param policy_prediction: The PolicyPrediction to use.
118
+ """
119
+ attributes["policy"] = policy_prediction.policy_name
120
+
121
+ if policy_prediction.events:
122
+ attributes["events"] = str(
123
+ [event.__class__.__name__ for event in policy_prediction.events]
124
+ )
125
+
126
+ if policy_prediction.optional_events:
127
+ optional_events_name = []
128
+ flows = []
129
+ utters = []
130
+
131
+ for optional_event in policy_prediction.optional_events:
132
+ optional_events_name.append(optional_event.__class__.__name__)
133
+
134
+ if (
135
+ isinstance(optional_event, DialogueStackUpdated)
136
+ and "value" in optional_event.update
137
+ ):
138
+ updates = json.loads(optional_event.update)
139
+ for update in updates:
140
+ value = update.get("value", {})
141
+ if isinstance(value, dict):
142
+ flow = value.get("flow_id", "")
143
+ utter = value.get("utter", "")
144
+ if flow:
145
+ flows.append(flow)
146
+ if utter:
147
+ utters.append(utter)
148
+ else:
149
+ if hasattr(optional_event, "flow_id") and optional_event.flow_id:
150
+ flows.append(optional_event.flow_id)
151
+ if hasattr(optional_event, "utter") and optional_event.utter:
152
+ utters.append(optional_event.utter)
153
+
154
+ attributes["optional_events"] = str(set(optional_events_name))
155
+
156
+ if flows:
157
+ attributes["flows"] = str(set(flows))
158
+ if utters:
159
+ attributes["utters"] = str(set(utters))
160
+
161
+
162
+ def extract_attrs_for_graph_node(
163
+ self: GraphNode, *inputs_from_previous_nodes: Tuple[Text, Any]
164
+ ) -> Dict[str, Any]:
165
+ """Extract the attributes for `GraphNode.__call__`.
166
+
167
+ :param self: The `GraphNode` on which `__call__` is called.
168
+ :param inputs_from_previous_nodes: Unused outputs of all parent nodes.
169
+ :return: A dictionary containing the attributes.
170
+ """
171
+ attributes = {
172
+ "node_name": self._node_name,
173
+ "component_class": self._component_class.__name__,
174
+ "fn_name": self._fn_name,
175
+ }
176
+
177
+ for node_input in inputs_from_previous_nodes:
178
+ if "LLMCommandGenerator" in node_input[0]:
179
+ commands = node_input[1][0].data.get("commands")
180
+ extract_llm_command_generator_attrs(attributes, commands)
181
+
182
+ if "FlowPolicy" in node_input[0]:
183
+ policy_prediction = node_input[1]
184
+ extract_flow_policy_attrs(attributes, policy_prediction)
185
+
186
+ return attributes
187
+
188
+
189
+ def extract_number_of_events(
190
+ self: MessageProcessor, tracker: DialogueStateTracker
191
+ ) -> Dict[str, Any]:
192
+ """Extract the attributes for `MessageProcessor.save_tracker`.
193
+
194
+ :param self: The `MessageProcessor` on which `save_tracker` is called.
195
+ :param tracker: The `DialogueStateTracker` argument.
196
+ :return: A dictionary containing the attributes.
197
+ """
198
+ return {"number_of_events": len(tracker.events)}
199
+
200
+
201
+ def extract_attrs_for_tracker_store(
202
+ self: TrackerStore,
203
+ event_broker: EventBroker,
204
+ new_events: List[Event],
205
+ sender_id: Text,
206
+ ) -> Dict[str, Any]:
207
+ """Extract the attributes for `TrackerStore.stream_events`.
208
+
209
+ :param self: The `TrackerStore` on which `stream_events` is called.
210
+ :param event_broker: The `EventBroker` on which the new events are published.
211
+ :param new_events: List of new events to stream.
212
+ :param sender_id: The sender id of the tracker to which the new events were added.
213
+ """
214
+ return {
215
+ "number_of_streamed_events": len(new_events),
216
+ "broker_class": self.event_broker.__class__.__name__,
217
+ }
218
+
219
+
220
+ def extract_attrs_for_lock_store(
221
+ self: LockStore,
222
+ conversation_id: Text,
223
+ lock_lifetime: float = LOCK_LIFETIME,
224
+ wait_time_in_seconds: float = 1,
225
+ ) -> Dict[str, Any]:
226
+ """Extract the attributes for `LockStore.lock`.
227
+
228
+ :param self: the `LockStore` on which `lock` is called.
229
+ :param conversation_id: The conversation id for which the lock is acquired.
230
+ :param lock_lifetime: The lifetime of the lock.
231
+ :param wait_time_in_seconds: The time to wait for the lock.
232
+ :return: A dictionary containing the attributes.
233
+ """
234
+ return {"lock_store_class": self.__class__.__name__}
235
+
236
+
237
+ def extract_attrs_for_graph_trainer(
238
+ self: GraphTrainer,
239
+ model_configuration: GraphModelConfiguration,
240
+ importer: TrainingDataImporter,
241
+ output_filename: Path,
242
+ is_finetuning: bool = False,
243
+ force_retraining: bool = False,
244
+ ) -> Dict[str, Any]:
245
+ """Extract the attributes for `GraphTrainer.train`.
246
+
247
+ :param self: the `GraphTrainer` on which `train` is called.
248
+ :param model_configuration: The model configuration (training_type, language etc.).
249
+ :param importer: The importer which provides the training data for the training.
250
+ :param output_filename: The location where the packaged model is saved.
251
+ :param is_finetuning: Boolean argument, if `True` enables incremental training.
252
+ :param force_retraining: Unused boolean argument,i.e, if `True` then the cache
253
+ is skipped and all components are retrained.
254
+ :return: A dictionary containing the attributes.
255
+ """
256
+ return {
257
+ "training_type": model_configuration.training_type.model_type,
258
+ "language": model_configuration.language,
259
+ "recipe_name": importer.get_config().get(CONFIG_RECIPE_KEY),
260
+ "output_filename": output_filename.name,
261
+ "is_finetuning": is_finetuning,
262
+ }
263
+
264
+
265
+ def extract_headers(message: UserMessage, **kwargs: Any) -> Any:
266
+ """Extract the headers from the `UserMessage`."""
267
+ if message.headers:
268
+ return message.headers
269
+ return {}
270
+
271
+
272
+ def extract_intent_name_and_slots(
273
+ self: MessageProcessor, tracker: DialogueStateTracker
274
+ ) -> Dict[str, Any]:
275
+ """Extract the attributes for `MessageProcessor._predict_next_with_tracker`.
276
+
277
+ :param self: The `MessageProcessor` on which `_predict_next_with_tracker` is called.
278
+ :param tracker: The `DialogueStateTracker` argument.
279
+ :return: A dictionary containing the attributes.
280
+ """
281
+ slots = {}
282
+ for slot_name, slot_value in tracker.slots.items():
283
+ if slot_name == REQUESTED_SLOT and slot_value.value:
284
+ slots[slot_name] = slot_value.value
285
+ break
286
+ return {
287
+ "intent_name": str(tracker.latest_message.intent.get(INTENT_NAME_KEY)), # type: ignore[union-attr]
288
+ **slots,
289
+ }
290
+
291
+
292
+ def extract_attrs_for_command(
293
+ self: Command,
294
+ tracker: DialogueStateTracker,
295
+ all_flows: FlowsList,
296
+ original_tracker: DialogueStateTracker,
297
+ ) -> Dict[str, Any]:
298
+ return {
299
+ "class_name": self.__class__.__name__,
300
+ "number_of_events": len(tracker.events),
301
+ "sender_id": tracker.sender_id,
302
+ }
303
+
304
+
305
+ def extract_llm_config(
306
+ self: Any,
307
+ default_llm_config: Dict[str, Any],
308
+ default_embeddings_config: Dict[str, Any],
309
+ ) -> Dict[str, Any]:
310
+ if isinstance(self, ContextualResponseRephraser):
311
+ # ContextualResponseRephraser is not a graph component, so it's
312
+ # not having a full config.
313
+ config = {"llm": self.llm_config}
314
+ else:
315
+ config = self.config
316
+
317
+ llm_property = combine_custom_and_default_config(
318
+ config.get(LLM_CONFIG_KEY), default_llm_config
319
+ )
320
+
321
+ if isinstance(self, LLMBasedCommandGenerator):
322
+ flow_retrieval_config = config.get(FLOW_RETRIEVAL_KEY, {}) or {}
323
+ embeddings_property = combine_custom_and_default_config(
324
+ flow_retrieval_config.get(EMBEDDINGS_CONFIG_KEY),
325
+ default_embeddings_config,
326
+ )
327
+ else:
328
+ embeddings_property = combine_custom_and_default_config(
329
+ config.get(EMBEDDINGS_CONFIG_KEY), default_embeddings_config
330
+ )
331
+
332
+ attributes = {
333
+ "class_name": self.__class__.__name__,
334
+ # llm client attributes
335
+ "llm_model": str(llm_property.get(MODEL_CONFIG_KEY)),
336
+ "llm_type": str(llm_property.get(PROVIDER_CONFIG_KEY)),
337
+ "llm_model_group_id": str(llm_property.get(MODEL_GROUP_ID_CONFIG_KEY)),
338
+ "llm_temperature": str(llm_property.get("temperature")),
339
+ "llm_request_timeout": str(llm_property.get(TIMEOUT_CONFIG_KEY)),
340
+ # embedding client attributes
341
+ "embeddings_model": str(embeddings_property.get(MODEL_CONFIG_KEY)),
342
+ "embeddings_type": str(embeddings_property.get(PROVIDER_CONFIG_KEY)),
343
+ "embeddings_model_group_id": str(
344
+ embeddings_property.get(MODEL_GROUP_ID_CONFIG_KEY)
345
+ ),
346
+ # TODO: Keeping this to avoid potential breaking changes
347
+ "embeddings": json.dumps(embeddings_property, sort_keys=True),
348
+ "request_timeout": str(llm_property.get(TIMEOUT_CONFIG_KEY)),
349
+ }
350
+
351
+ if DEPLOYMENT_CONFIG_KEY in llm_property:
352
+ attributes["llm_engine"] = str(llm_property.get(DEPLOYMENT_CONFIG_KEY))
353
+
354
+ return attributes
355
+
356
+
357
+ def extract_attrs_for_llm_based_command_generator(
358
+ self: "LLMBasedCommandGenerator",
359
+ prompt: str,
360
+ ) -> Dict[str, Any]:
361
+ from rasa.dialogue_understanding.generator.constants import DEFAULT_LLM_CONFIG
362
+ from rasa.dialogue_understanding.generator.flow_retrieval import (
363
+ DEFAULT_EMBEDDINGS_CONFIG,
364
+ )
365
+
366
+ attributes = extract_llm_config(
367
+ self,
368
+ default_llm_config=DEFAULT_LLM_CONFIG,
369
+ default_embeddings_config=DEFAULT_EMBEDDINGS_CONFIG,
370
+ )
371
+
372
+ return extend_attributes_with_prompt_tokens_length(self, attributes, prompt)
373
+
374
+
375
+ def extract_attrs_for_contextual_response_rephraser(
376
+ self: Any,
377
+ prompt: str,
378
+ ) -> Dict[str, Any]:
379
+ from rasa.core.nlg.contextual_response_rephraser import DEFAULT_LLM_CONFIG
380
+
381
+ attributes = extract_llm_config(
382
+ self,
383
+ default_llm_config=DEFAULT_LLM_CONFIG,
384
+ # rephraser is not using embeddings
385
+ default_embeddings_config={},
386
+ )
387
+
388
+ return extend_attributes_with_prompt_tokens_length(self, attributes, prompt)
389
+
390
+
391
+ def extract_attrs_for_create_history(
392
+ self: Any,
393
+ tracker: DialogueStateTracker,
394
+ ) -> Dict[str, Any]:
395
+ from rasa.core.nlg.contextual_response_rephraser import DEFAULT_LLM_CONFIG
396
+
397
+ return extract_llm_config(
398
+ self,
399
+ default_llm_config=DEFAULT_LLM_CONFIG,
400
+ # rephraser is not using embeddings
401
+ default_embeddings_config={},
402
+ )
403
+
404
+
405
+ def extract_attrs_for_generate(
406
+ self: Any,
407
+ utter_action: Text,
408
+ tracker: DialogueStateTracker,
409
+ output_channel: Text,
410
+ **kwargs: Any,
411
+ ) -> Optional[Dict[Text, Any]]:
412
+ return {
413
+ "class_name": self.__class__.__name__,
414
+ "utter": utter_action,
415
+ }
416
+
417
+
418
+ def extract_attrs_for_performing_health_check(
419
+ custom_config: Optional[Dict[str, Any]],
420
+ default_config: Dict[str, Any],
421
+ log_source_method: str,
422
+ log_source_component: str,
423
+ ) -> Dict[str, Any]:
424
+ from rasa.shared.utils.health_check.health_check import is_api_health_check_enabled
425
+
426
+ attrs = {
427
+ "api_health_check_enabled": is_api_health_check_enabled(),
428
+ "health_check_trigger_component": log_source_component,
429
+ "health_check_trigger_method": log_source_method,
430
+ }
431
+ if is_api_health_check_enabled():
432
+ attrs["config"] = json.dumps(
433
+ combine_custom_and_default_config(custom_config, default_config)
434
+ )
435
+ return attrs
436
+
437
+
438
+ def extract_attrs_for_execute_commands(
439
+ tracker: DialogueStateTracker,
440
+ all_flows: FlowsList,
441
+ execution_context: ExecutionContext,
442
+ story_graph: Optional[StoryGraph] = None,
443
+ ) -> Dict[str, Any]:
444
+ return {
445
+ "number_of_events": len(tracker.events),
446
+ "sender_id": tracker.sender_id,
447
+ "module_name": "command_processor",
448
+ }
449
+
450
+
451
+ def extract_attrs_for_validate_state_of_commands(
452
+ commands: List[Command],
453
+ ) -> Dict[str, Any]:
454
+ commands_list = []
455
+
456
+ for command in commands:
457
+ command_type = command.command()
458
+ command_as_dict = command.as_dict()
459
+
460
+ if command_type == SET_SLOT_COMMAND:
461
+ command_as_dict.pop("value", None)
462
+
463
+ if command_type == "correct slot":
464
+ corrected_slots = command_as_dict.get("corrected_slots", [])
465
+ updated_corrected_slots = []
466
+ for corrected_slot in corrected_slots:
467
+ corrected_slot.pop("value", None)
468
+ updated_corrected_slots.append(corrected_slot)
469
+
470
+ command_as_dict["corrected_slots"] = updated_corrected_slots
471
+
472
+ commands_list.append(command_as_dict)
473
+
474
+ return {
475
+ "cleaned_up_commands": str(commands_list),
476
+ "module_name": "command_processor",
477
+ }
478
+
479
+
480
+ def extract_attrs_for_clean_up_commands(
481
+ commands: List[Command],
482
+ tracker: DialogueStateTracker,
483
+ all_flows: FlowsList,
484
+ execution_context: ExecutionContext,
485
+ story_graph: Optional[StoryGraph] = None,
486
+ ) -> Dict[str, Any]:
487
+ commands_list = []
488
+
489
+ for command in commands:
490
+ command_type = command.command()
491
+ command_as_dict = command.as_dict()
492
+
493
+ if command_type == SET_SLOT_COMMAND:
494
+ command_as_dict.pop("value", None)
495
+
496
+ commands_list.append(command_as_dict)
497
+
498
+ current_context = extract_current_context_attribute(tracker.stack)
499
+
500
+ return {
501
+ "commands": str(commands_list),
502
+ "module_name": "command_processor",
503
+ "current_context": json.dumps(current_context),
504
+ }
505
+
506
+
507
+ def extract_attrs_for_remove_duplicated_set_slots(
508
+ events: List[Event],
509
+ ) -> Dict[str, Any]:
510
+ resulting_events = []
511
+
512
+ for event in events:
513
+ event_as_dict = event.as_dict()
514
+
515
+ if event_as_dict.get("event") == "stack":
516
+ update = event_as_dict.pop("update", "")
517
+ if update:
518
+ update = json.loads(update)
519
+ for update_dict in update:
520
+ value = update_dict.pop("value", {})
521
+ value.pop("corrected_slots", None)
522
+ update_dict["value"] = json.dumps(value)
523
+ event_as_dict["update"] = str([update_dict])
524
+ break
525
+
526
+ elif event_as_dict.get("event") == "slot":
527
+ event_as_dict.pop("value", None)
528
+
529
+ resulting_events.append(event_as_dict)
530
+
531
+ return {
532
+ "resulting_events": str(resulting_events),
533
+ "module_name": "command_processor",
534
+ }
535
+
536
+
537
+ def extract_attrs_for_check_commands_against_startable_flows(
538
+ self: "CommandGenerator", commands: List[Command], startable_flows: FlowsList
539
+ ) -> Dict[str, Any]:
540
+ commands_list = []
541
+
542
+ for command in commands:
543
+ command_as_dict = command.as_dict()
544
+ command_type = command.command()
545
+
546
+ if command_type == SET_SLOT_COMMAND:
547
+ slot_value = command_as_dict.pop("value", None)
548
+ command_as_dict["is_slot_value_missing_or_none"] = slot_value is None
549
+
550
+ commands_list.append(command_as_dict)
551
+
552
+ startable_flow_ids = [flow.id for flow in startable_flows.underlying_flows]
553
+
554
+ return {
555
+ "commands": json.dumps(commands_list),
556
+ "startable_flow_ids": json.dumps(startable_flow_ids),
557
+ }
558
+
559
+
560
+ def extract_attrs_for_advance_flows(
561
+ tracker: DialogueStateTracker, available_actions: List[str], flows: FlowsList
562
+ ) -> Dict[str, Any]:
563
+ from rasa.tracing.instrumentation.instrumentation import FLOW_EXECUTOR_MODULE_NAME
564
+
565
+ current_context = extract_current_context_attribute(tracker.stack)
566
+
567
+ return {
568
+ "module_name": FLOW_EXECUTOR_MODULE_NAME,
569
+ "available_actions": json.dumps(available_actions),
570
+ "current_context": json.dumps(current_context),
571
+ }
572
+
573
+
574
+ def extract_attrs_for_run_step(
575
+ step: FlowStep,
576
+ flow: Flow,
577
+ stack: DialogueStack,
578
+ tracker: DialogueStateTracker,
579
+ available_actions: List[str],
580
+ flows: FlowsList,
581
+ ) -> Dict[str, Any]:
582
+ current_context = extract_current_context_attribute(stack)
583
+
584
+ return {
585
+ "step_custom_id": step.custom_id if step.custom_id else "None",
586
+ "step_description": step.description if step.description else "None",
587
+ "current_flow_id": flow.id,
588
+ "current_context": json.dumps(current_context),
589
+ }
590
+
591
+
592
+ def extract_attrs_for_policy_prediction(
593
+ self: Any,
594
+ probabilities: List[float],
595
+ events: Optional[List[Event]] = None,
596
+ optional_events: Optional[List[Event]] = None,
597
+ is_end_to_end_prediction: bool = False,
598
+ is_no_user_prediction: bool = False,
599
+ diagnostic_data: Optional[Dict[Text, Any]] = None,
600
+ action_metadata: Optional[Dict[Text, Any]] = None,
601
+ ) -> Dict[str, Any]:
602
+ # diagnostic_data can contain ndarray type values which need to be converted
603
+ # into a list since the returning values have to be JSON serializable.
604
+ if isinstance(diagnostic_data, dict):
605
+ diagnostic_data = {
606
+ key: value.tolist() if isinstance(value, ndarray) else value
607
+ for key, value in diagnostic_data.items()
608
+ }
609
+
610
+ return {
611
+ "priority": self.priority,
612
+ "events": [event.__class__.__name__ for event in events] if events else "None",
613
+ "optional_events": [event.__class__.__name__ for event in optional_events]
614
+ if optional_events
615
+ else "None",
616
+ "is_end_to_end_prediction": is_end_to_end_prediction,
617
+ "is_no_user_prediction": is_no_user_prediction,
618
+ "diagnostic_data": json.dumps(diagnostic_data),
619
+ "action_metadata": json.dumps(action_metadata),
620
+ }
621
+
622
+
623
+ def extract_attrs_for_intentless_policy_prediction_result(
624
+ self: "IntentlessPolicy",
625
+ action_name: Optional[Text],
626
+ domain: Domain,
627
+ score: Optional[float] = 1.0,
628
+ ) -> Dict[str, Any]:
629
+ return {
630
+ "action_name": action_name if action_name else "null",
631
+ "score": score if score else 0.0,
632
+ }
633
+
634
+
635
+ def extract_attrs_for_intentless_policy_find_closest_response(
636
+ self: "IntentlessPolicy",
637
+ tracker: DialogueStateTracker,
638
+ ) -> Dict[str, Any]:
639
+ return {
640
+ "current_context": json.dumps(tracker.stack.current_context()),
641
+ }
642
+
643
+
644
+ def extract_attrs_for_intentless_policy_generate_llm_answer(
645
+ self: "IntentlessPolicy", llm: "BaseLLM", prompt: str
646
+ ) -> Dict[str, Any]:
647
+ from rasa.core.policies.intentless_policy import (
648
+ DEFAULT_EMBEDDINGS_CONFIG,
649
+ DEFAULT_LLM_CONFIG,
650
+ )
651
+
652
+ attributes = extract_llm_config(
653
+ self,
654
+ default_llm_config=DEFAULT_LLM_CONFIG,
655
+ default_embeddings_config=DEFAULT_EMBEDDINGS_CONFIG,
656
+ )
657
+
658
+ return extend_attributes_with_prompt_tokens_length(self, attributes, prompt)
659
+
660
+
661
+ def extract_attrs_for_enterprise_search_generate_llm_answer(
662
+ self: "EnterpriseSearchPolicy", llm: "BaseLLM", prompt: str
663
+ ) -> Dict[str, Any]:
664
+ from rasa.core.policies.enterprise_search_policy import (
665
+ DEFAULT_EMBEDDINGS_CONFIG,
666
+ DEFAULT_LLM_CONFIG,
667
+ )
668
+
669
+ attributes = extract_llm_config(
670
+ self,
671
+ default_llm_config=DEFAULT_LLM_CONFIG,
672
+ default_embeddings_config=DEFAULT_EMBEDDINGS_CONFIG,
673
+ )
674
+
675
+ return extend_attributes_with_prompt_tokens_length(self, attributes, prompt)
676
+
677
+
678
+ def extract_current_context_attribute(stack: DialogueStack) -> Dict[str, Any]:
679
+ """Utility function to extract the current context from the dialogue stack."""
680
+ current_context = stack.current_context()
681
+
682
+ if "corrected_slots" in current_context:
683
+ current_context["corrected_slots"] = list(
684
+ current_context["corrected_slots"].keys()
685
+ )
686
+
687
+ return current_context
688
+
689
+
690
+ def compute_prompt_tokens_length(
691
+ model_type: str, model_name: str, prompt: str
692
+ ) -> Optional[int]:
693
+ """Utility function to compute the length of the prompt tokens for OpenAI models."""
694
+ if model_type != "openai":
695
+ logger.warning(
696
+ "Tracing prompt tokens is only supported for OpenAI models. Skipping."
697
+ )
698
+ return None
699
+
700
+ if model_name in ["gpt-3.5-turbo", "gpt-4"]:
701
+ logger.debug(
702
+ f"Model {model_name} may update over time. "
703
+ f"Returning num tokens assuming model '{model_name}-0613.'"
704
+ )
705
+ model_name = f"{model_name}-0613"
706
+
707
+ encoding = tiktoken.encoding_for_model(model_name)
708
+ return len(encoding.encode(prompt))
709
+
710
+
711
+ def extend_attributes_with_prompt_tokens_length(
712
+ self: Any,
713
+ attributes: Dict[str, Any],
714
+ prompt: str,
715
+ ) -> Dict[str, Any]:
716
+ if not self.trace_prompt_tokens:
717
+ return attributes
718
+
719
+ len_prompt_tokens = compute_prompt_tokens_length(
720
+ model_type=attributes["llm_type"],
721
+ model_name=attributes["llm_model"],
722
+ prompt=prompt,
723
+ )
724
+
725
+ attributes[PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME] = str(len_prompt_tokens)
726
+
727
+ return attributes
728
+
729
+
730
+ def extract_attrs_for_custom_action_executor_run(
731
+ self: Union[
732
+ HTTPCustomActionExecutor, GRPCCustomActionExecutor, DirectCustomActionExecutor
733
+ ],
734
+ tracker: DialogueStateTracker,
735
+ domain: Domain,
736
+ include_domain: bool = False,
737
+ ) -> Dict[str, Any]:
738
+ actions_module, url = None, None
739
+ if hasattr(self, "action_endpoint"):
740
+ url = self.action_endpoint.url
741
+ actions_module = self.action_endpoint.actions_module
742
+
743
+ attrs: Dict[str, Any] = {
744
+ "class_name": self.__class__.__name__,
745
+ "action_name": self.action_name if hasattr(self, "action_name") else "None",
746
+ "sender_id": tracker.sender_id,
747
+ "url": str(url),
748
+ "actions_module": str(actions_module),
749
+ }
750
+ return attrs
751
+
752
+
753
+ def extract_attrs_for_grpc_custom_action_executor_request(
754
+ self: GRPCCustomActionExecutor,
755
+ request: action_webhook_pb2.WebhookRequest,
756
+ ) -> Dict[str, Any]:
757
+ attrs: Dict[str, Any] = {"url": self.action_endpoint.url}
758
+
759
+ attrs.update(
760
+ {
761
+ REQUEST_BODY_SIZE_IN_BYTES_ATTRIBUTE_NAME: request.ByteSize(),
762
+ }
763
+ )
764
+
765
+ return attrs