rasa-pro 3.14.0.dev20250901__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 (361) hide show
  1. rasa/builder/config.py +1 -0
  2. rasa/builder/copilot/constants.py +3 -0
  3. rasa/builder/copilot/copilot.py +128 -54
  4. rasa/builder/copilot/models.py +39 -3
  5. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +183 -188
  6. rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
  7. rasa/builder/copilot/telemetry.py +46 -20
  8. rasa/builder/document_retrieval/models.py +3 -3
  9. rasa/builder/download.py +1 -8
  10. rasa/builder/jobs.py +33 -21
  11. rasa/builder/main.py +38 -62
  12. rasa/builder/models.py +7 -7
  13. rasa/builder/project_generator.py +143 -147
  14. rasa/builder/service.py +42 -27
  15. rasa/builder/template_cache.py +69 -0
  16. rasa/builder/training_service.py +74 -4
  17. rasa/cli/project_templates/basic/README.md +23 -0
  18. rasa/cli/project_templates/basic/actions/actions.md +10 -0
  19. rasa/cli/project_templates/basic/config.yml +6 -4
  20. rasa/cli/project_templates/basic/data/data.md +5 -6
  21. rasa/cli/project_templates/basic/domain/domain.md +7 -5
  22. rasa/cli/project_templates/basic/domain/general/show_faqs.yml +1 -1
  23. rasa/cli/project_templates/basic/endpoints.yml +5 -1
  24. rasa/cli/project_templates/default/config.yml +4 -0
  25. rasa/cli/project_templates/default/endpoints.yml +4 -0
  26. rasa/cli/project_templates/finance/README.md +26 -0
  27. rasa/cli/project_templates/finance/actions/__init__.py +0 -46
  28. rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
  29. rasa/cli/project_templates/finance/actions/actions.md +15 -0
  30. rasa/cli/project_templates/finance/actions/{transfers/action_process_immediate_payment.py → cards/check_that_card_exists.py} +6 -3
  31. rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
  32. rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
  33. rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
  34. rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
  35. rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
  36. rasa/cli/project_templates/finance/actions/db.py +117 -0
  37. rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
  38. rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
  39. rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
  40. rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
  41. rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
  42. rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
  43. rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
  44. rasa/cli/project_templates/finance/config.yml +8 -0
  45. rasa/cli/project_templates/finance/credentials.yml +7 -6
  46. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +3 -4
  47. rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
  48. rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
  49. rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
  50. rasa/cli/project_templates/finance/data/cards/block_card.yml +37 -58
  51. rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
  52. rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
  53. rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
  54. rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
  55. rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
  56. rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
  57. rasa/cli/project_templates/finance/data/data.md +14 -0
  58. rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
  59. rasa/cli/project_templates/finance/data/general/goodbye.yml +1 -1
  60. rasa/cli/project_templates/finance/data/general/hello.yml +1 -2
  61. rasa/cli/project_templates/finance/data/general/help.yml +2 -2
  62. rasa/cli/project_templates/finance/data/general/human_handoff.yml +2 -2
  63. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +1 -1
  64. rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
  65. rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
  66. rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
  67. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +29 -62
  68. rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
  69. rasa/cli/project_templates/finance/db/cards.json +18 -0
  70. rasa/cli/project_templates/finance/db/contacts.json +10 -0
  71. rasa/cli/project_templates/finance/db/my_account.json +6 -0
  72. rasa/cli/project_templates/finance/db/transactions.json +22 -0
  73. rasa/cli/project_templates/finance/docs/docs.md +8 -0
  74. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
  75. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
  76. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
  77. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
  78. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
  79. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
  80. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
  81. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
  82. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
  83. rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
  84. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +9 -5
  85. rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
  86. rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
  87. rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
  88. rasa/cli/project_templates/finance/domain/cards/block_card.yml +33 -90
  89. rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
  90. rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
  91. rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
  92. rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
  93. rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
  94. rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
  95. rasa/cli/project_templates/finance/domain/domain.md +18 -0
  96. rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
  97. rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
  98. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -2
  99. rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -3
  100. rasa/cli/project_templates/finance/domain/general/goodbye.yml +6 -6
  101. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +10 -9
  102. rasa/cli/project_templates/finance/domain/general/welcome.yml +33 -2
  103. rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
  104. rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
  105. rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
  106. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +203 -61
  107. rasa/cli/project_templates/finance/endpoints.yml +8 -4
  108. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +31 -12
  109. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/check_balance.yml +9 -0
  110. rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/download_statements.yml +43 -0
  111. rasa/cli/project_templates/finance/tests/e2e_test_cases/cards/block_card.yml +55 -0
  112. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  113. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/feedback.yml +46 -0
  114. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/goodbye.yml +9 -0
  115. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/hello.yml +8 -0
  116. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  117. rasa/cli/project_templates/finance/tests/e2e_test_cases/general/patterns.yml +22 -0
  118. rasa/cli/project_templates/finance/tests/e2e_test_cases/transfers/transfer_money.yml +56 -0
  119. rasa/cli/project_templates/telco/README.md +25 -0
  120. rasa/cli/project_templates/telco/actions/actions.md +12 -0
  121. rasa/cli/project_templates/telco/config.yml +6 -4
  122. rasa/cli/project_templates/telco/data/data.md +11 -0
  123. rasa/cli/project_templates/telco/data/general/human_handoff.yml +1 -1
  124. rasa/cli/project_templates/telco/docs/docs.md +3 -0
  125. rasa/cli/project_templates/telco/domain/domain.md +13 -0
  126. rasa/cli/project_templates/telco/domain/general/human_handoff.yml +3 -6
  127. rasa/cli/project_templates/telco/endpoints.yml +5 -1
  128. rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +1 -1
  129. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing/understand_bill.yml +67 -0
  130. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
  131. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/feedback.yml +46 -0
  132. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/goodbye.yml +9 -0
  133. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/hello.yml +8 -0
  134. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/human_handoff.yml +35 -0
  135. rasa/cli/project_templates/telco/tests/e2e_test_cases/general/patterns.yml +23 -0
  136. rasa/cli/project_templates/telco/tests/e2e_test_cases/network/solve_internet_issue.yml +57 -0
  137. rasa/core/actions/action_run_slot_rejections.py +1 -1
  138. rasa/core/actions/direct_custom_actions_executor.py +9 -2
  139. rasa/core/brokers/broker.py +1 -1
  140. rasa/core/brokers/kafka.py +52 -8
  141. rasa/core/channels/development_inspector.py +1 -21
  142. rasa/core/channels/hangouts.py +2 -2
  143. rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-35222594.js} +1 -1
  144. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-a0efbfd3.js} +1 -1
  145. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-0584c0f2.js} +1 -1
  146. rasa/core/channels/inspector/dist/assets/channel-8e08bed9.js +1 -0
  147. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-39f40dbe.js} +1 -1
  148. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-1ad755f3.js} +1 -1
  149. rasa/core/channels/inspector/dist/assets/clone-78c82dea.js +1 -0
  150. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-b0f4f0fe.js} +1 -1
  151. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-9039bff9.js} +1 -1
  152. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-65c9b127.js} +1 -1
  153. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-4f08b38e.js} +1 -1
  154. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-e95c362a.js} +1 -1
  155. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b08f601.js +1 -0
  156. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-703c3015.js} +1 -1
  157. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-699328ea.js} +1 -1
  158. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-04cf4b05.js} +1 -1
  159. rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-ee94449e.js} +1 -1
  160. rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-940162b4.js} +1 -1
  161. rasa/core/channels/inspector/dist/assets/{index-4d4bdf3a.js → index-c941dcb3.js} +132 -131
  162. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-c79c2866.js} +1 -1
  163. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-84489d30.js} +1 -1
  164. rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-a9aa9858.js} +1 -1
  165. rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-eb73cf26.js} +1 -1
  166. rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-b3399f9a.js} +1 -1
  167. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-b095bf1a.js} +1 -1
  168. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-07644b66.js} +1 -1
  169. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-573a3f9c.js} +1 -1
  170. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-d457e1e1.js} +1 -1
  171. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-9d26e1a2.js} +1 -1
  172. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-3a9cde10.js} +1 -1
  173. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-4f3e8cec.js} +1 -1
  174. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-e617e5bf.js} +1 -1
  175. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-eab30d2f.js} +1 -1
  176. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-09994be2.js} +1 -1
  177. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-b7110364.js} +1 -1
  178. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-3ebc92ad.js} +1 -1
  179. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-7d13d2f2.js} +1 -1
  180. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-488385e1.js} +1 -1
  181. rasa/core/channels/inspector/dist/index.html +1 -1
  182. rasa/core/channels/inspector/src/App.tsx +5 -31
  183. rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
  184. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +9 -1
  185. rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +63 -35
  186. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +14 -0
  187. rasa/core/channels/inspector/src/types.ts +32 -7
  188. rasa/core/channels/studio_chat.py +23 -41
  189. rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
  190. rasa/core/channels/voice_stream/asr/azure.py +6 -3
  191. rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
  192. rasa/core/channels/voice_stream/audiocodes.py +3 -0
  193. rasa/core/channels/voice_stream/browser_audio.py +55 -3
  194. rasa/core/channels/voice_stream/genesys.py +2 -1
  195. rasa/core/channels/voice_stream/jambonz.py +9 -1
  196. rasa/core/channels/voice_stream/twilio_media_streams.py +16 -0
  197. rasa/core/channels/voice_stream/voice_channel.py +61 -0
  198. rasa/core/concurrent_lock_store.py +66 -16
  199. rasa/core/constants.py +7 -0
  200. rasa/core/iam_credentials_providers/__init__.py +0 -0
  201. rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +226 -0
  202. rasa/core/iam_credentials_providers/credentials_provider_protocol.py +90 -0
  203. rasa/core/lock_store.py +46 -10
  204. rasa/core/nlg/generator.py +1 -1
  205. rasa/core/policies/flows/flow_executor.py +1 -1
  206. rasa/core/processor.py +32 -0
  207. rasa/core/redis_connection_factory.py +469 -0
  208. rasa/core/tracker_stores/redis_tracker_store.py +32 -14
  209. rasa/core/tracker_stores/sql_tracker_store.py +57 -1
  210. rasa/engine/graph.py +5 -1
  211. rasa/engine/loader.py +12 -0
  212. rasa/engine/storage/local_model_storage.py +41 -4
  213. rasa/model_manager/socket_bridge.py +1 -2
  214. rasa/model_manager/warm_rasa_process.py +13 -3
  215. rasa/shared/core/constants.py +1 -0
  216. rasa/shared/core/events.py +2 -0
  217. rasa/shared/core/flows/flow.py +1 -1
  218. rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
  219. rasa/utils/pypred.py +38 -0
  220. rasa/validator.py +12 -8
  221. rasa/version.py +1 -1
  222. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/METADATA +19 -16
  223. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/RECORD +231 -266
  224. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
  225. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
  226. rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
  227. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
  228. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
  229. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
  230. rasa/cli/project_templates/finance/actions/database.py +0 -277
  231. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
  232. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
  233. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
  234. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
  235. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
  236. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
  237. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
  238. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
  239. rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
  240. rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
  241. rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
  242. rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
  243. rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
  244. rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
  245. rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
  246. rasa/cli/project_templates/finance/csvs/users.csv +0 -4
  247. rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
  248. rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
  249. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
  250. rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
  251. rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
  252. rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
  253. rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
  254. rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
  255. rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
  256. rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
  257. rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
  258. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
  259. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
  260. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
  261. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
  262. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
  263. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
  264. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
  265. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
  266. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
  267. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
  268. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
  269. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
  270. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
  271. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
  272. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
  273. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
  274. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
  275. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
  276. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
  277. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
  278. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
  279. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
  280. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
  281. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
  282. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
  283. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
  284. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
  285. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
  286. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
  287. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
  288. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
  289. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
  290. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
  291. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
  292. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
  293. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
  294. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
  295. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
  296. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
  297. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
  298. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
  299. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
  300. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
  301. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
  302. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
  303. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
  304. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
  305. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
  306. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
  307. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
  308. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
  309. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
  310. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
  311. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
  312. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
  313. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
  314. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
  315. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
  316. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
  317. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
  318. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
  319. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
  320. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
  321. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
  322. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
  323. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
  324. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
  325. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
  326. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
  327. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
  328. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
  329. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
  330. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
  331. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
  332. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
  333. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
  334. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
  335. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
  336. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
  337. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
  338. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
  339. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
  340. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
  341. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
  342. rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
  343. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
  344. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
  345. rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
  346. rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
  347. rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
  348. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
  349. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
  350. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
  351. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
  352. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
  353. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
  354. /rasa/cli/project_templates/telco/domain/billing/{domain_undertand_bill.yml → understand_bill.yml} +0 -0
  355. /rasa/cli/project_templates/telco/domain/network/{domain_reboot_router.yml → reboot_router.yml} +0 -0
  356. /rasa/cli/project_templates/telco/domain/network/{domain_reset_router.yml → reset_router.yml} +0 -0
  357. /rasa/cli/project_templates/telco/domain/network/{domain_run_speed_test.yml → run_speed_test.yml} +0 -0
  358. /rasa/cli/project_templates/telco/domain/network/{domain_solve_internet_issue.yml → solve_internet_issue.yml} +0 -0
  359. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/NOTICE +0 -0
  360. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/WHEEL +0 -0
  361. {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,30 @@
1
+ from typing import Any, Dict, List
2
+
3
+ from rasa_sdk import Action, Tracker
4
+ from rasa_sdk.events import SlotSet
5
+ from rasa_sdk.executor import CollectingDispatcher
6
+
7
+ from actions.db import Contact, add_contact, get_contacts
8
+
9
+
10
+ class AddContact(Action):
11
+ def name(self) -> str:
12
+ return "add_contact"
13
+
14
+ def run(
15
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
16
+ ) -> List[Dict[str, Any]]:
17
+ contacts = get_contacts(tracker.sender_id)
18
+ name = tracker.get_slot("add_contact_name")
19
+ handle = tracker.get_slot("add_contact_handle")
20
+
21
+ if name is None or handle is None:
22
+ return [SlotSet("return_value", "data_not_present")]
23
+
24
+ existing_handles = {c.handle for c in contacts}
25
+ if handle in existing_handles:
26
+ return [SlotSet("return_value", "already_exists")]
27
+
28
+ new_contact = Contact(name=name, handle=handle)
29
+ add_contact(tracker.sender_id, new_contact)
30
+ return [SlotSet("return_value", "success")]
@@ -0,0 +1,22 @@
1
+ from typing import Any, Dict, List
2
+
3
+ from rasa_sdk import Action, Tracker
4
+ from rasa_sdk.events import SlotSet
5
+ from rasa_sdk.executor import CollectingDispatcher
6
+
7
+ from actions.db import get_contacts
8
+
9
+
10
+ class ListContacts(Action):
11
+ def name(self) -> str:
12
+ return "list_contacts"
13
+
14
+ def run(
15
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
16
+ ) -> List[Dict[str, Any]]:
17
+ contacts = get_contacts(tracker.sender_id)
18
+ if len(contacts) > 0:
19
+ contacts_list = "".join([f"- {c.name} ({c.handle}) \n" for c in contacts])
20
+ return [SlotSet("contacts_list", contacts_list)]
21
+ else:
22
+ return [SlotSet("contacts_list", None)]
@@ -0,0 +1,35 @@
1
+ from typing import Any, Dict, List
2
+
3
+ from rasa_sdk import Action, Tracker
4
+ from rasa_sdk.events import SlotSet
5
+ from rasa_sdk.executor import CollectingDispatcher
6
+
7
+ from actions.db import get_contacts, write_contacts
8
+
9
+
10
+ class RemoveContact(Action):
11
+ def name(self) -> str:
12
+ return "remove_contact"
13
+
14
+ def run(
15
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
16
+ ) -> List[Dict[str, Any]]:
17
+ contacts = get_contacts(tracker.sender_id)
18
+ handle = tracker.get_slot("remove_contact_handle")
19
+
20
+ if handle is not None:
21
+ contact_indices_with_handle = [
22
+ i for i, c in enumerate(contacts) if c.handle == handle
23
+ ]
24
+ if len(contact_indices_with_handle) == 0:
25
+ return [SlotSet("return_value", "not_found")]
26
+ else:
27
+ removed_contact = contacts.pop(contact_indices_with_handle[0])
28
+ write_contacts(tracker.sender_id, contacts)
29
+ return [
30
+ SlotSet("return_value", "success"),
31
+ SlotSet("remove_contact_name", removed_contact.name),
32
+ ]
33
+
34
+ else:
35
+ return [SlotSet("return_value", "missing_handle")]
@@ -0,0 +1,117 @@
1
+ import os
2
+ import shutil
3
+ import tempfile
4
+ from typing import Any, List
5
+
6
+ from pydantic import BaseModel
7
+
8
+ from rasa.nlu.utils import write_json_to_file
9
+ from rasa.shared.utils.io import read_json_file
10
+
11
+ ORIGIN_DB_PATH = "db"
12
+ CONTACTS = "contacts.json"
13
+ TRANSACTIONS = "transactions.json"
14
+ MY_ACCOUNT = "my_account.json"
15
+ CARDS = "cards.json"
16
+
17
+
18
+ class MyAccount(BaseModel):
19
+ account: str
20
+ funds: int
21
+ daily_limit: int
22
+ monthly_limit: int
23
+
24
+
25
+ class Transaction(BaseModel):
26
+ datetime: str
27
+ recipient: str
28
+ sender: str
29
+ amount: str
30
+ description: str
31
+
32
+ def stringify(self) -> str:
33
+ from datetime import datetime
34
+
35
+ parsed_date = datetime.strptime(self.datetime, "%Y-%m-%dT%H:%M:%S.%f")
36
+ formatted_date = parsed_date.strftime("%Y-%m-%d %H:%M:%S")
37
+
38
+ return (
39
+ f"- {self.amount} from {self.sender} to "
40
+ f"{self.recipient}: {self.description} ({formatted_date})"
41
+ )
42
+
43
+
44
+ class Contact(BaseModel):
45
+ name: str
46
+ handle: str
47
+
48
+
49
+ class Card(BaseModel):
50
+ name: str
51
+ number: str
52
+ expiration_date: str
53
+ cvv: str
54
+ handle: str
55
+ status: str
56
+
57
+
58
+ def get_session_db_path(session_id: str) -> str:
59
+ tempdir = tempfile.gettempdir()
60
+ project_name = "rasa-calm-demo"
61
+ return os.path.join(tempdir, project_name, session_id)
62
+
63
+
64
+ def prepare_db_file(session_id: str, db: str) -> str:
65
+ session_db_path = get_session_db_path(session_id)
66
+ os.makedirs(session_db_path, exist_ok=True)
67
+ destination_file = os.path.join(session_db_path, db)
68
+ if not os.path.exists(destination_file):
69
+ origin_file = os.path.join(ORIGIN_DB_PATH, db)
70
+ shutil.copy(origin_file, destination_file)
71
+ return destination_file
72
+
73
+
74
+ def read_db(session_id: str, db: str) -> Any:
75
+ db_file = prepare_db_file(session_id, db)
76
+ return read_json_file(db_file)
77
+
78
+
79
+ def write_db(session_id: str, db: str, data: Any) -> None:
80
+ db_file = prepare_db_file(session_id, db)
81
+ write_json_to_file(db_file, data)
82
+
83
+
84
+ def get_contacts(session_id: str) -> List[Contact]:
85
+ return [Contact(**item) for item in read_db(session_id, CONTACTS)]
86
+
87
+
88
+ def get_cards(session_id: str) -> List[Card]:
89
+ return [Card(**item) for item in read_db(session_id, CARDS)]
90
+
91
+
92
+ def get_transactions(session_id: str) -> List[Transaction]:
93
+ return [Transaction(**item) for item in read_db(session_id, TRANSACTIONS)]
94
+
95
+
96
+ def get_account(session_id: str) -> MyAccount:
97
+ return MyAccount(**read_db(session_id, MY_ACCOUNT))
98
+
99
+
100
+ def write_account(session_id: str, account: MyAccount) -> None:
101
+ write_db(session_id, MY_ACCOUNT, account.dict())
102
+
103
+
104
+ def add_contact(session_id: str, contact: Contact) -> None:
105
+ contacts = get_contacts(session_id)
106
+ contacts.append(contact)
107
+ write_db(session_id, CONTACTS, [c.dict() for c in contacts])
108
+
109
+
110
+ def add_transaction(session_id: str, transaction: Transaction) -> None:
111
+ transactions = get_transactions(session_id)
112
+ transactions.append(transaction)
113
+ write_db(session_id, TRANSACTIONS, [t.dict() for t in transactions])
114
+
115
+
116
+ def write_contacts(session_id: str, contacts: List[Contact]) -> None:
117
+ write_db(session_id, CONTACTS, [c.dict() for c in contacts])
@@ -0,0 +1,49 @@
1
+ from typing import Any, Dict, List, Text
2
+
3
+ from openai import AsyncOpenAI
4
+ from rasa_sdk import Action, Tracker
5
+ from rasa_sdk.events import BotUttered
6
+ from rasa_sdk.executor import CollectingDispatcher
7
+ from rasa_sdk.types import DomainDict
8
+
9
+
10
+ class ActionHumanHandoff(Action):
11
+ def __init__(self) -> None:
12
+ super().__init__()
13
+ self.client = AsyncOpenAI()
14
+
15
+ def name(self) -> Text:
16
+ return "action_human_handoff"
17
+
18
+ async def run(
19
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
20
+ ) -> List[Dict[Text, Any]]:
21
+ # Collect conversation
22
+ convo = []
23
+ for event in tracker.events:
24
+ if event.get("event") == "user":
25
+ user_text = "{}".format(event.get("text"))
26
+ user_text2 = "user - " + user_text
27
+ convo.append(user_text2)
28
+ if event.get("event") == "bot":
29
+ bot_text = "{}".format(event.get("text"))
30
+ bot_text2 = "bot - " + bot_text
31
+ # print(bot_text)
32
+ convo.append(bot_text2)
33
+ prompt = (
34
+ f"The following is a conversation between a bot and a human user, "
35
+ f"please summarise so that a human agent can easily understand "
36
+ f"the important context. Conversation: {convo}"
37
+ )
38
+ response = await self.client.chat.completions.create(
39
+ model="gpt-4", # or "gpt-3.5-turbo"
40
+ messages=[{"role": "user", "content": prompt}],
41
+ )
42
+ summarised_conversation = response.choices[0].message.content or ""
43
+ return [
44
+ BotUttered(
45
+ f"I will transfer the following summary of our conversation "
46
+ f"to the Callback Manager:\n"
47
+ f"{summarised_conversation}"
48
+ )
49
+ ]
@@ -0,0 +1,27 @@
1
+ import re
2
+ from typing import Any, Dict, List
3
+
4
+ from rasa_sdk import Action, Tracker
5
+ from rasa_sdk.events import SlotSet
6
+ from rasa_sdk.executor import CollectingDispatcher
7
+
8
+ from actions.db import get_account
9
+
10
+
11
+ class CheckTransferFunds(Action):
12
+ def name(self) -> str:
13
+ return "check_transfer_funds"
14
+
15
+ def run(
16
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
17
+ ) -> List[Dict[str, Any]]:
18
+ account = get_account(tracker.sender_id)
19
+ amount_of_money = tracker.get_slot("amount_of_money")
20
+ if not amount_of_money:
21
+ has_sufficient_funds = False
22
+ else:
23
+ if isinstance(amount_of_money, str):
24
+ # Remove any non-numeric characters (except for the decimal point)
25
+ amount_of_money = float(re.sub(r"[^0-9.]", "", amount_of_money))
26
+ has_sufficient_funds = account.funds >= amount_of_money
27
+ return [SlotSet("has_sufficient_funds", has_sufficient_funds)]
@@ -0,0 +1,36 @@
1
+ from typing import Any, Dict, List, Text
2
+
3
+ from rasa_sdk import Action, Tracker
4
+ from rasa_sdk.events import SlotSet
5
+ from rasa_sdk.executor import CollectingDispatcher
6
+
7
+ from actions.db import get_account
8
+
9
+
10
+ class CheckTransferLimit(Action):
11
+ def name(self) -> Text:
12
+ return "check_transfer_limit"
13
+
14
+ def run(
15
+ self,
16
+ dispatcher: CollectingDispatcher,
17
+ tracker: Tracker,
18
+ domain: Dict[Text, Any],
19
+ ) -> List[Dict[Text, Any]]:
20
+ limit_type = tracker.get_slot("transfer_limit_type")
21
+
22
+ account = get_account(tracker.sender_id)
23
+ daily_limit = account.daily_limit
24
+ monthly_limit = account.monthly_limit
25
+
26
+ transfer_limit = None
27
+
28
+ if limit_type == "daily":
29
+ transfer_limit = daily_limit
30
+ elif limit_type == "monthly":
31
+ transfer_limit = monthly_limit
32
+
33
+ return [
34
+ SlotSet("transfer_limit", transfer_limit),
35
+ SlotSet("return_value", transfer_limit is not None),
36
+ ]
@@ -0,0 +1,20 @@
1
+ from typing import List
2
+
3
+ from rasa_sdk import Action, Tracker
4
+ from rasa_sdk.events import EventType, SlotSet
5
+ from rasa_sdk.executor import CollectingDispatcher
6
+ from rasa_sdk.types import DomainDict
7
+
8
+
9
+ class ExecutePayment(Action):
10
+ def name(self) -> str:
11
+ return "action_execute_recurrent_payment"
12
+
13
+ def run(
14
+ self,
15
+ dispatcher: CollectingDispatcher,
16
+ tracker: Tracker,
17
+ domain: DomainDict,
18
+ ) -> List[EventType]:
19
+ # Set-up payment logic and additional checks here
20
+ return [SlotSet("setup_recurrent_payment_successful", True)]
@@ -0,0 +1,45 @@
1
+ import re
2
+ from datetime import datetime
3
+ from typing import Any, Dict, List
4
+
5
+ from rasa_sdk import Action, Tracker
6
+ from rasa_sdk.events import SlotSet
7
+ from rasa_sdk.executor import CollectingDispatcher
8
+
9
+ from actions.db import Transaction, add_transaction, get_account, write_account
10
+
11
+ AMOUNT_OF_MONEY_REGEX = re.compile(r"\d*[.,]*\d+")
12
+
13
+
14
+ class ExecuteTransfer(Action):
15
+ def name(self) -> str:
16
+ return "execute_transfer"
17
+
18
+ def run(
19
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
20
+ ) -> List[Dict[str, Any]]:
21
+ account = get_account(tracker.sender_id)
22
+
23
+ recipient = tracker.get_slot("recipient_account")
24
+ amount_of_money = tracker.get_slot("amount_of_money")
25
+
26
+ if recipient is None or amount_of_money is None:
27
+ return [SlotSet("transfer_successful", False)]
28
+
29
+ # just as a play case
30
+ if recipient == "Jack":
31
+ return [SlotSet("transfer_successful", False)]
32
+
33
+ if isinstance(amount_of_money, str):
34
+ amount_of_money = float(re.sub(r"[^0-9.]", "", amount_of_money))
35
+ account.funds -= amount_of_money
36
+ new_transaction = Transaction(
37
+ datetime=datetime.now().isoformat(),
38
+ recipient=recipient or "unknown",
39
+ sender="self",
40
+ amount=str(amount_of_money),
41
+ description="",
42
+ )
43
+ add_transaction(tracker.sender_id, new_transaction)
44
+ write_account(tracker.sender_id, account)
45
+ return [SlotSet("transfer_successful", True)]
@@ -0,0 +1,32 @@
1
+ from datetime import datetime
2
+ from typing import Any, Dict, List
3
+
4
+ from rasa_sdk import Action, Tracker
5
+ from rasa_sdk.events import SlotSet
6
+ from rasa_sdk.executor import CollectingDispatcher
7
+
8
+ from actions.db import get_transactions
9
+
10
+
11
+ class ListTransactions(Action):
12
+ def name(self) -> str:
13
+ return "list_transactions"
14
+
15
+ def run(
16
+ self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[str, Any]
17
+ ) -> List[Dict[str, Any]]:
18
+ full_transaction_list = tracker.get_slot("full_transaction_list")
19
+
20
+ transactions = get_transactions(tracker.sender_id)
21
+
22
+ # sort by date
23
+ transactions.sort(
24
+ key=lambda x: datetime.strptime(x.datetime, "%Y-%m-%dT%H:%M:%S.%f"),
25
+ reverse=True,
26
+ )
27
+
28
+ if not full_transaction_list:
29
+ transactions = transactions[:5]
30
+
31
+ transactions_list = "\n".join([t.stringify() for t in transactions])
32
+ return [SlotSet("transactions_list", transactions_list)]
@@ -1,5 +1,11 @@
1
+ # Rasa Assistant Configuration
2
+ # This file controls your assistant's language, message processing pipeline, and conversation policies.
3
+ # For full documentation, see: https://rasa.com/docs/pro/build/configuring-assistant
1
4
  recipe: default.v1
2
5
  language: en
6
+
7
+ # The assistant project unique identifier
8
+ # This default value must be replaced with a unique assistant name within your deployment
3
9
  assistant_id: placeholder_default
4
10
 
5
11
  pipeline:
@@ -18,4 +24,6 @@ policies:
18
24
  source: "./docs"
19
25
  llm:
20
26
  model_group: openai-gpt-4o
27
+ embeddings:
28
+ model_group: openai-embeddings
21
29
  check_relevancy: true
@@ -1,14 +1,11 @@
1
1
  # This file contains the credentials for the voice & chat platforms
2
2
  # which your bot is using.
3
3
  # https://rasa.com/docs/rasa-pro/connectors/messaging-and-voice-channels/
4
+
4
5
  rest:
5
- socketio:
6
- bot_message_evt: bot_uttered
7
- session_persistence: true
8
- user_message_evt: user_uttered
6
+ # # you don't need to provide anything here - this channel doesn't
7
+ # # require any credentials
9
8
 
10
- rasa:
11
- url: "http://localhost:5002/api"
12
9
 
13
10
  #facebook:
14
11
  # verify: "<verify>"
@@ -30,3 +27,7 @@ rasa:
30
27
  # token: "<bot token>"
31
28
  # webhook_url: "<callback URL>"
32
29
 
30
+ # This entry is needed if you are using Rasa Enterprise. The entry represents credentials
31
+ # for the Rasa Enterprise "channel", i.e. Talk to your bot and Share with guest testers.
32
+ rasa:
33
+ url: "http://localhost:5002/api"
@@ -3,8 +3,7 @@ flows:
3
3
  description: |
4
4
  Guides the user through retrieving their account balance by requesting an
5
5
  account number or an account name and returning the balance on the selected account
6
- name: check an account balance
6
+ name: check account balance
7
7
  steps:
8
- - collect: account
9
- description: "The account number to check balance for"
10
- - action: action_check_balance
8
+ - action: check_balance
9
+ - action: utter_current_balance
@@ -0,0 +1,26 @@
1
+ flows:
2
+ download_statements:
3
+ name: download account statements
4
+ description: Allow users to download their monthly account statements in PDF or CSV format.
5
+ steps:
6
+ - collect: statement_month
7
+ description: "The specific month the user wants the account statement for."
8
+ utter: utter_ask_statement_month
9
+ - collect: statement_year
10
+ description: "The specific year of the account statement requested by the user."
11
+ utter: utter_ask_statement_year
12
+ - collect: statement_format
13
+ description: "The preferred file format for the statement: PDF or CSV."
14
+ - collect: confirmation
15
+ description: "Confirms whether the user wishes to proceed; accepts True or False, yes or no."
16
+ utter: utter_ask_statement_download_confirmation
17
+ ask_before_filling: true
18
+ next:
19
+ - if: not slots.confirmation
20
+ then:
21
+ - action: utter_statement_download_cancelled
22
+ next: END
23
+ - else: initiate_download
24
+ - id: initiate_download
25
+ action: utter_statement_download_complete
26
+ next: END
@@ -0,0 +1,25 @@
1
+ flows:
2
+ bill_pay_reminder:
3
+ name: set up bill payment reminder
4
+ description: Help users set up automatic reminders for recurring bill payments.
5
+ steps:
6
+ - collect: biller_name
7
+ description: The name of the company or person the bill is paid to.
8
+ - collect: bill_due_date
9
+ description: The date the bill is due.
10
+ - collect: reminder_frequency
11
+ description: How often the reminder should be sent (once, monthly, weekly).
12
+ - id: confirm_reminder
13
+ collect: confirmation
14
+ utter: utter_ask_bill_pay_reminder_confirmation
15
+ description: Asks the user to confirm setting the reminder.
16
+ ask_before_filling: true
17
+ next:
18
+ - if: not slots.confirmation
19
+ then:
20
+ - action: utter_bill_pay_reminder_cancelled
21
+ next: END
22
+ - else: setup_bill_pay_reminder
23
+ - id: setup_bill_pay_reminder
24
+ action: utter_bill_pay_reminder_complete
25
+ next: END
@@ -0,0 +1,35 @@
1
+ flows:
2
+ activate_card:
3
+ description: Activates user's card.
4
+ name: activate card
5
+ steps:
6
+ - action: utter_start_activate_card
7
+
8
+ - id: get_bank_card_number
9
+ collect: bank_card_number
10
+ description: The number of the card user wants to activate
11
+ ask_before_filling: true
12
+
13
+ - action: check_that_card_exists
14
+ next:
15
+ - if: not slots.return_value
16
+ then:
17
+ - action: utter_bank_card_not_found
18
+ next: get_bank_card_number
19
+ - else: activation_confirmation
20
+
21
+ - id: activation_confirmation
22
+ collect: confirmation
23
+ description: "Confirms the request for a card activation; accepts True or False, yes or no."
24
+ utter: utter_ask_activate_card_confirmation
25
+ ask_before_filling: true
26
+ next:
27
+ - if: not slots.confirmation
28
+ then:
29
+ - action: utter_activate_card_cancelled
30
+ next: END
31
+ - else: execute_activation
32
+
33
+ - id: execute_activation
34
+ action: utter_activate_card_successful
35
+ next: END