rasa-pro 3.14.0.dev10__py3-none-any.whl → 3.14.0.dev11__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.
- rasa/__main__.py +15 -3
- rasa/agents/agent_manager.py +50 -2
- rasa/agents/constants.py +3 -0
- rasa/agents/core/types.py +11 -0
- rasa/agents/protocol/a2a/a2a_agent.py +45 -5
- rasa/agents/protocol/mcp/mcp_base_agent.py +14 -5
- rasa/agents/protocol/mcp/mcp_open_agent.py +27 -13
- rasa/agents/protocol/mcp/mcp_task_agent.py +42 -31
- rasa/agents/schemas/agent_tool_result.py +0 -2
- rasa/agents/schemas/agent_tool_schema.py +55 -3
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +6 -6
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +5 -5
- rasa/agents/utils.py +42 -3
- rasa/builder/copilot/telemetry.py +35 -19
- rasa/builder/main.py +5 -14
- rasa/builder/project_generator.py +1 -1
- rasa/builder/service.py +5 -0
- rasa/builder/template_cache.py +9 -184
- rasa/cli/project_templates/basic/data/data.md +5 -6
- rasa/cli/project_templates/basic/domain/domain.md +5 -2
- rasa/cli/project_templates/finance/README.md +8 -7
- rasa/cli/project_templates/finance/actions/__init__.py +0 -46
- rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
- rasa/cli/project_templates/finance/actions/{transfers/action_process_immediate_payment.py → cards/check_that_card_exists.py} +6 -3
- rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
- rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
- rasa/cli/project_templates/finance/actions/db.py +117 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
- rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
- rasa/cli/project_templates/finance/config.yml +6 -0
- rasa/cli/project_templates/finance/credentials.yml +7 -6
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +3 -4
- rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
- rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
- rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +37 -58
- rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
- rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
- rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
- rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
- rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
- rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
- rasa/cli/project_templates/finance/data/data.md +6 -3
- rasa/cli/project_templates/finance/data/general/agent_details.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +1 -2
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +1 -1
- rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
- rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
- rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +29 -62
- rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
- rasa/cli/project_templates/finance/db/cards.json +18 -0
- rasa/cli/project_templates/finance/db/contacts.json +10 -0
- rasa/cli/project_templates/finance/db/my_account.json +6 -0
- rasa/cli/project_templates/finance/db/transactions.json +22 -0
- rasa/cli/project_templates/finance/docs/docs.md +8 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
- rasa/cli/project_templates/finance/domain/_system/patterns/pattern_session_start.yml +11 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +9 -5
- rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
- rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
- rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +33 -90
- rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
- rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
- rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
- rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
- rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
- rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
- rasa/cli/project_templates/finance/domain/domain.md +9 -1
- rasa/cli/project_templates/finance/domain/general/_shared.yml +53 -0
- rasa/cli/project_templates/finance/domain/general/agent_details.yml +19 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -2
- rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -3
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +7 -3
- rasa/cli/project_templates/finance/domain/general/welcome.yml +5 -2
- rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
- rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
- rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +203 -61
- rasa/cli/project_templates/finance/endpoints.yml +3 -2
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +31 -12
- rasa/cli/project_templates/telco/data/data.md +1 -1
- rasa/cli/project_templates/telco/docs/docs.md +3 -0
- rasa/cli/project_templates/telco/domain/domain.md +1 -2
- rasa/constants.py +1 -1
- rasa/core/actions/direct_custom_actions_executor.py +9 -2
- rasa/core/agent.py +2 -3
- rasa/core/available_agents.py +1 -1
- rasa/core/brokers/broker.py +1 -1
- rasa/core/brokers/kafka.py +52 -8
- rasa/core/channels/__init__.py +82 -35
- rasa/core/channels/inspector/README.md +1 -1
- rasa/core/channels/telegram.py +4 -9
- rasa/core/channels/voice_stream/twilio_media_streams.py +5 -1
- rasa/core/concurrent_lock_store.py +66 -16
- rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +76 -1
- rasa/core/iam_credentials_providers/credentials_provider_protocol.py +1 -1
- rasa/core/lock_store.py +41 -7
- rasa/core/policies/flows/agent_executor.py +632 -0
- rasa/core/policies/flows/flow_executor.py +3 -417
- rasa/core/policies/flows/mcp_tool_executor.py +32 -12
- rasa/core/processor.py +49 -28
- rasa/core/run.py +22 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +1 -1
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +11 -3
- rasa/dialogue_understanding/commands/clarify_command.py +11 -3
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +11 -3
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +3 -3
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +3 -3
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +3 -3
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +3 -3
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -0
- rasa/dialogue_understanding/processor/command_processor.py +70 -0
- rasa/dialogue_understanding/stack/dialogue_stack.py +0 -25
- rasa/engine/loader.py +12 -0
- rasa/engine/recipes/default_components.py +111 -82
- rasa/engine/recipes/default_recipe.py +79 -22
- rasa/engine/runner/dask.py +8 -5
- rasa/graph_components/validators/default_recipe_validator.py +59 -19
- rasa/model_manager/warm_rasa_process.py +13 -3
- rasa/model_training.py +0 -14
- rasa/nlu/classifiers/logistic_regression_classifier.py +1 -22
- rasa/nlu/classifiers/mitie_intent_classifier.py +3 -0
- rasa/nlu/classifiers/sklearn_intent_classifier.py +1 -3
- rasa/nlu/extractors/crf_entity_extractor.py +9 -10
- rasa/nlu/extractors/mitie_entity_extractor.py +3 -0
- rasa/nlu/extractors/spacy_entity_extractor.py +3 -0
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +2 -0
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +3 -0
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +4 -2
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -0
- rasa/nlu/tokenizers/jieba_tokenizer.py +3 -4
- rasa/nlu/tokenizers/mitie_tokenizer.py +3 -2
- rasa/nlu/tokenizers/spacy_tokenizer.py +3 -2
- rasa/nlu/utils/mitie_utils.py +3 -0
- rasa/nlu/utils/spacy_utils.py +3 -2
- rasa/telemetry.py +63 -0
- rasa/utils/log_utils.py +95 -4
- rasa/utils/tensorflow/__init__.py +0 -22
- rasa/utils/tensorflow/callback.py +17 -7
- rasa/utils/tensorflow/layers.py +10 -7
- rasa/utils/tensorflow/rasa_layers.py +1 -1
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev10.dist-info → rasa_pro-3.14.0.dev11.dist-info}/METADATA +99 -89
- {rasa_pro-3.14.0.dev10.dist-info → rasa_pro-3.14.0.dev11.dist-info}/RECORD +164 -235
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
- rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
- rasa/cli/project_templates/finance/actions/database.py +0 -277
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
- rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
- rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
- rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
- rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
- rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
- rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
- rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
- rasa/cli/project_templates/finance/csvs/users.csv +0 -4
- rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
- rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
- rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
- rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
- rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
- rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
- rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
- rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
- rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +0 -7
- rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
- {rasa_pro-3.14.0.dev10.dist-info → rasa_pro-3.14.0.dev11.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev10.dist-info → rasa_pro-3.14.0.dev11.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev10.dist-info → rasa_pro-3.14.0.dev11.dist-info}/entry_points.txt +0 -0
|
File without changes
|
|
@@ -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,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:
|
|
@@ -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
|
-
|
|
6
|
-
|
|
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
|
|
6
|
+
name: check account balance
|
|
7
7
|
steps:
|
|
8
|
-
-
|
|
9
|
-
|
|
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
|
|
@@ -1,66 +1,45 @@
|
|
|
1
1
|
flows:
|
|
2
2
|
block_card:
|
|
3
|
-
description:
|
|
4
|
-
name: block
|
|
3
|
+
description: Applies a permanent or temporary block to stolen, lost or compromised banking cards.
|
|
4
|
+
name: block card
|
|
5
5
|
steps:
|
|
6
|
-
- action:
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
- action: utter_start_block_card
|
|
7
|
+
|
|
8
|
+
- id: get_bank_card_number
|
|
9
|
+
collect: bank_card_number
|
|
10
|
+
description: The number of the card user wants to block
|
|
11
|
+
ask_before_filling: true
|
|
12
|
+
|
|
13
|
+
- action: check_that_card_exists
|
|
13
14
|
next:
|
|
14
|
-
- if:
|
|
15
|
-
then: "acknowledge_reason_damaged_expired"
|
|
16
|
-
- if: "slots.reason_for_blocking == 'fraud' or slots.reason_for_blocking == 'stolen' or slots.reason_for_blocking == 'lost'"
|
|
17
|
-
then:
|
|
18
|
-
- set_slots:
|
|
19
|
-
- fraud_reported: true
|
|
20
|
-
next: "acknowledge_reason_fraud_stolen_lost"
|
|
21
|
-
- if: "slots.reason_for_blocking == 'traveling' or slots.reason_for_blocking == 'moving'"
|
|
15
|
+
- if: not slots.return_value
|
|
22
16
|
then:
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- id:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
next: "card_blocked"
|
|
36
|
-
- id: "card_blocked"
|
|
37
|
-
action: "utter_card_blocked"
|
|
38
|
-
next: "confirm_issue_new_card"
|
|
39
|
-
- id: "confirm_issue_new_card"
|
|
40
|
-
collect: confirm_issue_new_card
|
|
41
|
-
description: |
|
|
42
|
-
Confirm if the user wants to be issued a new card. The answer should be an affirmative statement,
|
|
43
|
-
such as "yes" or "correct," or a declined statement, such as "no" or "I don't want to"
|
|
17
|
+
- action: utter_bank_card_not_found
|
|
18
|
+
next: get_bank_card_number
|
|
19
|
+
- else: permanent_or_temporary_block
|
|
20
|
+
|
|
21
|
+
- id: permanent_or_temporary_block
|
|
22
|
+
collect: card_block_type
|
|
23
|
+
description: Indicates if the user wants a temporary or permanent block on their card.
|
|
24
|
+
|
|
25
|
+
- id: confirm_block_card
|
|
26
|
+
collect: confirmation
|
|
27
|
+
description: "Confirms the request for card blocking; accepts True or False, yes or no."
|
|
28
|
+
utter: utter_ask_block_card_confirmation
|
|
44
29
|
ask_before_filling: true
|
|
45
30
|
next:
|
|
46
|
-
- if:
|
|
47
|
-
then:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- id:
|
|
59
|
-
action:
|
|
60
|
-
next: update_card_status
|
|
61
|
-
- id: "contact_support"
|
|
62
|
-
action: utter_contact_support
|
|
63
|
-
next: update_card_status
|
|
64
|
-
- id: "update_card_status"
|
|
65
|
-
action: action_update_card_status
|
|
31
|
+
- if: not slots.confirmation
|
|
32
|
+
then:
|
|
33
|
+
- action: utter_block_card_cancelled
|
|
34
|
+
next: END
|
|
35
|
+
- if: slots.card_block_type is "permanent"
|
|
36
|
+
then: execute_permanent_block
|
|
37
|
+
- else: execute_temporary_freeze
|
|
38
|
+
|
|
39
|
+
- id: execute_permanent_block
|
|
40
|
+
action: utter_block_card_successful
|
|
41
|
+
next: END
|
|
42
|
+
|
|
43
|
+
- id: execute_temporary_freeze
|
|
44
|
+
action: utter_freeze_card_successful
|
|
66
45
|
next: END
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
list_cards:
|
|
3
|
+
name: Show cards along with the account information the cards are linked to.
|
|
4
|
+
description: show your card list
|
|
5
|
+
steps:
|
|
6
|
+
- action: list_cards
|
|
7
|
+
next:
|
|
8
|
+
- if: slots.cards_list
|
|
9
|
+
then:
|
|
10
|
+
- action: utter_list_cards
|
|
11
|
+
next: END
|
|
12
|
+
- else:
|
|
13
|
+
- action: utter_no_cards
|
|
14
|
+
next: END
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
replace_card:
|
|
3
|
+
description: Replaces an existing card if it’s lost, stolen, damaged, or compromised (including suspected fraud).
|
|
4
|
+
name: replace card
|
|
5
|
+
steps:
|
|
6
|
+
- collect: confirm_correct_card
|
|
7
|
+
description: "Confirms whether the displayed card is the correct one to replace; accepts True or False, yes or no."
|
|
8
|
+
ask_before_filling: true
|
|
9
|
+
next:
|
|
10
|
+
- if: slots.confirm_correct_card
|
|
11
|
+
then:
|
|
12
|
+
- call: replace_eligible_card
|
|
13
|
+
next: END
|
|
14
|
+
- else:
|
|
15
|
+
- action: utter_relevant_card_not_linked
|
|
16
|
+
next: END
|