rasa-pro 3.13.1a19__py3-none-any.whl → 3.13.1a20__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 (275) hide show
  1. rasa/__main__.py +8 -0
  2. rasa/builder/auth.py +71 -0
  3. rasa/builder/config.py +16 -0
  4. rasa/builder/copilot/constants.py +15 -0
  5. rasa/builder/copilot/copilot.py +342 -0
  6. rasa/builder/copilot/copilot_response_handler.py +471 -0
  7. rasa/builder/copilot/exceptions.py +20 -0
  8. rasa/builder/copilot/models.py +344 -0
  9. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +495 -0
  10. rasa/builder/copilot/telemetry.py +195 -0
  11. rasa/builder/document_retrieval/__init__.py +0 -0
  12. rasa/builder/document_retrieval/constants.py +16 -0
  13. rasa/builder/{inkeep_document_retrieval.py → document_retrieval/inkeep_document_retrieval.py} +24 -30
  14. rasa/builder/document_retrieval/models.py +62 -0
  15. rasa/builder/download.py +140 -0
  16. rasa/builder/guardrails/__init__.py +1 -0
  17. rasa/builder/guardrails/constants.py +4 -0
  18. rasa/builder/guardrails/exceptions.py +4 -0
  19. rasa/builder/guardrails/lakera.py +188 -0
  20. rasa/builder/guardrails/models.py +199 -0
  21. rasa/builder/guardrails/utils.py +305 -0
  22. rasa/builder/job_manager.py +87 -0
  23. rasa/builder/jobs.py +232 -0
  24. rasa/builder/llm_service.py +59 -7
  25. rasa/builder/logging_utils.py +162 -4
  26. rasa/builder/main.py +29 -16
  27. rasa/builder/models.py +90 -233
  28. rasa/builder/project_generator.py +91 -7
  29. rasa/builder/scrape_rasa_docs.py +1 -1
  30. rasa/builder/service.py +632 -440
  31. rasa/builder/shared/tracker_context.py +212 -0
  32. rasa/builder/validation_service.py +4 -4
  33. rasa/cli/data.py +8 -3
  34. rasa/cli/project_templates/basic/actions/action_api.py +15 -0
  35. rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
  36. rasa/cli/project_templates/basic/config.yml +23 -0
  37. rasa/cli/project_templates/{plain → basic}/credentials.yml +8 -7
  38. rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
  39. rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
  40. rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
  41. rasa/cli/project_templates/basic/data/general/help.yml +6 -0
  42. rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
  43. rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
  44. rasa/cli/project_templates/{finance/data/patterns → basic/data/system}/pattern_completed.yml +2 -1
  45. rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
  46. rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
  47. rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
  48. rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
  49. rasa/cli/project_templates/basic/docs/template.txt +7 -0
  50. rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
  51. rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
  52. rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
  53. rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
  54. rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
  55. rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
  56. rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
  57. rasa/cli/project_templates/{finance/domain/default_actions.yml → basic/domain/general/utils.yml} +0 -3
  58. rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
  59. rasa/cli/project_templates/{plain → basic}/endpoints.yml +42 -27
  60. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  61. rasa/cli/project_templates/defaults.py +25 -3
  62. rasa/cli/project_templates/finance/actions/__init__.py +46 -0
  63. rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
  64. rasa/cli/project_templates/finance/actions/{action_ask_account.py → accounts/action_ask_account.py} +6 -9
  65. rasa/cli/project_templates/finance/actions/{action_check_balance.py → accounts/action_check_balance.py} +4 -4
  66. rasa/cli/project_templates/finance/actions/action_session_start.py +11 -6
  67. rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
  68. rasa/cli/project_templates/finance/actions/{action_ask_card.py → cards/action_ask_card.py} +4 -3
  69. rasa/cli/project_templates/finance/actions/{action_check_card_existence.py → cards/action_check_card_existence.py} +4 -3
  70. rasa/cli/project_templates/finance/actions/{action_update_card_status.py → cards/action_update_card_status.py} +18 -9
  71. rasa/cli/project_templates/finance/actions/database.py +1 -0
  72. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  73. rasa/cli/project_templates/finance/actions/{action_add_payee.py → transfers/action_add_payee.py} +8 -3
  74. rasa/cli/project_templates/finance/actions/{action_ask_account_from.py → transfers/action_ask_account_from.py} +5 -4
  75. rasa/cli/project_templates/finance/actions/{action_check_payee_existence.py → transfers/action_check_payee_existence.py} +3 -3
  76. rasa/cli/project_templates/finance/actions/{action_check_sufficient_funds.py → transfers/action_check_sufficient_funds.py} +3 -4
  77. rasa/cli/project_templates/finance/actions/{action_list_payees.py → transfers/action_list_payees.py} +4 -3
  78. rasa/cli/project_templates/finance/actions/{action_remove_payee.py → transfers/action_remove_payee.py} +4 -4
  79. rasa/cli/project_templates/finance/config.yml +8 -19
  80. rasa/cli/project_templates/finance/credentials.yml +6 -7
  81. rasa/cli/project_templates/finance/csvs/cards.csv +10 -10
  82. rasa/cli/project_templates/finance/csvs/payees.csv +10 -9
  83. rasa/cli/project_templates/finance/data/{flows → accounts}/check_balance.yml +2 -1
  84. rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
  85. rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
  86. rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
  87. rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
  88. rasa/cli/project_templates/finance/data/{flows/welcome.yml → general/help.yml} +2 -7
  89. rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
  90. rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
  91. rasa/cli/project_templates/finance/data/{patterns → system/patterns}/pattern_chitchat.yml +0 -2
  92. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
  93. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
  94. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
  95. rasa/cli/project_templates/finance/data/{patterns → system/patterns}/pattern_session_start.yml +0 -1
  96. rasa/cli/project_templates/finance/domain/{check_balance.yml → accounts/check_balance.yml} +2 -0
  97. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
  98. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
  99. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
  100. rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
  101. rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
  102. rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
  103. rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
  104. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
  105. rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
  106. rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
  107. rasa/cli/project_templates/finance/endpoints.yml +1 -0
  108. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +3 -3
  109. rasa/cli/project_templates/telco/actions/actions_billing.py +24 -17
  110. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +6 -1
  111. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +6 -1
  112. rasa/cli/project_templates/telco/actions/actions_session_start.py +6 -1
  113. rasa/cli/project_templates/tutorial/config.yml +2 -1
  114. rasa/cli/scaffold.py +27 -2
  115. rasa/cli/train.py +8 -0
  116. rasa/cli/utils.py +31 -15
  117. rasa/core/actions/action.py +28 -41
  118. rasa/core/actions/action_run_slot_rejections.py +1 -1
  119. rasa/core/channels/development_inspector.py +47 -14
  120. rasa/core/channels/inspector/dist/assets/{arc-371401b1.js → arc-1ddec37b.js} +1 -1
  121. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-3f126156.js → blockDiagram-38ab4fdb-18af387c.js} +1 -1
  122. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-12f22eb7.js → c4Diagram-3d4e48cf-250127a3.js} +1 -1
  123. rasa/core/channels/inspector/dist/assets/channel-59f6d54b.js +1 -0
  124. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-03b1d386.js → classDiagram-70f12bd4-c3388b34.js} +1 -1
  125. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-84f69d63.js → classDiagram-v2-f2320105-9c893a82.js} +1 -1
  126. rasa/core/channels/inspector/dist/assets/clone-26177ddb.js +1 -0
  127. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-ca47fd38.js → createText-2e5e7dd3-c111213b.js} +1 -1
  128. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-f837ca8a.js → edges-e0da2a9e-812a729d.js} +1 -1
  129. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-8717ac54.js → erDiagram-9861fffd-fd5051bc.js} +1 -1
  130. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-94f38b83.js → flowDb-956e92f1-3287ac02.js} +1 -1
  131. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-b616f9fb.js → flowDiagram-66a62f08-692fb0b2.js} +1 -1
  132. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-29c03f5a.js +1 -0
  133. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-f5d24bb8.js → flowchart-elk-definition-4a651766-008376f1.js} +1 -1
  134. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-b43ba8d9.js → ganttDiagram-c361ad54-df330a69.js} +1 -1
  135. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-c3aafaa5.js → gitGraphDiagram-72cf32ee-e03676fb.js} +1 -1
  136. rasa/core/channels/inspector/dist/assets/{graph-0d0a2c10.js → graph-46fad2ba.js} +1 -1
  137. rasa/core/channels/inspector/dist/assets/{index-3862675e-58ea0305.js → index-3862675e-a484ac55.js} +1 -1
  138. rasa/core/channels/inspector/dist/assets/{index-cce6f8a1.js → index-a003633f.js} +179 -179
  139. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-b8f60461.js → infoDiagram-f8f76790-3f9e6ec2.js} +1 -1
  140. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-95be5545.js → journeyDiagram-49397b02-79f72383.js} +1 -1
  141. rasa/core/channels/inspector/dist/assets/{layout-da885b9b.js → layout-aad098e5.js} +1 -1
  142. rasa/core/channels/inspector/dist/assets/{line-f1c817d3.js → line-219ab7ae.js} +1 -1
  143. rasa/core/channels/inspector/dist/assets/{linear-d42801e6.js → linear-2cddbe62.js} +1 -1
  144. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-a38923a6.js → mindmap-definition-fc14e90a-1d41ed99.js} +1 -1
  145. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-ca6e71e9.js → pieDiagram-8a3498a8-cc496ee8.js} +1 -1
  146. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-b290dae9.js → quadrantDiagram-120e2f19-84d32884.js} +1 -1
  147. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-03f02ceb.js → requirementDiagram-deff3bca-c0deb984.js} +1 -1
  148. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-c49eee40.js → sankeyDiagram-04a897e0-b9d7fd62.js} +1 -1
  149. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-b2cd6a3d.js → sequenceDiagram-704730f1-7d517565.js} +1 -1
  150. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-e53a2028.js → stateDiagram-587899a1-98ef9b27.js} +1 -1
  151. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-e1982a03.js → stateDiagram-v2-d93cdb3a-cee70748.js} +1 -1
  152. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-d0226ca5.js → styles-6aaf32cf-3f9d1c96.js} +1 -1
  153. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-0e21dc00.js → styles-9a916d00-67471923.js} +1 -1
  154. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-9588494e.js → styles-c10674c1-bd093fb7.js} +1 -1
  155. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-be478d4f.js → svgDrawCommon-08f97a94-675794e8.js} +1 -1
  156. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-74631749.js → timeline-definition-85554ec2-0ac67617.js} +1 -1
  157. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-a043552f.js → xychartDiagram-e933f94c-c018dc37.js} +1 -1
  158. rasa/core/channels/inspector/dist/index.html +2 -2
  159. rasa/core/channels/inspector/index.html +1 -1
  160. rasa/core/channels/inspector/package.json +4 -3
  161. rasa/core/channels/inspector/src/App.tsx +53 -7
  162. rasa/core/channels/inspector/src/components/Chat.tsx +3 -2
  163. rasa/core/channels/inspector/src/components/DiagramFlow.tsx +1 -1
  164. rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +268 -0
  165. rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +6 -2
  166. rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +8 -3
  167. rasa/core/channels/inspector/src/types.ts +8 -0
  168. rasa/core/channels/inspector/yarn.lock +12 -12
  169. rasa/core/channels/studio_chat.py +119 -34
  170. rasa/core/channels/voice_ready/twilio_voice.py +1 -1
  171. rasa/core/channels/voice_stream/asr/asr_engine.py +5 -1
  172. rasa/core/channels/voice_stream/asr/deepgram.py +5 -0
  173. rasa/core/channels/voice_stream/audiocodes.py +16 -8
  174. rasa/core/channels/voice_stream/browser_audio.py +39 -4
  175. rasa/core/channels/voice_stream/call_state.py +13 -2
  176. rasa/core/channels/voice_stream/genesys.py +16 -13
  177. rasa/core/channels/voice_stream/jambonz.py +14 -12
  178. rasa/core/channels/voice_stream/twilio_media_streams.py +14 -13
  179. rasa/core/channels/voice_stream/util.py +11 -1
  180. rasa/core/channels/voice_stream/voice_channel.py +108 -29
  181. rasa/core/nlg/callback.py +1 -1
  182. rasa/core/nlg/contextual_response_rephraser.py +19 -9
  183. rasa/core/nlg/generator.py +21 -5
  184. rasa/core/nlg/response.py +43 -6
  185. rasa/core/nlg/translate.py +8 -0
  186. rasa/core/policies/enterprise_search_policy.py +16 -21
  187. rasa/dialogue_understanding/commands/correct_slots_command.py +38 -10
  188. rasa/dialogue_understanding/generator/command_generator.py +5 -5
  189. rasa/dialogue_understanding/generator/command_parser.py +9 -13
  190. rasa/dialogue_understanding/processor/command_processor.py +149 -55
  191. rasa/dialogue_understanding/stack/utils.py +13 -3
  192. rasa/dialogue_understanding_test/du_test_schema.yml +3 -3
  193. rasa/dialogue_understanding_test/validation.py +9 -10
  194. rasa/e2e_test/e2e_config.py +18 -11
  195. rasa/e2e_test/e2e_test_schema.yml +3 -3
  196. rasa/e2e_test/utils/validation.py +17 -19
  197. rasa/engine/validation.py +86 -91
  198. rasa/exceptions.py +26 -1
  199. rasa/model_manager/model_api.py +2 -2
  200. rasa/model_manager/socket_bridge.py +8 -2
  201. rasa/shared/providers/_configs/default_litellm_client_config.py +3 -7
  202. rasa/shared/utils/cli.py +2 -0
  203. rasa/shared/utils/common.py +2 -1
  204. rasa/shared/utils/health_check/health_check.py +10 -14
  205. rasa/studio/upload.py +6 -2
  206. rasa/studio/utils.py +33 -22
  207. rasa/telemetry.py +95 -22
  208. rasa/utils/licensing.py +21 -10
  209. rasa/utils/log_utils.py +1 -1
  210. rasa/utils/tensorflow/transformer.py +3 -3
  211. rasa/validator.py +7 -5
  212. rasa/version.py +1 -1
  213. {rasa_pro-3.13.1a19.dist-info → rasa_pro-3.13.1a20.dist-info}/METADATA +7 -7
  214. {rasa_pro-3.13.1a19.dist-info → rasa_pro-3.13.1a20.dist-info}/RECORD +242 -205
  215. rasa/builder/constants.py +0 -4
  216. rasa/builder/copilot-llm-structured-output-response-schema.json +0 -69
  217. rasa/builder/copilot.py +0 -233
  218. rasa/builder/copilot_system_prompt.jinja2 +0 -245
  219. rasa/builder/create_openai_vector_store.py +0 -228
  220. rasa/builder/llm_context.py +0 -81
  221. rasa/cli/project_templates/finance/data/nlu.yml +0 -29
  222. rasa/cli/project_templates/finance/data/patterns/pattern_search.yml +0 -5
  223. rasa/cli/project_templates/finance/domain/default_flows.yml +0 -33
  224. rasa/cli/project_templates/finance/prompts/command-generator.jinja2 +0 -57
  225. rasa/cli/project_templates/finance/tests/conversation_repair/cancellations.yml +0 -12
  226. rasa/cli/project_templates/finance/tests/conversation_repair/cannot_handle.yml +0 -7
  227. rasa/cli/project_templates/finance/tests/conversation_repair/chitchat.yml +0 -7
  228. rasa/cli/project_templates/finance/tests/conversation_repair/clarification.yml +0 -9
  229. rasa/cli/project_templates/finance/tests/conversation_repair/completion.yml +0 -18
  230. rasa/cli/project_templates/finance/tests/conversation_repair/corrections.yml +0 -17
  231. rasa/cli/project_templates/finance/tests/conversation_repair/digressions.yml +0 -32
  232. rasa/cli/project_templates/finance/tests/conversation_repair/human_handoff.yml +0 -21
  233. rasa/cli/project_templates/finance/tests/conversation_repair/skipping_collect_steps.yml +0 -16
  234. rasa/cli/project_templates/finance/tests/demo_scripts/main.yml +0 -16
  235. rasa/cli/project_templates/finance/tests/happy_paths/balance_verification.yml +0 -15
  236. rasa/cli/project_templates/finance/tests/happy_paths/banking_questions.yml +0 -12
  237. rasa/cli/project_templates/finance/tests/happy_paths/card_blocking.yml +0 -52
  238. rasa/cli/project_templates/finance/tests/happy_paths/money_transfer.yml +0 -136
  239. rasa/cli/project_templates/finance/tests/happy_paths/payee_management.yml +0 -27
  240. rasa/cli/project_templates/finance/tests/happy_paths/user_greeted.yml +0 -5
  241. rasa/cli/project_templates/plain/config.yml +0 -17
  242. rasa/cli/project_templates/plain/data/patterns/pattern_session_start.yml +0 -7
  243. rasa/cli/project_templates/plain/domain.yml +0 -5
  244. rasa/core/channels/inspector/dist/assets/channel-f1efda17.js +0 -1
  245. rasa/core/channels/inspector/dist/assets/clone-fdf164e2.js +0 -1
  246. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-7d7a1629.js +0 -1
  247. rasa/shared/importers/static.py +0 -63
  248. /rasa/{cli/project_templates/plain/actions → builder/copilot}/__init__.py +0 -0
  249. /rasa/builder/{inkeep-rag-response-schema.json → document_retrieval/inkeep-rag-response-schema.json} +0 -0
  250. /rasa/cli/project_templates/finance/actions/{action_process_immediate_payment.py → transfers/action_process_immediate_payment.py} +0 -0
  251. /rasa/cli/project_templates/finance/actions/{action_schedule_payment.py → transfers/action_schedule_payment.py} +0 -0
  252. /rasa/cli/project_templates/finance/actions/{action_validate_payment_date.py → transfers/action_validate_payment_date.py} +0 -0
  253. /rasa/cli/project_templates/finance/data/{flows → cards}/block_card.yml +0 -0
  254. /rasa/cli/project_templates/finance/data/{flows → cards}/select_card.yml +0 -0
  255. /rasa/cli/project_templates/finance/data/{source → system/source}/accounts.json +0 -0
  256. /rasa/cli/project_templates/finance/data/{source → system/source}/advisors.json +0 -0
  257. /rasa/cli/project_templates/finance/data/{source → system/source}/appointments.json +0 -0
  258. /rasa/cli/project_templates/finance/data/{source → system/source}/branches.json +0 -0
  259. /rasa/cli/project_templates/finance/data/{source → system/source}/cards.json +0 -0
  260. /rasa/cli/project_templates/finance/data/{source → system/source}/payees.json +0 -0
  261. /rasa/cli/project_templates/finance/data/{source → system/source}/transactions.json +0 -0
  262. /rasa/cli/project_templates/finance/data/{source → system/source}/users.json +0 -0
  263. /rasa/cli/project_templates/finance/data/{flows → transfers}/add_payee.yml +0 -0
  264. /rasa/cli/project_templates/finance/data/{flows → transfers}/list_payees.yml +0 -0
  265. /rasa/cli/project_templates/finance/data/{flows → transfers}/remove_payee.yml +0 -0
  266. /rasa/cli/project_templates/finance/data/{flows → transfers}/transfer_money.yml +0 -0
  267. /rasa/cli/project_templates/finance/domain/{block_card.yml → cards/block_card.yml} +0 -0
  268. /rasa/cli/project_templates/finance/domain/{select_card.yml → cards/select_card.yml} +0 -0
  269. /rasa/cli/project_templates/finance/domain/{add_payee.yml → transfers/add_payee.yml} +0 -0
  270. /rasa/cli/project_templates/finance/domain/{list_payees.yml → transfers/list_payees.yml} +0 -0
  271. /rasa/cli/project_templates/finance/domain/{remove_payee.yml → transfers/remove_payee.yml} +0 -0
  272. /rasa/cli/project_templates/finance/domain/{transfer_money.yml → transfers/transfer_money.yml} +0 -0
  273. {rasa_pro-3.13.1a19.dist-info → rasa_pro-3.13.1a20.dist-info}/NOTICE +0 -0
  274. {rasa_pro-3.13.1a19.dist-info → rasa_pro-3.13.1a20.dist-info}/WHEEL +0 -0
  275. {rasa_pro-3.13.1a19.dist-info → rasa_pro-3.13.1a20.dist-info}/entry_points.txt +0 -0
@@ -1,228 +0,0 @@
1
- #!/usr/bin/env python3
2
- """Script to create and populate OpenAI vector store with Rasa documentation."""
3
-
4
- import json
5
- import sys
6
- from pathlib import Path
7
- from typing import Dict, List
8
-
9
- import openai
10
- import structlog
11
-
12
- structlogger = structlog.get_logger()
13
-
14
- # Configuration
15
- DOCS_DIR = "rasa_docs_md"
16
- FILE_IDS_FILE = "file_ids.json"
17
- MARKDOWN_TO_URL_FILE = "markdown_to_url.json"
18
- ASSISTANT_NAME = "Rasa Docs Assistant"
19
-
20
-
21
- def load_url_mapping() -> Dict[str, str]:
22
- """Load the markdown filename to URL mapping."""
23
- markdown_to_url_file = Path(MARKDOWN_TO_URL_FILE)
24
-
25
- if not markdown_to_url_file.exists():
26
- raise FileNotFoundError(
27
- f"URL mapping file {markdown_to_url_file} not found. "
28
- "Please run scrape_rasa_docs.py first."
29
- )
30
-
31
- with open(markdown_to_url_file, "r") as f:
32
- return json.load(f)
33
-
34
-
35
- def get_markdown_files(docs_dir: str = DOCS_DIR) -> List[Path]:
36
- """Get all markdown files in the docs directory."""
37
- docs_path = Path(docs_dir)
38
-
39
- if not docs_path.exists():
40
- raise FileNotFoundError(f"Documentation directory {docs_dir} not found")
41
-
42
- md_files = list(docs_path.glob("*.md"))
43
- if not md_files:
44
- raise FileNotFoundError(f"No markdown files found in {docs_dir}")
45
-
46
- structlogger.info("vector_store.found_files", count=len(md_files))
47
- return md_files
48
-
49
-
50
- def load_or_upload_files(client: openai.OpenAI) -> List[Dict[str, str]]:
51
- """Load existing file IDs or upload files to OpenAI."""
52
- file_ids_file = Path(FILE_IDS_FILE)
53
-
54
- if file_ids_file.exists():
55
- structlogger.info("vector_store.loading_existing_files")
56
- with open(file_ids_file, "r") as f:
57
- return json.load(f)
58
-
59
- return upload_files(client)
60
-
61
-
62
- def upload_files(client: openai.OpenAI) -> List[Dict[str, str]]:
63
- """Upload markdown files to OpenAI."""
64
- structlogger.info("vector_store.uploading_files")
65
-
66
- md_files = get_markdown_files()
67
- uploaded_files = []
68
-
69
- for md_file in md_files:
70
- try:
71
- with open(md_file, "rb") as f:
72
- uploaded = client.files.create(file=f, purpose="assistants")
73
-
74
- file_info = {"file_id": uploaded.id, "file_name": md_file.name}
75
- uploaded_files.append(file_info)
76
-
77
- structlogger.info(
78
- "vector_store.file_uploaded",
79
- file_name=md_file.name,
80
- file_id=uploaded.id,
81
- )
82
-
83
- except Exception as e:
84
- structlogger.error(
85
- "vector_store.upload_failed", file_name=md_file.name, error=str(e)
86
- )
87
- raise
88
-
89
- # Save file IDs for future use
90
- with open(FILE_IDS_FILE, "w") as f:
91
- json.dump(uploaded_files, f, indent=2)
92
-
93
- structlogger.info("vector_store.upload_complete", count=len(uploaded_files))
94
- return uploaded_files
95
-
96
-
97
- def prepare_files_with_metadata(files: List[Dict[str, str]]) -> List[Dict[str, str]]:
98
- """Prepare files with URL metadata."""
99
- url_mapping = load_url_mapping()
100
-
101
- files_with_metadata = []
102
- for file_info in files:
103
- file_name = file_info["file_name"]
104
- url = url_mapping.get(file_name, "")
105
-
106
- if not url:
107
- structlogger.warning("vector_store.missing_url", file_name=file_name)
108
-
109
- files_with_metadata.append(
110
- {"file_id": file_info["file_id"], "file_name": file_name, "url": url}
111
- )
112
-
113
- return files_with_metadata
114
-
115
-
116
- def create_vector_store(
117
- client: openai.OpenAI, files_with_metadata: List[Dict[str, str]]
118
- ) -> str:
119
- """Create vector store and add files."""
120
- try:
121
- # Create vector store
122
- structlogger.info("vector_store.creating")
123
- vector_store = client.vector_stores.create(name=ASSISTANT_NAME)
124
-
125
- # Add files to vector store
126
- for file_meta in files_with_metadata:
127
- try:
128
- client.vector_stores.files.create(
129
- vector_store_id=vector_store.id,
130
- file_id=file_meta["file_id"],
131
- attributes={"url": file_meta["url"]},
132
- )
133
-
134
- structlogger.info(
135
- "vector_store.file_added",
136
- file_name=file_meta["file_name"],
137
- url=file_meta["url"],
138
- )
139
-
140
- except Exception as e:
141
- structlogger.error(
142
- "vector_store.file_add_failed",
143
- file_name=file_meta["file_name"],
144
- error=str(e),
145
- )
146
- # Continue with other files
147
-
148
- structlogger.info(
149
- "vector_store.created",
150
- vector_store_id=vector_store.id,
151
- files_count=len(files_with_metadata),
152
- )
153
-
154
- return vector_store.id
155
-
156
- except Exception as e:
157
- structlogger.error("vector_store.creation_failed", error=str(e))
158
- raise
159
-
160
-
161
- def run_vector_store_creation() -> str:
162
- """Run the complete vector store creation process."""
163
- client = openai.OpenAI()
164
-
165
- try:
166
- # Load or upload files
167
- files = load_or_upload_files(client)
168
-
169
- # Prepare files with metadata
170
- files_with_metadata = prepare_files_with_metadata(files)
171
-
172
- # Create vector store
173
- vector_store_id = create_vector_store(client, files_with_metadata)
174
-
175
- print("\n🎉 Vector store created successfully!")
176
- print(f"Vector store ID: {vector_store_id}")
177
- print(f"Files processed: {len(files_with_metadata)}")
178
-
179
- return vector_store_id
180
-
181
- except Exception as e:
182
- structlogger.error("vector_store.process_failed", error=str(e))
183
- print(f"\n❌ Vector store creation failed: {e}")
184
- raise
185
-
186
-
187
- def setup_logging():
188
- """Setup basic logging."""
189
- import logging.config
190
-
191
- logging_config = {
192
- "version": 1,
193
- "disable_existing_loggers": False,
194
- "formatters": {
195
- "standard": {"format": "%(asctime)s [%(levelname)s] %(name)s: %(message)s"},
196
- },
197
- "handlers": {
198
- "default": {
199
- "level": "INFO",
200
- "formatter": "standard",
201
- "class": "logging.StreamHandler",
202
- },
203
- },
204
- "loggers": {"": {"handlers": ["default"], "level": "INFO", "propagate": False}},
205
- }
206
-
207
- logging.config.dictConfig(logging_config)
208
-
209
-
210
- def main():
211
- """Main entry point for the script."""
212
- setup_logging()
213
-
214
- try:
215
- run_vector_store_creation()
216
- return 0
217
-
218
- except KeyboardInterrupt:
219
- print("\n⏹️ Process interrupted by user")
220
- return 1
221
-
222
- except Exception as e:
223
- print(f"\n💥 Unexpected error: {e}")
224
- return 1
225
-
226
-
227
- if __name__ == "__main__":
228
- sys.exit(main())
@@ -1,81 +0,0 @@
1
- import json
2
- from typing import Optional
3
-
4
- from rasa.shared.core.constants import DEFAULT_SLOT_NAMES
5
- from rasa.shared.core.events import (
6
- ActionExecuted,
7
- BotUttered,
8
- FlowCompleted,
9
- FlowStarted,
10
- SlotSet,
11
- UserUttered,
12
- )
13
- from rasa.shared.core.trackers import DialogueStateTracker
14
-
15
-
16
- def tracker_as_llm_context(tracker: Optional[DialogueStateTracker]) -> str:
17
- """Convert a tracker to a string that can be used as context for the LLM."""
18
- if not tracker or not tracker.events:
19
- return "No conversation history available."
20
-
21
- context_parts = []
22
- current_turn = []
23
-
24
- for event in tracker.events:
25
- if isinstance(event, UserUttered):
26
- if current_turn:
27
- context_parts.append(" | ".join(current_turn))
28
- current_turn = []
29
- current_turn.append(f"User: {event.text}")
30
- if event.intent:
31
- current_turn.append(f"Intent: {event.intent.get('name')}")
32
- if event.entities:
33
- current_turn.append(
34
- f"Entities: {[e.get('entity') for e in event.entities]}"
35
- )
36
- if event.commands:
37
- current_turn.append(
38
- f"Commands: {[cmd.get('name') for cmd in event.commands]}"
39
- )
40
-
41
- elif isinstance(event, BotUttered):
42
- if event.text:
43
- current_turn.append(f"Bot: {event.text}")
44
-
45
- elif isinstance(event, ActionExecuted):
46
- current_turn.append(f"Action: {event.action_name}")
47
- if event.confidence:
48
- current_turn.append(f"Confidence: {event.confidence:.2f}")
49
-
50
- elif isinstance(event, SlotSet) and event.key not in DEFAULT_SLOT_NAMES:
51
- current_turn.append(f"Slot Set: {event.key}={event.value}")
52
-
53
- elif isinstance(event, FlowStarted):
54
- current_turn.append(f"# Flow Started: {event.flow_id}")
55
-
56
- elif isinstance(event, FlowCompleted):
57
- current_turn.append(f"# Flow Completed: {event.flow_id}")
58
-
59
- if current_turn:
60
- context_parts.append(" | ".join(current_turn))
61
-
62
- # Add final state information
63
- context_parts.append("\nCurrent State:")
64
- context_parts.append(f"Latest Message: {tracker.latest_message.text or '-'}")
65
-
66
- # Add active flows from stack
67
- if tracker.active_flow:
68
- context_parts.append(f"Active Flow: {tracker.active_flow}")
69
- if tracker.stack:
70
- context_parts.append(f"Flow Stack: {json.dumps(tracker.stack.as_dict())}")
71
-
72
- # Add slot values that are not None
73
- non_empty_slots = {
74
- k: str(v.value)
75
- for k, v in tracker.slots.items()
76
- if v is not None and k not in DEFAULT_SLOT_NAMES
77
- }
78
- if non_empty_slots:
79
- context_parts.append(f"Slots: {json.dumps(non_empty_slots)}")
80
-
81
- return "\n".join(context_parts)
@@ -1,29 +0,0 @@
1
- version: "3.1"
2
-
3
- nlu:
4
- - intent: greet
5
- examples: |
6
- - Hello!
7
- - Hi there
8
- - Good morning
9
- - Good afternoon
10
- - Good evening
11
- - Hey!
12
- - Hi
13
- - Greetings
14
- - How are you?
15
- - What's up?
16
-
17
- - intent: help
18
- examples: |
19
- - Who are you?
20
- - What can you do?
21
- - How can you assist me?
22
- - Please list your skills.
23
- - What services do you provide?
24
- - Can you explain your capabilities?
25
- - What do you specialise in?
26
- - What kind of support can you offer?
27
- - Can you tell me about your expertise?
28
- - How do you help users?
29
- - What tasks are you capable of doing?
@@ -1,5 +0,0 @@
1
- flows:
2
- pattern_search:
3
- description: Handle knowledge-based requests using enterprise search
4
- steps:
5
- - action: action_trigger_search
@@ -1,33 +0,0 @@
1
- version: "3.1"
2
-
3
- intents:
4
- - welcome
5
- - help
6
-
7
- responses:
8
- utter_greeting:
9
- - text: "Hey! I'm Rasano, your helpful banking assistant."
10
- metadata:
11
- rephrase: True
12
- utter_help:
13
- - text: "I am your Banking assistant. I can help you with transferring money, managing authorised payees, checking an account balance, blocking a card, and answering your general finance enquiries"
14
- metadata:
15
- rephrase: True
16
- utter_show_greeting_accordion:
17
- - custom:
18
- type: "accordion"
19
- elements:
20
- - title: "Money Transfer"
21
- text: 'I can send money to friends, family, or businesses. You can say, “send $100” or “transfer from my savings account”.'
22
- - title: "Account Balance Verification"
23
- text: 'I can check your account balance. For example, “what is my checking balance?” or “how much money do I have?”.'
24
- - title: "Payee Management"
25
- text: 'I can help you manage your payees, including adding new payees or listing your existing ones. For instance, “add a new payee” or “show me my payees.”'
26
- - title: "Card Blocking"
27
- text: 'I can permanently or temporarily block your card in case it is lost, stolen, or if you are traveling. Tell me, “block my card” or “temporarily disable my card”.'
28
- - title: "Banking Questions"
29
- text: 'I can also answer your general finance questions, such as how to dispute a charge or how to increase your credit limit.'
30
- utter_chitchat:
31
- - text: "Hello, how can I help you today?"
32
- metadata:
33
- rephrase: True
@@ -1,57 +0,0 @@
1
- ## Task Description
2
- Your task is to analyze the current conversation context and generate a list of actions to start new business processes that we call flows, to extract slots, or respond to small talk and knowledge requests.
3
-
4
- ---
5
-
6
- ## Available Flows and Slots
7
- Use the following structured data:
8
- ```json
9
- {"flows":[{% for flow in available_flows %}{"name":"{{ flow.name }}","description":"{{ flow.description }}"{% if flow.slots %},"slots":[{% for slot in flow.slots %}{"name":"{{ slot.name }}"{% if slot.description %},"description":"{{ slot.description }}"{% endif %}{% if slot.allowed_values %},"allowed_values":{{ slot.allowed_values }}{% endif %}}{% if not loop.last %},{% endif %}{% endfor %}]{% endif %}}{% if not loop.last %},{% endif %}{% endfor %}]}
10
- ```
11
-
12
- ---
13
-
14
- ## Available Actions:
15
- * `start flow flow_name`: Starting a flow. For example, `start flow transfer_money` or `start flow list_contacts`.
16
- * `set slot slot_name slot_value`: Slot setting. For example, `set slot transfer_money_recipient Freddy`. Can be used to correct and change previously set values.
17
- * `cancel flow`: Cancelling the current flow.
18
- * `disambiguate flows flow_name1 flow_name2 ... flow_name_n`: Disambiguate which flow should be started when user input is ambiguous by listing the potential flows as options. For example, `disambiguate flows list_contacts add_contact remove_contact ...` if the user just wrote "contacts".
19
- * `provide info`: Responding to the user's questions by supplying relevant information, such as answering FAQs or explaining services.
20
- * `offtopic reply`: Responding to casual or social user messages that are unrelated to any flows, engaging in friendly conversation and addressing off-topic remarks.
21
- * `hand over`: Handing over to a human, in case the user seems frustrated or explicitly asks to speak to one.
22
-
23
- ---
24
-
25
- ## General Tips
26
- * Do not fill slots with abstract values or placeholders.
27
- * For categorical slots try to match the user message with allowed slot values. Use "other" if you cannot match it.
28
- * Set the boolean slots based on the user response. Map positive responses to `True`, and negative to `False`.
29
- * Extract text slot values exactly as provided by the user. Avoid assumptions, format changes, or partial extractions.
30
- * Only use information provided by the user.
31
- * Use clarification in ambiguous cases.
32
- * Multiple flows can be started. If a user wants to digress into a second flow, you do not need to cancel the current flow.
33
- * Do not cancel the flow unless the user explicitly requests it.
34
- * Strictly adhere to the provided action format.
35
- * Focus on the last message and take it one step at a time.
36
- * Use the previous conversation steps only to aid understanding.
37
-
38
- ---
39
-
40
- ## Current State
41
- {% if current_flow != None %}Use the following structured data:
42
- ```json
43
- {"active_flow":"{{ current_flow }}","current_step":{"requested_slot":"{{ current_slot }}","requested_slot_description":"{{ current_slot_description }}"},"slots":[{% for slot in flow_slots %}{"name":"{{ slot.name }}","value":"{{ slot.value }}","type":"{{ slot.type }}"{% if slot.description %},"description":"{{ slot.description }}"{% endif %}{% if slot.allowed_values %},"allowed_values":"{{ slot.allowed_values }}"{% endif %}}{% if not loop.last %},{% endif %}{% endfor %}]}
44
- ```{% else %}
45
- You are currently not inside any flow.{% endif %}
46
-
47
- ---
48
-
49
- ## Conversation History
50
- {{ current_conversation }}
51
-
52
- ---
53
-
54
- ## Task
55
- Create an action list with one action per line in response to the user's last message: """{{ user_message }}""".
56
-
57
- Your action list:
@@ -1,12 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_simple_cancellation
3
- steps:
4
- - user: "hello"
5
- - utter: utter_chitchat
6
- - user: "who are my payees"
7
- - bot: "You are authorised to transfer money to: Amy, Fitness Gym and William"
8
- - user: "I want to transfer 55 to Amy"
9
- - utter: utter_transfer_money_understand
10
- - bot: "Which account would you like to transfer money from?"
11
- - user: "sorry, I want to cancel that"
12
- - utter: utter_flow_cancelled_rasa
@@ -1,7 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_cannot_handle
3
- steps:
4
- - user: "hello"
5
- - utter: utter_chitchat
6
- - user: "I want to apply for a mortgage"
7
- - utter: utter_ask_rephrase
@@ -1,7 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_chitchat
3
- steps:
4
- - user: "hello,"
5
- - utter: utter_chitchat
6
- - user: "How can we solve world hunger?"
7
- - bot: "Based on the provided documents and the context of the recent conversation, the question about solving world hunger is not directly addressed. If you have any specific questions related to the documents or conversation context, feel free to ask for more information."
@@ -1,9 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_clarification
3
- steps:
4
- - user: "hello"
5
- - utter: utter_chitchat
6
- - user: "payee"
7
- - utter: utter_clarification_options_rasa
8
- - user: "view a list"
9
- - bot: "You are authorised to transfer money to: Robert, James and Food Market"
@@ -1,18 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_completion
3
- steps:
4
- - user: "hello"
5
- - utter: utter_chitchat
6
- - user: "Who are my payees"
7
- - bot: "You are authorised to transfer money to: Amy, Fitness Gym and William"
8
- - user: "I want to transfer money to William"
9
- - utter: utter_transfer_money_understand
10
- - bot: "Which account would you like to transfer money from?"
11
- - user: "78901234"
12
- - utter: utter_ask_amount
13
- - user: "120"
14
- - utter: utter_ask_timing
15
- - user: "/SetSlots(timing=now)"
16
- - utter: utter_ask_confirm_immediate_payment
17
- - user: "yes"
18
- - utter: utter_transfer_successful
@@ -1,17 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_corrections
3
- steps:
4
- - user: "who are my payees"
5
- - bot: "You are authorised to transfer money to: Amy, Fitness Gym and William"
6
- - user: "I want to transfer 55 to Amy"
7
- - utter: utter_transfer_money_understand
8
- - bot: "Which account would you like to transfer money from?"
9
- - user: "67890123"
10
- - utter: utter_ask_timing
11
- - user: "/SetSlots(timing=now)"
12
- - utter: utter_ask_confirm_immediate_payment
13
- - user: "Sorry, I meant 65 and from Current"
14
- - utter: utter_corrected_previous_input
15
- - utter: utter_ask_confirm_immediate_payment
16
- - user: "yes"
17
- - utter: utter_transfer_successful
@@ -1,32 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_digressions
3
- steps:
4
- - user: "I want to transfer money"
5
- - utter: utter_transfer_money_understand
6
- - bot: "Which account would you like to transfer money from?"
7
- - user: "who are my payees"
8
- - bot: "You are authorised to transfer money to: Richard, Susan and Electric Company"
9
- - utter: utter_flow_continue_interrupted
10
- - bot: "Which account would you like to transfer money from?"
11
- - user: "I would like to add Brad as a payee"
12
- - utter: utter_ask_account_number
13
- - user: "123456"
14
- - utter: utter_ask_payee_type
15
- - user: "/SetSlots(payee_type=person)"
16
- - utter: utter_ask_reference
17
- - user: "Facebook Marketplace"
18
- - utter: utter_ask_confirm_payee_details
19
- - user: "/SetSlots(confirm_payee_details=True)"
20
- - utter: utter_payee_added_success
21
- - utter: utter_flow_continue_interrupted
22
- - bot: "Which account would you like to transfer money from?"
23
- - user: "12345678"
24
- - utter: utter_ask_payee_name
25
- - user: "Brad"
26
- - utter: utter_ask_amount
27
- - user: "55.23"
28
- - utter: utter_ask_timing
29
- - user: "immediate"
30
- - utter: utter_ask_confirm_immediate_payment
31
- - user: "yup"
32
- - utter: utter_transfer_successful
@@ -1,21 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_human_handoff
3
- steps:
4
- - user: "hello"
5
- - utter: utter_chitchat
6
- - user: "i want to transfer 999 from savings"
7
- - utter: utter_transfer_money_understand
8
- - utter: utter_ask_payee_name
9
- - user: "who are my payees"
10
- - bot: "You are authorised to transfer money to: Amy, Fitness Gym and William"
11
- - utter: utter_flow_continue_interrupted
12
- - utter: utter_ask_payee_name
13
- - user: "Amy"
14
- - utter: utter_ask_timing
15
- - user: "/SetSlots(timing=now)"
16
- - utter: utter_ask_confirm_immediate_payment
17
- - user: "I want to talk to a human"
18
- - utter: utter_human_handoff_not_available
19
- - utter: utter_ask_confirm_immediate_payment
20
- - user: "no"
21
- - utter: utter_cancel_transfer
@@ -1,16 +0,0 @@
1
- test_cases:
2
- - test_case: conversation_repair_skipping_collect_step
3
- steps:
4
- - user: "I want to transfer 55 to Amy from savings right now"
5
- - utter: utter_transfer_money_understand
6
- - utter: utter_ask_confirm_immediate_payment
7
- - user: "sorry, I meant 65"
8
- - utter: utter_corrected_previous_input
9
- - utter: utter_ask_confirm_immediate_payment
10
- - user: "sorry, I meant in the future"
11
- - utter: utter_corrected_previous_input
12
- - utter: utter_ask_payment_date
13
- - user: "12/12/2025"
14
- - utter: utter_ask_confirm_future_payment
15
- - user: "yes"
16
- - utter: utter_payment_scheduled
@@ -1,16 +0,0 @@
1
- test_cases:
2
- - test_case: A simple test scripts used in standard demos for Starterpack - Financial Services (en)
3
- steps:
4
- - user: "I want to transfer money"
5
- - utter: utter_transfer_money_understand
6
- - bot: "Which account would you like to transfer money from?"
7
- - user: "56789012"
8
- - utter: utter_ask_payee_name
9
- - user: "Susan"
10
- - utter: utter_ask_amount
11
- - user: "55.10"
12
- - utter: utter_ask_timing
13
- - user: "/SetSlots(timing=now)"
14
- - utter: utter_ask_confirm_immediate_payment
15
- - user: "Yes"
16
- - utter: utter_transfer_successful
@@ -1,15 +0,0 @@
1
- test_cases:
2
- - test_case: various_tests_for_account_balance
3
- steps:
4
- - user: "I want to view my account balance"
5
- - bot: "Which account would you like the balance for?"
6
- - user: "12345678"
7
- - bot: "The balance is: $10123.45"
8
- - user: "I want to query the balance of my acccounts"
9
- - bot: "Which account would you like the balance for?"
10
- - user: "12345678"
11
- - bot: "The balance is: $10123.45"
12
- - user: "I want to know the balance of one of my accounts"
13
- - bot: "Which account would you like the balance for?"
14
- - user: "23456789"
15
- - bot: "The balance is: $4923.67"
@@ -1,12 +0,0 @@
1
- test_cases:
2
- - test_case: banking_questions - Happy paths no 1
3
- steps:
4
- - user: "Are there any fees to transfer money to my friends?"
5
- - bot: "Yes, there may be fees associated with transferring money, especially for international transfers. To avoid fees, consider using bank-to-bank transfers within the UK whenever possible. You will be notified of any applicable fees before confirming the transfer."
6
-
7
- - test_case: banking_questions - Happy paths no 2
8
- steps:
9
- - user: "I have a question on prepaid card"
10
- - utter: utter_help
11
- - user: "are there fees to transfer from or to prepaid cards"
12
- - bot: "Yes, there may be fees associated with transferring funds to or from prepaid cards. It is advisable to check your account details for specific charges related to these transactions."