rasa-pro 3.14.0.dev20250825__py3-none-any.whl → 3.14.0.dev20250922__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 (351) hide show
  1. rasa/builder/README.md +120 -0
  2. rasa/builder/__init__.py +0 -0
  3. rasa/builder/auth.py +176 -0
  4. rasa/builder/config.py +92 -0
  5. rasa/builder/copilot/__init__.py +0 -0
  6. rasa/builder/copilot/constants.py +31 -0
  7. rasa/builder/copilot/copilot.py +450 -0
  8. rasa/builder/copilot/copilot_response_handler.py +522 -0
  9. rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
  10. rasa/builder/copilot/exceptions.py +32 -0
  11. rasa/builder/copilot/models.py +500 -0
  12. rasa/builder/copilot/prompts/__init__.py +0 -0
  13. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +766 -0
  14. rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
  15. rasa/builder/copilot/signing.py +305 -0
  16. rasa/builder/copilot/telemetry.py +226 -0
  17. rasa/builder/copilot/templated_messages/__init__.py +0 -0
  18. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
  19. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +38 -0
  20. rasa/builder/document_retrieval/__init__.py +0 -0
  21. rasa/builder/document_retrieval/constants.py +15 -0
  22. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
  23. rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
  24. rasa/builder/document_retrieval/models.py +62 -0
  25. rasa/builder/download.py +140 -0
  26. rasa/builder/exceptions.py +91 -0
  27. rasa/builder/guardrails/__init__.py +1 -0
  28. rasa/builder/guardrails/constants.py +9 -0
  29. rasa/builder/guardrails/exceptions.py +4 -0
  30. rasa/builder/guardrails/lakera.py +206 -0
  31. rasa/builder/guardrails/models.py +231 -0
  32. rasa/builder/guardrails/store.py +238 -0
  33. rasa/builder/guardrails/utils.py +328 -0
  34. rasa/builder/job_manager.py +87 -0
  35. rasa/builder/jobs.py +282 -0
  36. rasa/builder/llm_service.py +246 -0
  37. rasa/builder/logging_utils.py +265 -0
  38. rasa/builder/main.py +234 -0
  39. rasa/builder/models.py +216 -0
  40. rasa/builder/project_generator.py +458 -0
  41. rasa/builder/project_info.py +72 -0
  42. rasa/builder/scrape_rasa_docs.py +97 -0
  43. rasa/builder/service.py +1350 -0
  44. rasa/builder/shared/tracker_context.py +212 -0
  45. rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
  46. rasa/builder/template_cache.py +69 -0
  47. rasa/builder/training_service.py +194 -0
  48. rasa/builder/validation_service.py +97 -0
  49. rasa/cli/project_templates/basic/README.md +23 -0
  50. rasa/cli/project_templates/basic/actions/__init__ +0 -0
  51. rasa/cli/project_templates/basic/actions/action_human_handoff.py +40 -0
  52. rasa/cli/project_templates/basic/actions/actions.md +10 -0
  53. rasa/cli/project_templates/basic/config.yml +29 -0
  54. rasa/cli/project_templates/basic/credentials.yml +33 -0
  55. rasa/cli/project_templates/basic/data/data.md +8 -0
  56. rasa/cli/project_templates/basic/data/general/feedback.yml +21 -0
  57. rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
  58. rasa/cli/project_templates/basic/data/general/hello.yml +6 -0
  59. rasa/cli/project_templates/basic/data/general/help.yml +6 -0
  60. rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
  61. rasa/cli/project_templates/basic/data/general/show_faqs.yml +6 -0
  62. rasa/cli/project_templates/basic/data/system/patterns/pattern_cannot_handle.yml +7 -0
  63. rasa/cli/project_templates/basic/data/system/patterns/pattern_completed.yml +7 -0
  64. rasa/cli/project_templates/basic/data/system/patterns/pattern_correction.yml +7 -0
  65. rasa/cli/project_templates/basic/data/system/patterns/pattern_search.yml +8 -0
  66. rasa/cli/project_templates/basic/data/system/patterns/pattern_session_start.yml +8 -0
  67. rasa/cli/project_templates/basic/docs/docs.md +5 -0
  68. rasa/cli/project_templates/basic/docs/template.txt +28 -0
  69. rasa/cli/project_templates/basic/domain/domain.md +11 -0
  70. rasa/cli/project_templates/basic/domain/general/feedback.yml +25 -0
  71. rasa/cli/project_templates/basic/domain/general/goodbye.yml +9 -0
  72. rasa/cli/project_templates/basic/domain/general/hello.yml +7 -0
  73. rasa/cli/project_templates/basic/domain/general/help.yml +21 -0
  74. rasa/cli/project_templates/basic/domain/general/human_handoff.yml +32 -0
  75. rasa/cli/project_templates/basic/domain/general/show_faqs.yml +14 -0
  76. rasa/cli/project_templates/basic/domain/system/patterns/pattern_cannot_handle.yml +5 -0
  77. rasa/cli/project_templates/basic/domain/system/patterns/pattern_session_start.yml +19 -0
  78. rasa/cli/project_templates/basic/endpoints.yml +67 -0
  79. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
  80. rasa/cli/project_templates/default/config.yml +4 -0
  81. rasa/cli/project_templates/default/endpoints.yml +4 -0
  82. rasa/cli/project_templates/finance/README.md +26 -0
  83. rasa/cli/project_templates/finance/actions/__init__.py +0 -0
  84. rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
  85. rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
  86. rasa/cli/project_templates/finance/actions/actions.md +15 -0
  87. rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
  88. rasa/cli/project_templates/finance/actions/cards/check_that_card_exists.py +21 -0
  89. rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
  90. rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
  91. rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
  92. rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
  93. rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
  94. rasa/cli/project_templates/finance/actions/db.py +117 -0
  95. rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
  96. rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
  97. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  98. rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
  99. rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
  100. rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
  101. rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
  102. rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
  103. rasa/cli/project_templates/finance/config.yml +29 -0
  104. rasa/cli/project_templates/finance/credentials.yml +33 -0
  105. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +9 -0
  106. rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
  107. rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
  108. rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
  109. rasa/cli/project_templates/finance/data/cards/block_card.yml +45 -0
  110. rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
  111. rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
  112. rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
  113. rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
  114. rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
  115. rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
  116. rasa/cli/project_templates/finance/data/data.md +14 -0
  117. rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
  118. rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
  119. rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
  120. rasa/cli/project_templates/finance/data/general/hello.yml +6 -0
  121. rasa/cli/project_templates/finance/data/general/help.yml +9 -0
  122. rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
  123. rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
  124. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
  125. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
  126. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
  127. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
  128. rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
  129. rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
  130. rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
  131. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +34 -0
  132. rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
  133. rasa/cli/project_templates/finance/db/cards.json +18 -0
  134. rasa/cli/project_templates/finance/db/contacts.json +10 -0
  135. rasa/cli/project_templates/finance/db/my_account.json +6 -0
  136. rasa/cli/project_templates/finance/db/transactions.json +22 -0
  137. rasa/cli/project_templates/finance/docs/docs.md +8 -0
  138. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
  139. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
  140. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
  141. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
  142. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
  143. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
  144. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
  145. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
  146. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
  147. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
  148. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +15 -0
  149. rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
  150. rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
  151. rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
  152. rasa/cli/project_templates/finance/domain/cards/block_card.yml +44 -0
  153. rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
  154. rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
  155. rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
  156. rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
  157. rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
  158. rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
  159. rasa/cli/project_templates/finance/domain/domain.md +18 -0
  160. rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
  161. rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
  162. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +8 -0
  163. rasa/cli/project_templates/finance/domain/general/feedback.yml +25 -0
  164. rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
  165. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +31 -0
  166. rasa/cli/project_templates/finance/domain/general/welcome.yml +39 -0
  167. rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
  168. rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
  169. rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
  170. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +221 -0
  171. rasa/cli/project_templates/finance/endpoints.yml +67 -0
  172. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
  173. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/check_balance.yml +9 -0
  174. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/download_statements.yml +43 -0
  175. rasa/cli/project_templates/finance/tests/e2e_test_cases/cards/block_card.yml +55 -0
  176. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  177. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/feedback.yml +46 -0
  178. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/goodbye.yml +9 -0
  179. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/hello.yml +8 -0
  180. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  181. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/patterns.yml +22 -0
  182. rasa/cli/project_templates/finance/tests/e2e_test_cases/transfers/transfer_money.yml +56 -0
  183. rasa/cli/project_templates/telco/README.md +25 -0
  184. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  185. rasa/cli/project_templates/telco/actions/actions.md +12 -0
  186. rasa/cli/project_templates/telco/actions/billing/__init__.py +0 -0
  187. rasa/cli/project_templates/telco/actions/billing/actions_billing.py +204 -0
  188. rasa/cli/project_templates/telco/actions/general/__init__.py +0 -0
  189. rasa/cli/project_templates/telco/actions/general/action_human_handoff.py +49 -0
  190. rasa/cli/project_templates/telco/actions/network/__init__.py +0 -0
  191. rasa/cli/project_templates/telco/actions/network/actions_get_data_from_db.py +48 -0
  192. rasa/cli/project_templates/telco/actions/network/actions_run_diagnostics.py +28 -0
  193. rasa/cli/project_templates/telco/actions/network/actions_session_start.py +18 -0
  194. rasa/cli/project_templates/telco/config.yml +29 -0
  195. rasa/cli/project_templates/telco/credentials.yml +33 -0
  196. rasa/cli/project_templates/telco/csvs/billing.csv +19 -0
  197. rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
  198. rasa/cli/project_templates/telco/data/billing/flow_understand_bill.yml +45 -0
  199. rasa/cli/project_templates/telco/data/data.md +11 -0
  200. rasa/cli/project_templates/telco/data/general/bot_challenge.yml +6 -0
  201. rasa/cli/project_templates/telco/data/general/feedback.yml +20 -0
  202. rasa/cli/project_templates/telco/data/general/goodbye.yml +6 -0
  203. rasa/cli/project_templates/telco/data/general/hello.yml +6 -0
  204. rasa/cli/project_templates/telco/data/general/human_handoff.yml +16 -0
  205. rasa/cli/project_templates/telco/data/general/patterns.yml +30 -0
  206. rasa/cli/project_templates/telco/data/network/flow_reboot_router.yml +8 -0
  207. rasa/cli/project_templates/telco/data/network/flow_reset_router.yml +7 -0
  208. rasa/cli/project_templates/telco/data/network/flow_solve_internet_issue.yml +73 -0
  209. rasa/cli/project_templates/telco/docs/docs.md +8 -0
  210. rasa/cli/project_templates/telco/docs/network/reset_vs_rboot_router.txt +1 -0
  211. rasa/cli/project_templates/telco/docs/network/restart_router.txt +6 -0
  212. rasa/cli/project_templates/telco/docs/network/run_speed_test.txt +6 -0
  213. rasa/cli/project_templates/telco/domain/billing/understand_bill.yml +102 -0
  214. rasa/cli/project_templates/telco/domain/domain.md +13 -0
  215. rasa/cli/project_templates/telco/domain/general/bot_challenge.yml +4 -0
  216. rasa/cli/project_templates/telco/domain/general/feedback.yml +25 -0
  217. rasa/cli/project_templates/telco/domain/general/goodbye.yml +7 -0
  218. rasa/cli/project_templates/telco/domain/general/hello.yml +5 -0
  219. rasa/cli/project_templates/telco/domain/general/human_handoff.yml +26 -0
  220. rasa/cli/project_templates/telco/domain/general/patterns.yml +33 -0
  221. rasa/cli/project_templates/telco/domain/network/reboot_router.yml +21 -0
  222. rasa/cli/project_templates/telco/domain/network/reset_router.yml +12 -0
  223. rasa/cli/project_templates/telco/domain/network/run_speed_test.yml +25 -0
  224. rasa/cli/project_templates/telco/domain/network/solve_internet_issue.yml +75 -0
  225. rasa/cli/project_templates/telco/domain/shared.yml +129 -0
  226. rasa/cli/project_templates/telco/endpoints.yml +67 -0
  227. rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +40 -0
  228. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing/understand_bill.yml +67 -0
  229. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  230. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/feedback.yml +46 -0
  231. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/goodbye.yml +9 -0
  232. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/hello.yml +8 -0
  233. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  234. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/patterns.yml +23 -0
  235. rasa/cli/project_templates/telco/tests/e2e_test_cases/network/solve_internet_issue.yml +57 -0
  236. rasa/cli/project_templates/tutorial/config.yml +2 -1
  237. rasa/cli/scaffold.py +46 -2
  238. rasa/core/actions/action.py +0 -1
  239. rasa/core/actions/action_run_slot_rejections.py +1 -1
  240. rasa/core/actions/direct_custom_actions_executor.py +9 -2
  241. rasa/core/brokers/broker.py +1 -1
  242. rasa/core/brokers/kafka.py +52 -8
  243. rasa/core/channels/development_inspector.py +1 -21
  244. rasa/core/channels/hangouts.py +2 -2
  245. rasa/core/channels/inspector/dist/assets/{arc-1ddec37b.js → arc-35222594.js} +1 -1
  246. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-18af387c.js → blockDiagram-38ab4fdb-a0efbfd3.js} +1 -1
  247. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-250127a3.js → c4Diagram-3d4e48cf-0584c0f2.js} +1 -1
  248. rasa/core/channels/inspector/dist/assets/channel-8e08bed9.js +1 -0
  249. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-c3388b34.js → classDiagram-70f12bd4-39f40dbe.js} +1 -1
  250. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9c893a82.js → classDiagram-v2-f2320105-1ad755f3.js} +1 -1
  251. rasa/core/channels/inspector/dist/assets/clone-78c82dea.js +1 -0
  252. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-c111213b.js → createText-2e5e7dd3-b0f4f0fe.js} +1 -1
  253. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-812a729d.js → edges-e0da2a9e-9039bff9.js} +1 -1
  254. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-fd5051bc.js → erDiagram-9861fffd-65c9b127.js} +1 -1
  255. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-3287ac02.js → flowDb-956e92f1-4f08b38e.js} +1 -1
  256. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-692fb0b2.js → flowDiagram-66a62f08-e95c362a.js} +1 -1
  257. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b08f601.js +1 -0
  258. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-008376f1.js → flowchart-elk-definition-4a651766-703c3015.js} +1 -1
  259. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-df330a69.js → ganttDiagram-c361ad54-699328ea.js} +1 -1
  260. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-e03676fb.js → gitGraphDiagram-72cf32ee-04cf4b05.js} +1 -1
  261. rasa/core/channels/inspector/dist/assets/{graph-46fad2ba.js → graph-ee94449e.js} +1 -1
  262. rasa/core/channels/inspector/dist/assets/{index-3862675e-a484ac55.js → index-3862675e-940162b4.js} +1 -1
  263. rasa/core/channels/inspector/dist/assets/{index-a003633f.js → index-c941dcb3.js} +239 -238
  264. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-3f9e6ec2.js → infoDiagram-f8f76790-c79c2866.js} +1 -1
  265. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-79f72383.js → journeyDiagram-49397b02-84489d30.js} +1 -1
  266. rasa/core/channels/inspector/dist/assets/{layout-aad098e5.js → layout-a9aa9858.js} +1 -1
  267. rasa/core/channels/inspector/dist/assets/{line-219ab7ae.js → line-eb73cf26.js} +1 -1
  268. rasa/core/channels/inspector/dist/assets/{linear-2cddbe62.js → linear-b3399f9a.js} +1 -1
  269. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-1d41ed99.js → mindmap-definition-fc14e90a-b095bf1a.js} +1 -1
  270. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-cc496ee8.js → pieDiagram-8a3498a8-07644b66.js} +1 -1
  271. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-84d32884.js → quadrantDiagram-120e2f19-573a3f9c.js} +1 -1
  272. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-c0deb984.js → requirementDiagram-deff3bca-d457e1e1.js} +1 -1
  273. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-b9d7fd62.js → sankeyDiagram-04a897e0-9d26e1a2.js} +1 -1
  274. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-7d517565.js → sequenceDiagram-704730f1-3a9cde10.js} +1 -1
  275. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-98ef9b27.js → stateDiagram-587899a1-4f3e8cec.js} +1 -1
  276. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-cee70748.js → stateDiagram-v2-d93cdb3a-e617e5bf.js} +1 -1
  277. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-3f9d1c96.js → styles-6aaf32cf-eab30d2f.js} +1 -1
  278. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-67471923.js → styles-9a916d00-09994be2.js} +1 -1
  279. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-bd093fb7.js → styles-c10674c1-b7110364.js} +1 -1
  280. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-675794e8.js → svgDrawCommon-08f97a94-3ebc92ad.js} +1 -1
  281. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-0ac67617.js → timeline-definition-85554ec2-7d13d2f2.js} +1 -1
  282. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-c018dc37.js → xychartDiagram-e933f94c-488385e1.js} +1 -1
  283. rasa/core/channels/inspector/dist/index.html +2 -2
  284. rasa/core/channels/inspector/index.html +1 -1
  285. rasa/core/channels/inspector/src/App.tsx +15 -42
  286. rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
  287. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +20 -3
  288. rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +63 -35
  289. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +14 -0
  290. rasa/core/channels/inspector/src/types.ts +32 -7
  291. rasa/core/channels/studio_chat.py +43 -43
  292. rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
  293. rasa/core/channels/voice_stream/asr/azure.py +6 -3
  294. rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
  295. rasa/core/channels/voice_stream/audiocodes.py +3 -0
  296. rasa/core/channels/voice_stream/browser_audio.py +55 -3
  297. rasa/core/channels/voice_stream/genesys.py +2 -1
  298. rasa/core/channels/voice_stream/jambonz.py +9 -1
  299. rasa/core/channels/voice_stream/twilio_media_streams.py +16 -0
  300. rasa/core/channels/voice_stream/voice_channel.py +61 -0
  301. rasa/core/concurrent_lock_store.py +66 -16
  302. rasa/core/constants.py +7 -0
  303. rasa/core/iam_credentials_providers/__init__.py +0 -0
  304. rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +226 -0
  305. rasa/core/iam_credentials_providers/credentials_provider_protocol.py +90 -0
  306. rasa/core/lock_store.py +46 -10
  307. rasa/core/nlg/generator.py +1 -1
  308. rasa/core/policies/enterprise_search_policy.py +4 -7
  309. rasa/core/policies/flows/flow_executor.py +9 -2
  310. rasa/core/processor.py +32 -0
  311. rasa/core/redis_connection_factory.py +469 -0
  312. rasa/core/tracker_stores/redis_tracker_store.py +32 -14
  313. rasa/core/tracker_stores/sql_tracker_store.py +57 -1
  314. rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
  315. rasa/engine/graph.py +5 -1
  316. rasa/engine/loader.py +12 -0
  317. rasa/engine/storage/local_model_storage.py +83 -3
  318. rasa/model_manager/model_api.py +1 -2
  319. rasa/model_manager/runner_service.py +1 -1
  320. rasa/model_manager/socket_bridge.py +1 -2
  321. rasa/model_manager/trainer_service.py +12 -9
  322. rasa/model_manager/utils.py +1 -29
  323. rasa/model_manager/warm_rasa_process.py +13 -3
  324. rasa/shared/core/constants.py +1 -0
  325. rasa/shared/core/domain.py +62 -15
  326. rasa/shared/core/events.py +2 -0
  327. rasa/shared/core/flows/flow.py +1 -1
  328. rasa/shared/core/flows/flow_step.py +7 -1
  329. rasa/shared/core/flows/steps/call.py +8 -1
  330. rasa/shared/core/flows/yaml_flows_io.py +16 -8
  331. rasa/shared/core/slots.py +4 -0
  332. rasa/shared/importers/importer.py +6 -0
  333. rasa/shared/importers/utils.py +77 -1
  334. rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
  335. rasa/studio/upload.py +12 -46
  336. rasa/telemetry.py +97 -23
  337. rasa/utils/io.py +27 -9
  338. rasa/utils/json_utils.py +6 -1
  339. rasa/utils/log_utils.py +5 -1
  340. rasa/utils/openapi.py +144 -0
  341. rasa/utils/pypred.py +38 -0
  342. rasa/validator.py +19 -11
  343. rasa/version.py +1 -1
  344. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/METADATA +27 -25
  345. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/RECORD +348 -109
  346. rasa/core/channels/inspector/dist/assets/channel-59f6d54b.js +0 -1
  347. rasa/core/channels/inspector/dist/assets/clone-26177ddb.js +0 -1
  348. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-29c03f5a.js +0 -1
  349. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/NOTICE +0 -0
  350. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/WHEEL +0 -0
  351. {rasa_pro-3.14.0.dev20250825.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/entry_points.txt +0 -0
rasa/builder/main.py ADDED
@@ -0,0 +1,234 @@
1
+ #!/usr/bin/env python3
2
+ """Main entry point for the prompt-to-bot service."""
3
+
4
+ import asyncio
5
+ import logging
6
+ import os
7
+ import sys
8
+ from typing import Optional
9
+
10
+ import structlog
11
+ from sanic import HTTPResponse, Sanic
12
+ from sanic.request import Request
13
+ from sanic_openapi import openapi3_blueprint
14
+
15
+ import rasa.core.utils
16
+ import rasa.telemetry
17
+ from rasa.builder import config
18
+ from rasa.builder.logging_utils import (
19
+ attach_request_id_processor,
20
+ collecting_logs_processor,
21
+ log_request_end,
22
+ log_request_start,
23
+ )
24
+ from rasa.builder.service import bp, setup_project_generator
25
+ from rasa.builder.training_service import try_load_existing_agent, update_agent
26
+ from rasa.core.channels.studio_chat import StudioChatInput
27
+ from rasa.model_manager.warm_rasa_process import warmup
28
+ from rasa.server import configure_cors
29
+ from rasa.utils.common import configure_logging_and_warnings
30
+ from rasa.utils.log_utils import configure_structlog
31
+ from rasa.utils.sanic_error_handler import register_custom_sanic_error_handler
32
+
33
+ structlogger = structlog.get_logger()
34
+
35
+
36
+ def setup_logging() -> None:
37
+ """Setup logging configuration."""
38
+ log_level = logging.DEBUG
39
+
40
+ configure_logging_and_warnings(
41
+ log_level=log_level,
42
+ logging_config_file=None,
43
+ warn_only_once=True,
44
+ filter_repeated_logs=True,
45
+ )
46
+
47
+ configure_structlog(
48
+ log_level,
49
+ include_time=True,
50
+ additional_processors=[attach_request_id_processor, collecting_logs_processor],
51
+ )
52
+
53
+
54
+ def setup_input_channel() -> StudioChatInput:
55
+ """Setup the input channel for chat interactions."""
56
+ studio_chat_credentials = config.get_default_credentials().get(
57
+ StudioChatInput.name()
58
+ )
59
+ return StudioChatInput.from_credentials(credentials=studio_chat_credentials)
60
+
61
+
62
+ def setup_middleware(app: Sanic) -> None:
63
+ """Setup middleware for request/response processing."""
64
+
65
+ @app.middleware("request") # type: ignore[misc,no-untyped-call]
66
+ async def log_request(request: Request) -> None:
67
+ # store start time on request ctx for later latency calculation
68
+ request.ctx._start_time = log_request_start(request)
69
+
70
+ @app.middleware("response") # type: ignore[misc,no-untyped-call]
71
+ async def log_response(request: Request, response: HTTPResponse) -> None:
72
+ try:
73
+ start = getattr(request.ctx, "_start_time", None)
74
+ if start is None:
75
+ # If for some reason the request middleware didn't run
76
+ start = log_request_start(request)
77
+ # propagate correlation id for clients
78
+ correlation_id = getattr(request.ctx, "correlation_id", None)
79
+ if correlation_id:
80
+ response.headers["X-Correlation-Id"] = correlation_id
81
+ log_request_end(request, response, start)
82
+ except Exception:
83
+ # avoid breaking response path
84
+ pass
85
+
86
+
87
+ def create_app(project_folder: str) -> Sanic:
88
+ """Create and configure the Sanic app."""
89
+ app = Sanic("BotBuilderService")
90
+
91
+ # Basic app configuration
92
+ app.config.REQUEST_TIMEOUT = 60 # 1 minute timeout
93
+ # Expose auth toggle to app.config so decorators can read it
94
+ app.config.USE_AUTHENTICATION = True
95
+
96
+ structlogger.debug(
97
+ "builder.main.create_app",
98
+ project_folder=project_folder,
99
+ use_authentication=app.config.USE_AUTHENTICATION,
100
+ rasa_version=rasa.__version__,
101
+ )
102
+
103
+ # Set up project generator and store in app context
104
+ app.ctx.project_generator = setup_project_generator(project_folder)
105
+
106
+ # Set up input channel and store in app context
107
+ app.ctx.input_channel = setup_input_channel()
108
+
109
+ update_agent(None, app)
110
+
111
+ # Register the blueprint
112
+ app.blueprint(bp)
113
+
114
+ # OpenAPI docs
115
+ app.blueprint(openapi3_blueprint)
116
+ app.config.API_TITLE = "Bot Builder API"
117
+ app.config.API_VERSION = rasa.__version__
118
+ app.config.API_DESCRIPTION = (
119
+ "API for building conversational AI bots from prompts and templates. "
120
+ "The API allows to change the assistant and retrain it with new data."
121
+ )
122
+
123
+ # Setup middleware
124
+ setup_middleware(app)
125
+
126
+ configure_cors(app, cors_origins=config.CORS_ORIGINS)
127
+
128
+ # Register input channel webhooks
129
+ from rasa.core import channels
130
+
131
+ channels.channel.register([app.ctx.input_channel], app, route="/webhooks/")
132
+
133
+ # Register startup event handler for agent loading
134
+ @app.after_server_start
135
+ async def load_agent_on_startup(
136
+ app: Sanic, loop: asyncio.AbstractEventLoop
137
+ ) -> None:
138
+ """Load existing agent if available when server starts."""
139
+ try:
140
+ existing_agent = await try_load_existing_agent(project_folder)
141
+ if existing_agent:
142
+ update_agent(existing_agent, app)
143
+ structlogger.info("Agent loaded on server startup")
144
+ else:
145
+ structlogger.info(
146
+ "No existing agent found, server starting without agent"
147
+ )
148
+ except Exception as e:
149
+ structlogger.warning("Failed to load agent on server startup", error=str(e))
150
+
151
+ return app
152
+
153
+
154
+ def _apply_llm_overrides_from_builder_env() -> None:
155
+ # Prefer a dedicated builder key, fall back to license if you proxy with it
156
+ if not config.HELLO_LLM_PROXY_BASE_URL:
157
+ return
158
+
159
+ structlogger.debug(
160
+ "builder.main.using_llm_proxy", base_url=config.HELLO_LLM_PROXY_BASE_URL
161
+ )
162
+
163
+ if not config.RASA_PRO_LICENSE:
164
+ structlogger.error(
165
+ "copilot.proxy_missing_license",
166
+ event_info=(
167
+ "HELLO_LLM_PROXY_BASE_URL is set but RASA_PRO_LICENSE is missing."
168
+ ),
169
+ )
170
+ return
171
+
172
+ if not os.getenv("OPENAI_API_BASE") and not os.getenv("OPENAI_API_KEY"):
173
+ base_url = config.HELLO_LLM_PROXY_BASE_URL.rstrip("/")
174
+ # needed for litellm client
175
+ os.environ["OPENAI_API_BASE"] = base_url
176
+ # needed for openai async client
177
+ os.environ["OPENAI_BASE_URL"] = base_url
178
+ os.environ["OPENAI_API_KEY"] = config.RASA_PRO_LICENSE
179
+
180
+
181
+ def main(project_folder: Optional[str] = None) -> None:
182
+ """Main entry point."""
183
+ try:
184
+ # Setup logging
185
+ setup_logging()
186
+
187
+ # Setup telemetry
188
+ rasa.telemetry.initialize_telemetry()
189
+ rasa.telemetry.initialize_error_reporting(private_mode=False)
190
+
191
+ _apply_llm_overrides_from_builder_env()
192
+
193
+ if config.HELLO_RASA_PROJECT_ID:
194
+ # ensures long import times for modules are ahead of time
195
+ warmup()
196
+
197
+ # working directory needs to be the project folder, e.g.
198
+ # for relative paths (./docs) in a projects config to work
199
+ if not project_folder:
200
+ import tempfile
201
+
202
+ project_folder = tempfile.mkdtemp(prefix="rasa_builder_")
203
+
204
+ os.chdir(project_folder)
205
+
206
+ # Create and configure app
207
+ app = create_app(project_folder)
208
+ register_custom_sanic_error_handler(app)
209
+
210
+ # Run the service
211
+ structlogger.info(
212
+ "service.starting",
213
+ host=config.BUILDER_SERVER_HOST,
214
+ port=config.BUILDER_SERVER_PORT,
215
+ )
216
+
217
+ app.run(
218
+ host=config.BUILDER_SERVER_HOST,
219
+ port=config.BUILDER_SERVER_PORT,
220
+ legacy=True,
221
+ motd=False,
222
+ )
223
+
224
+ except KeyboardInterrupt:
225
+ print("\nService stopped by user")
226
+ sys.exit(0)
227
+ except Exception as e:
228
+ print(f"Failed to start service: {e}")
229
+ sys.exit(1)
230
+
231
+
232
+ if __name__ == "__main__":
233
+ project_folder = sys.argv[1] if len(sys.argv) > 1 else None
234
+ main(project_folder)
rasa/builder/models.py ADDED
@@ -0,0 +1,216 @@
1
+ """Pydantic models for request/response validation."""
2
+
3
+ import json
4
+ from enum import Enum
5
+ from pathlib import Path
6
+ from typing import Any, Dict, List, Literal, Optional
7
+
8
+ import structlog
9
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
10
+
11
+ from rasa.cli.scaffold import ProjectTemplateName
12
+ from rasa.shared.importers.importer import TrainingDataImporter
13
+
14
+ structlogger = structlog.get_logger()
15
+
16
+
17
+ class PromptRequest(BaseModel):
18
+ """Request model for prompt-to-bot endpoint."""
19
+
20
+ prompt: str = Field(
21
+ ..., min_length=1, max_length=10000, description="The skill description prompt"
22
+ )
23
+
24
+ @field_validator("prompt")
25
+ @classmethod
26
+ def validate_prompt(cls, v: str) -> str:
27
+ if not v.strip():
28
+ raise ValueError("Prompt cannot be empty or whitespace only")
29
+ return v.strip()
30
+
31
+
32
+ class TemplateRequest(BaseModel):
33
+ """Request model for template-to-bot endpoint."""
34
+
35
+ template_name: ProjectTemplateName = Field(
36
+ ...,
37
+ description=(
38
+ f"The template name to use ({ProjectTemplateName.supported_values()})"
39
+ ),
40
+ )
41
+
42
+ @field_validator("template_name")
43
+ @classmethod
44
+ def validate_template_name(cls, v: Any) -> Any:
45
+ if v not in ProjectTemplateName:
46
+ raise ValueError(
47
+ f"Template name must be one of {ProjectTemplateName.supported_values()}"
48
+ )
49
+ return v
50
+
51
+
52
+ class BotDataUpdateRequest(BaseModel):
53
+ """Request model for bot data updates."""
54
+
55
+ domain_yml: Optional[str] = Field(None, alias="domain.yml")
56
+ flows_yml: Optional[str] = Field(None, alias="flows.yml")
57
+ config_yml: Optional[str] = Field(None, alias="config.yml")
58
+
59
+ # Allow using either field names or aliases when creating the model
60
+ model_config = ConfigDict(populate_by_name=True)
61
+
62
+
63
+ class BotData(BaseModel):
64
+ """Data of a running assistant."""
65
+
66
+ domain: Dict[str, Any] = Field(..., description="The domain of the assistant.")
67
+ flows: Dict[str, Any] = Field(..., description="The flows of the assistant.")
68
+
69
+
70
+ class AssistantInfo(BaseModel):
71
+ """Basic information about the loaded assistant."""
72
+
73
+ assistant_id: Optional[str] = Field(
74
+ None,
75
+ description=(
76
+ "Assistant identifier coming from `assistant_id` in the model "
77
+ "metadata (config.yml)."
78
+ ),
79
+ )
80
+
81
+
82
+ class ApiErrorResponse(BaseModel):
83
+ """API error response model."""
84
+
85
+ status: Literal["error"] = "error"
86
+ error: str = Field(...)
87
+ details: Optional[Dict[str, Any]] = Field(None)
88
+
89
+
90
+ class ServerSentEventType(str, Enum):
91
+ progress = "progress"
92
+ error = "error"
93
+ _EOF = "_EOF"
94
+
95
+
96
+ class ServerSentEvent(BaseModel):
97
+ """Generic Server-Sent Event payload."""
98
+
99
+ event: str = Field(..., description="SSE event name / type")
100
+ data: Dict[str, Any] = Field(
101
+ default_factory=dict,
102
+ description="Arbitrary JSON-serializable payload",
103
+ )
104
+
105
+ @classmethod
106
+ def build(cls, event: str, data: Any) -> "ServerSentEvent":
107
+ """General-purpose constructor.
108
+
109
+ Args:
110
+ event: The event name (e.g. "progress", "error").
111
+ data: Arbitrary key-value pairs to include in the payload.
112
+
113
+ Returns:
114
+ A ServerSentEvent instance with the specified event and data.
115
+ """
116
+ return cls(event=event, data=data)
117
+
118
+ @classmethod
119
+ def eof(cls) -> "ServerSentEvent":
120
+ """Helper that returns the special end-of-stream marker."""
121
+ return cls(event=ServerSentEventType._EOF.value, data={})
122
+
123
+ def format(self) -> str:
124
+ """Return the text representation used by SSE protocols."""
125
+ return (
126
+ f"event: {self.event}\n"
127
+ f"data: {json.dumps(self.data, separators=(', ', ': '))}\n\n"
128
+ )
129
+
130
+
131
+ class JobStatusEvent(ServerSentEvent):
132
+ """Job status event with special handling for progress and error states."""
133
+
134
+ @classmethod
135
+ def from_status(
136
+ cls,
137
+ status: str,
138
+ message: Optional[str] = None,
139
+ ) -> "JobStatusEvent":
140
+ """Factory for job-status events.
141
+
142
+ Args:
143
+ status: The job status (e.g. "training", "train_success").
144
+ message: Optional error message for error events.
145
+
146
+ Returns:
147
+ A JobStatusEvent instance with the appropriate event type and data.
148
+ """
149
+ event_type = (
150
+ ServerSentEventType.error if message else ServerSentEventType.progress
151
+ )
152
+
153
+ payload: Dict[str, Any] = {"status": status}
154
+ if message:
155
+ payload["message"] = message
156
+
157
+ return cls(event=event_type.value, data=payload)
158
+
159
+
160
+ class ValidationResult(BaseModel):
161
+ """Result of validation operation."""
162
+
163
+ is_valid: bool = Field(...)
164
+ errors: Optional[List[str]] = Field(None)
165
+ warnings: Optional[List[str]] = Field(None)
166
+
167
+
168
+ class TrainingResult(BaseModel):
169
+ """Result of training operation."""
170
+
171
+ success: bool = Field(...)
172
+ model_path: Optional[str] = Field(None)
173
+ error: Optional[str] = Field(None)
174
+
175
+
176
+ BotFiles = Dict[str, Optional[str]]
177
+
178
+
179
+ class JobStatus(str, Enum):
180
+ received = "received"
181
+ done = "done"
182
+ error = "error"
183
+
184
+ generating = "generating"
185
+ generation_success = "generation_success"
186
+ generation_error = "generation_error"
187
+
188
+ training = "training"
189
+ train_success = "train_success"
190
+ train_error = "train_error"
191
+
192
+ validating = "validating"
193
+ validation_success = "validation_success"
194
+ validation_error = "validation_error"
195
+
196
+
197
+ class JobCreateResponse(BaseModel):
198
+ job_id: str = Field(...)
199
+ status: JobStatus = JobStatus.received
200
+
201
+
202
+ class TrainingInput(BaseModel):
203
+ """Input for training a model."""
204
+
205
+ model_config = {"arbitrary_types_allowed": True}
206
+
207
+ importer: TrainingDataImporter = Field(..., description="Training data importer")
208
+ endpoints_file: Path = Field(..., description="Path to the endpoints file")
209
+
210
+
211
+ class AgentStatus(str, Enum):
212
+ """Status of the agent."""
213
+
214
+ not_loaded = "not_loaded"
215
+ ready = "ready"
216
+ not_ready = "not_ready"