rasa-pro 3.14.0.dev4__py3-none-any.whl → 3.14.0.dev5__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/api.py +0 -5
- rasa/builder/README.md +120 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +115 -0
- rasa/builder/copilot/constants.py +25 -0
- rasa/builder/copilot/copilot.py +372 -0
- rasa/builder/copilot/copilot_response_handler.py +487 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
- rasa/builder/copilot/exceptions.py +20 -0
- rasa/builder/copilot/models.py +431 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +726 -0
- rasa/builder/copilot/telemetry.py +195 -0
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +26 -0
- rasa/builder/document_retrieval/constants.py +15 -0
- rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
- rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
- rasa/builder/document_retrieval/models.py +62 -0
- rasa/builder/download.py +140 -0
- rasa/builder/exceptions.py +55 -0
- rasa/builder/guardrails/__init__.py +1 -0
- rasa/builder/guardrails/constants.py +3 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/lakera.py +206 -0
- rasa/builder/guardrails/models.py +199 -0
- rasa/builder/guardrails/utils.py +305 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +234 -0
- rasa/builder/llm_service.py +246 -0
- rasa/builder/logging_utils.py +209 -0
- rasa/builder/main.py +174 -0
- rasa/builder/models.py +197 -0
- rasa/builder/project_generator.py +450 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/scrape_rasa_docs.py +97 -0
- rasa/builder/service.py +1142 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/training_service.py +132 -0
- rasa/builder/validation_service.py +93 -0
- rasa/cli/arguments/default_arguments.py +0 -12
- rasa/cli/arguments/run.py +0 -2
- rasa/cli/dialogue_understanding_test.py +0 -4
- rasa/cli/e2e_test.py +0 -4
- rasa/cli/inspect.py +0 -3
- rasa/cli/llm_fine_tuning.py +0 -5
- rasa/cli/project_templates/basic/actions/action_api.py +15 -0
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
- rasa/cli/project_templates/basic/config.yml +23 -0
- rasa/cli/project_templates/basic/credentials.yml +34 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/data/general/help.yml +6 -0
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/basic/data/system/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
- rasa/cli/project_templates/basic/docs/template.txt +7 -0
- rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
- rasa/cli/project_templates/basic/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
- rasa/cli/project_templates/basic/endpoints.yml +73 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/finance/actions/__init__.py +46 -0
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
- rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
- rasa/cli/project_templates/finance/actions/database.py +277 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
- rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
- rasa/cli/project_templates/finance/config.yml +21 -0
- rasa/cli/project_templates/finance/credentials.yml +32 -0
- rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
- rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
- rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
- rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
- rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
- rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
- rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
- rasa/cli/project_templates/finance/csvs/users.csv +4 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
- rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
- rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
- rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
- rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
- rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
- rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
- rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
- rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
- rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
- rasa/cli/project_templates/finance/endpoints.yml +63 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +25 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +10 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_global.yml +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +6 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +9 -0
- rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/domain_global.yml +29 -0
- rasa/cli/project_templates/telco/domain/domain_patterns.yml +17 -0
- rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +20 -0
- rasa/cli/project_templates/telco/domain/domain_reset_router.yml +11 -0
- rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +24 -0
- rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +74 -0
- rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +102 -0
- rasa/cli/project_templates/telco/endpoints.yml +60 -0
- rasa/{dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 → cli/project_templates/telco/prompts/command-generator.jinja2} +3 -7
- rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +62 -0
- rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +130 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +68 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +13 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +47 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +21 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +15 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/run.py +0 -4
- rasa/cli/scaffold.py +46 -2
- rasa/cli/shell.py +0 -3
- rasa/constants.py +0 -6
- rasa/core/actions/action.py +10 -56
- rasa/core/agent.py +0 -16
- rasa/core/available_endpoints.py +0 -30
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +4 -4
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/dist/assets/{arc-63212852.js → arc-18042c22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-eecf6b13.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-8f798a9a.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-df71a04c.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9b275968.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-1c669cad.js → createText-2e5e7dd3-31422447.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b1553799.js → edges-e0da2a9e-518a90db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-112388d6.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-fdebec47.js → flowDb-956e92f1-e048c2be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-6280ede1.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-e1dc03e5.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-83f68c51.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-22f8666f.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-ca9e6217.js → graph-14702d8a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-c5ceb692.js → index-3862675e-f18b534b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +1335 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-faa9999b.js → infoDiagram-f8f76790-64154b83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-c4dda8d9.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-d4307784.js → layout-5a3b2123.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-0567aaa7.js → line-2272a8c7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-c11b95cf.js → linear-35bcf273.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-0c7d3ca9.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-34b433fa.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-4cab816e.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-8c22fa9e.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-70ce9e8e.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-fbcd7fc9.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-45f05ea6.js → stateDiagram-587899a1-b8a74083.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-beab1ea6.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-2f29dbd5.js → styles-6aaf32cf-f1d54e34.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-951eac83.js → styles-9a916d00-980de489.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-897fbfdd.js → styles-c10674c1-3c03abde.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-d667fac1.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-e3205144.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-4abeb0e2.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +2 -2
- rasa/core/channels/inspector/index.html +1 -1
- rasa/core/channels/inspector/src/App.tsx +10 -11
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +4 -6
- rasa/core/channels/inspector/src/helpers/formatters.ts +3 -24
- rasa/core/channels/inspector/src/theme/base/styles.ts +1 -19
- rasa/core/channels/inspector/src/types.ts +0 -4
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +49 -29
- rasa/core/channels/voice_stream/genesys.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +5 -3
- rasa/core/constants.py +0 -4
- rasa/core/policies/enterprise_search_policy.py +6 -11
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/flow_executor.py +45 -456
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/unexpected_intent_policy.py +0 -1
- rasa/core/processor.py +15 -18
- rasa/core/run.py +14 -11
- rasa/core/tracker_stores/tracker_store.py +7 -3
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +16 -16
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +1 -21
- rasa/dialogue_understanding/commands/__init__.py +0 -8
- rasa/dialogue_understanding/commands/cancel_flow_command.py +4 -97
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/clarify_command.py +0 -10
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/start_flow_command.py +8 -164
- rasa/dialogue_understanding/commands/utils.py +2 -6
- rasa/dialogue_understanding/generator/command_parser.py +0 -4
- rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +12 -50
- rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -41
- rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -163
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +8 -52
- rasa/dialogue_understanding/processor/command_processor.py +15 -31
- rasa/dialogue_understanding/stack/dialogue_stack.py +2 -123
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +0 -57
- rasa/dialogue_understanding/stack/utils.py +2 -17
- rasa/dialogue_understanding_test/du_test_runner.py +2 -7
- rasa/e2e_test/e2e_test_runner.py +2 -12
- rasa/engine/caching.py +2 -2
- rasa/engine/recipes/default_components.py +18 -10
- rasa/engine/storage/local_model_storage.py +45 -2
- rasa/graph_components/validators/default_recipe_validator.py +134 -134
- rasa/hooks.py +5 -5
- rasa/llm_fine_tuning/utils.py +2 -2
- rasa/model_manager/model_api.py +4 -5
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +20 -14
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +1 -1
- rasa/nlu/extractors/extractor.py +1 -2
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_manager.py +2 -11
- rasa/server.py +2 -14
- rasa/shared/constants.py +0 -5
- rasa/shared/core/constants.py +1 -12
- rasa/shared/core/domain.py +58 -11
- rasa/shared/core/events.py +0 -327
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +2 -2
- rasa/shared/core/flows/flows_yaml_schema.json +186 -112
- rasa/shared/core/flows/steps/call.py +5 -53
- rasa/shared/core/flows/validation.py +7 -46
- rasa/shared/core/flows/yaml_flows_io.py +17 -9
- rasa/shared/core/slots.py +6 -2
- rasa/shared/core/trackers.py +2 -5
- rasa/shared/exceptions.py +0 -4
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/utils.py +77 -1
- rasa/shared/providers/_utils.py +60 -44
- rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
- rasa/shared/providers/llm/_base_litellm_client.py +7 -39
- rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
- rasa/shared/providers/llm/litellm_router_llm_client.py +4 -8
- rasa/shared/providers/llm/llm_client.py +3 -7
- rasa/shared/providers/llm/llm_response.py +0 -49
- rasa/shared/providers/llm/self_hosted_llm_client.py +4 -8
- rasa/shared/utils/llm.py +5 -28
- rasa/shared/utils/schemas/events.py +0 -42
- rasa/shared/utils/yaml.py +1 -3
- rasa/studio/upload.py +16 -47
- rasa/telemetry.py +97 -23
- rasa/tracing/instrumentation/instrumentation.py +10 -12
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/utils/common.py +0 -79
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/log_utils.py +6 -2
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/tensorflow/rasa_layers.py +1 -1
- rasa/utils/train_utils.py +15 -15
- rasa/validator.py +21 -19
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +17 -14
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +431 -200
- rasa/agents/agent_factory.py +0 -122
- rasa/agents/agent_manager.py +0 -162
- rasa/agents/constants.py +0 -40
- rasa/agents/core/agent_protocol.py +0 -107
- rasa/agents/core/types.py +0 -70
- rasa/agents/exceptions.py +0 -8
- rasa/agents/protocol/__init__.py +0 -5
- rasa/agents/protocol/a2a/a2a_agent.py +0 -662
- rasa/agents/protocol/mcp/mcp_base_agent.py +0 -676
- rasa/agents/protocol/mcp/mcp_open_agent.py +0 -276
- rasa/agents/protocol/mcp/mcp_task_agent.py +0 -469
- rasa/agents/schemas/__init__.py +0 -12
- rasa/agents/schemas/agent_input.py +0 -38
- rasa/agents/schemas/agent_output.py +0 -26
- rasa/agents/schemas/agent_tool_result.py +0 -51
- rasa/agents/schemas/agent_tool_schema.py +0 -134
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +0 -15
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +0 -17
- rasa/agents/utils.py +0 -72
- rasa/core/available_agents.py +0 -199
- rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-3e293924.js +0 -1353
- rasa/core/policies/flows/mcp_tool_executor.py +0 -277
- rasa/dialogue_understanding/commands/continue_agent_command.py +0 -91
- rasa/dialogue_understanding/commands/restart_agent_command.py +0 -162
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +0 -61
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +0 -81
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +0 -81
- rasa/shared/agents/utils.py +0 -35
- rasa/shared/utils/mcp/server_connection.py +0 -157
- /rasa/{agents → builder}/__init__.py +0 -0
- /rasa/{agents/core → builder/copilot}/__init__.py +0 -0
- /rasa/{agents/protocol/a2a → builder/copilot/prompts}/__init__.py +0 -0
- /rasa/{agents/protocol/mcp → builder/copilot/templated_messages}/__init__.py +0 -0
- /rasa/{agents/templates → builder/document_retrieval}/__init__.py +0 -0
- /rasa/{shared/agents → cli/project_templates/finance/actions/accounts}/__init__.py +0 -0
- /rasa/{shared/utils/mcp → cli/project_templates/finance/actions/cards}/__init__.py +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
rasa/core/processor.py
CHANGED
|
@@ -69,7 +69,6 @@ from rasa.shared.constants import (
|
|
|
69
69
|
UTTER_PREFIX,
|
|
70
70
|
)
|
|
71
71
|
from rasa.shared.core.constants import (
|
|
72
|
-
ACTION_AGENT_REQUEST_USER_INPUT_NAME,
|
|
73
72
|
ACTION_CORRECT_FLOW_SLOT,
|
|
74
73
|
ACTION_EXTRACT_SLOTS,
|
|
75
74
|
ACTION_LISTEN_NAME,
|
|
@@ -730,7 +729,7 @@ class MessageProcessor:
|
|
|
730
729
|
if not self.domain or self.domain.is_empty():
|
|
731
730
|
return
|
|
732
731
|
|
|
733
|
-
intent = parse_data[
|
|
732
|
+
intent = parse_data["intent"][INTENT_NAME_KEY]
|
|
734
733
|
if intent and intent not in self.domain.intents:
|
|
735
734
|
rasa.shared.utils.io.raise_warning(
|
|
736
735
|
f"Parsed an intent '{intent}' "
|
|
@@ -739,7 +738,7 @@ class MessageProcessor:
|
|
|
739
738
|
docs=DOCS_URL_DOMAINS,
|
|
740
739
|
)
|
|
741
740
|
|
|
742
|
-
entities = parse_data[
|
|
741
|
+
entities = parse_data["entities"] or []
|
|
743
742
|
for element in entities:
|
|
744
743
|
entity = element["entity"]
|
|
745
744
|
if entity and entity not in self.domain.entities:
|
|
@@ -823,9 +822,9 @@ class MessageProcessor:
|
|
|
823
822
|
self._update_full_retrieval_intent(parse_data)
|
|
824
823
|
structlogger.debug(
|
|
825
824
|
"processor.message.parse",
|
|
826
|
-
parse_data_text=copy.deepcopy(parse_data[
|
|
827
|
-
parse_data_intent=parse_data[
|
|
828
|
-
parse_data_entities=copy.deepcopy(parse_data[
|
|
825
|
+
parse_data_text=copy.deepcopy(parse_data["text"]),
|
|
826
|
+
parse_data_intent=parse_data["intent"],
|
|
827
|
+
parse_data_entities=copy.deepcopy(parse_data["entities"]),
|
|
829
828
|
)
|
|
830
829
|
|
|
831
830
|
self._check_for_unseen_features(parse_data)
|
|
@@ -974,7 +973,7 @@ class MessageProcessor:
|
|
|
974
973
|
f"invalid intent: {parse_data[INTENT]['name']}. "
|
|
975
974
|
f"Returning CannotHandleCommand() as a fallback."
|
|
976
975
|
),
|
|
977
|
-
invalid_intent=parse_data[INTENT][
|
|
976
|
+
invalid_intent=parse_data[INTENT]["name"],
|
|
978
977
|
)
|
|
979
978
|
commands.append(
|
|
980
979
|
CannotHandleCommand(RASA_PATTERN_CANNOT_HANDLE_INVALID_INTENT)
|
|
@@ -984,7 +983,7 @@ class MessageProcessor:
|
|
|
984
983
|
|
|
985
984
|
def _contains_undefined_intent(self, message: Message) -> bool:
|
|
986
985
|
"""Checks if the message contains an undefined intent."""
|
|
987
|
-
intent_name = message.get(INTENT, {}).get(
|
|
986
|
+
intent_name = message.get(INTENT, {}).get("name")
|
|
988
987
|
return intent_name is not None and intent_name not in self.domain.intents
|
|
989
988
|
|
|
990
989
|
async def _parse_message_with_graph(
|
|
@@ -1034,8 +1033,8 @@ class MessageProcessor:
|
|
|
1034
1033
|
tracker.update(
|
|
1035
1034
|
UserUttered(
|
|
1036
1035
|
message.text,
|
|
1037
|
-
parse_data[
|
|
1038
|
-
parse_data[
|
|
1036
|
+
parse_data["intent"],
|
|
1037
|
+
parse_data["entities"],
|
|
1039
1038
|
parse_data,
|
|
1040
1039
|
input_channel=message.input_channel,
|
|
1041
1040
|
message_id=message.message_id,
|
|
@@ -1044,7 +1043,7 @@ class MessageProcessor:
|
|
|
1044
1043
|
self.domain,
|
|
1045
1044
|
)
|
|
1046
1045
|
|
|
1047
|
-
if parse_data[
|
|
1046
|
+
if parse_data["entities"]:
|
|
1048
1047
|
self._log_slots(tracker)
|
|
1049
1048
|
|
|
1050
1049
|
plugin_manager().hook.after_new_user_message(tracker=tracker)
|
|
@@ -1195,11 +1194,7 @@ class MessageProcessor:
|
|
|
1195
1194
|
`False` if `action_name` is `ACTION_LISTEN_NAME` or
|
|
1196
1195
|
`ACTION_SESSION_START_NAME`, otherwise `True`.
|
|
1197
1196
|
"""
|
|
1198
|
-
return action_name not in (
|
|
1199
|
-
ACTION_LISTEN_NAME,
|
|
1200
|
-
ACTION_SESSION_START_NAME,
|
|
1201
|
-
ACTION_AGENT_REQUEST_USER_INPUT_NAME,
|
|
1202
|
-
)
|
|
1197
|
+
return action_name not in (ACTION_LISTEN_NAME, ACTION_SESSION_START_NAME)
|
|
1203
1198
|
|
|
1204
1199
|
async def execute_side_effects(
|
|
1205
1200
|
self,
|
|
@@ -1472,9 +1467,11 @@ class MessageProcessor:
|
|
|
1472
1467
|
# tracker has never expired if sessions are disabled
|
|
1473
1468
|
return False
|
|
1474
1469
|
|
|
1475
|
-
user_uttered_event = tracker.get_last_event_for(
|
|
1470
|
+
user_uttered_event: Optional[UserUttered] = tracker.get_last_event_for(
|
|
1471
|
+
UserUttered
|
|
1472
|
+
)
|
|
1476
1473
|
|
|
1477
|
-
if not user_uttered_event
|
|
1474
|
+
if not user_uttered_event:
|
|
1478
1475
|
# there is no user event so far so the session should not be considered
|
|
1479
1476
|
# expired
|
|
1480
1477
|
return False
|
rasa/core/run.py
CHANGED
|
@@ -30,7 +30,6 @@ from rasa import server, telemetry
|
|
|
30
30
|
from rasa.constants import ENV_SANIC_BACKLOG
|
|
31
31
|
from rasa.core import agent, channels, constants
|
|
32
32
|
from rasa.core.agent import Agent
|
|
33
|
-
from rasa.core.available_agents import AvailableAgents
|
|
34
33
|
from rasa.core.available_endpoints import AvailableEndpoints
|
|
35
34
|
from rasa.core.channels import console
|
|
36
35
|
from rasa.core.channels.channel import InputChannel
|
|
@@ -43,10 +42,20 @@ from rasa.utils import licensing
|
|
|
43
42
|
logger = logging.getLogger() # get the root logger
|
|
44
43
|
|
|
45
44
|
|
|
46
|
-
def
|
|
45
|
+
def create_input_channels(
|
|
47
46
|
channel: Optional[Text], credentials_file: Optional[Text]
|
|
48
47
|
) -> List[InputChannel]:
|
|
49
|
-
"""Instantiate the chosen input channel.
|
|
48
|
+
"""Instantiate the chosen input channel.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
channel (optional): The name of the specific input channel to create.
|
|
52
|
+
credentials_file: Path to the credentials file containing channel credentials.
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
A list of instantiated input channels. If a specific channel is provided,
|
|
56
|
+
it returns a list with that single channel. If no channel is specified,
|
|
57
|
+
it returns a list of all channels defined in the credentials file.
|
|
58
|
+
"""
|
|
50
59
|
if credentials_file:
|
|
51
60
|
all_credentials = read_config_file(credentials_file)
|
|
52
61
|
else:
|
|
@@ -142,7 +151,6 @@ def configure_app(
|
|
|
142
151
|
route: Optional[Text] = "/webhooks/",
|
|
143
152
|
port: int = constants.DEFAULT_SERVER_PORT,
|
|
144
153
|
endpoints: Optional[AvailableEndpoints] = None,
|
|
145
|
-
sub_agents: Optional[AvailableAgents] = None,
|
|
146
154
|
log_file: Optional[Text] = None,
|
|
147
155
|
conversation_id: Optional[Text] = uuid.uuid4().hex,
|
|
148
156
|
use_syslog: bool = False,
|
|
@@ -171,7 +179,6 @@ def configure_app(
|
|
|
171
179
|
jwt_private_key=jwt_private_key,
|
|
172
180
|
jwt_method=jwt_method,
|
|
173
181
|
endpoints=endpoints,
|
|
174
|
-
sub_agents=sub_agents,
|
|
175
182
|
is_inspector_enabled=is_inspector_enabled,
|
|
176
183
|
)
|
|
177
184
|
)
|
|
@@ -236,7 +243,6 @@ def serve_application(
|
|
|
236
243
|
jwt_private_key: Optional[Text] = None,
|
|
237
244
|
jwt_method: Optional[Text] = None,
|
|
238
245
|
endpoints: Optional[AvailableEndpoints] = None,
|
|
239
|
-
sub_agents: Optional[AvailableAgents] = None,
|
|
240
246
|
remote_storage: Optional[StorageType] = None,
|
|
241
247
|
log_file: Optional[Text] = None,
|
|
242
248
|
ssl_certificate: Optional[Text] = None,
|
|
@@ -257,7 +263,7 @@ def serve_application(
|
|
|
257
263
|
if not channel and not credentials:
|
|
258
264
|
channel = "cmdline"
|
|
259
265
|
|
|
260
|
-
input_channels =
|
|
266
|
+
input_channels = create_input_channels(channel, credentials)
|
|
261
267
|
|
|
262
268
|
if inspect:
|
|
263
269
|
logger.info("Starting development inspector.")
|
|
@@ -277,7 +283,6 @@ def serve_application(
|
|
|
277
283
|
jwt_method,
|
|
278
284
|
port=port,
|
|
279
285
|
endpoints=endpoints,
|
|
280
|
-
sub_agents=sub_agents,
|
|
281
286
|
log_file=log_file,
|
|
282
287
|
conversation_id=conversation_id,
|
|
283
288
|
use_syslog=use_syslog,
|
|
@@ -297,7 +302,7 @@ def serve_application(
|
|
|
297
302
|
logger.info(f"Starting Rasa server on {protocol}://{interface}:{port}")
|
|
298
303
|
|
|
299
304
|
app.register_listener(
|
|
300
|
-
partial(load_agent_on_start, model_path, endpoints, remote_storage
|
|
305
|
+
partial(load_agent_on_start, model_path, endpoints, remote_storage),
|
|
301
306
|
"before_server_start",
|
|
302
307
|
)
|
|
303
308
|
|
|
@@ -335,7 +340,6 @@ async def load_agent_on_start(
|
|
|
335
340
|
model_path: Text,
|
|
336
341
|
endpoints: AvailableEndpoints,
|
|
337
342
|
remote_storage: Optional[StorageType],
|
|
338
|
-
sub_agents: Optional[AvailableAgents],
|
|
339
343
|
app: Sanic,
|
|
340
344
|
loop: AbstractEventLoop,
|
|
341
345
|
) -> Agent:
|
|
@@ -348,7 +352,6 @@ async def load_agent_on_start(
|
|
|
348
352
|
model_path=model_path,
|
|
349
353
|
remote_storage=remote_storage,
|
|
350
354
|
endpoints=endpoints,
|
|
351
|
-
sub_agents=sub_agents,
|
|
352
355
|
loop=loop,
|
|
353
356
|
)
|
|
354
357
|
|
|
@@ -542,7 +542,7 @@ class FailSafeTrackerStore(TrackerStore):
|
|
|
542
542
|
return self._tracker_store.domain
|
|
543
543
|
|
|
544
544
|
@domain.setter
|
|
545
|
-
def domain(self, domain:
|
|
545
|
+
def domain(self, domain: Domain) -> None:
|
|
546
546
|
self._tracker_store.domain = domain
|
|
547
547
|
|
|
548
548
|
if self._fallback_tracker_store:
|
|
@@ -805,7 +805,9 @@ class AwaitableTrackerStore(TrackerStore):
|
|
|
805
805
|
async def retrieve(self, sender_id: Text) -> Optional[DialogueStateTracker]:
|
|
806
806
|
"""Wrapper to call `retrieve` method of primary tracker store."""
|
|
807
807
|
result = self._tracker_store.retrieve(sender_id)
|
|
808
|
-
return
|
|
808
|
+
return (
|
|
809
|
+
await result if isawaitable(result) else result # type: ignore[return-value, misc]
|
|
810
|
+
)
|
|
809
811
|
|
|
810
812
|
async def keys(self) -> Iterable[Text]:
|
|
811
813
|
"""Wrapper to call `keys` method of primary tracker store."""
|
|
@@ -832,4 +834,6 @@ class AwaitableTrackerStore(TrackerStore):
|
|
|
832
834
|
) -> Optional[DialogueStateTracker]:
|
|
833
835
|
"""Wrapper to call `retrieve_full_tracker` method of primary tracker store."""
|
|
834
836
|
result = self._tracker_store.retrieve_full_tracker(conversation_id)
|
|
835
|
-
return
|
|
837
|
+
return (
|
|
838
|
+
await result if isawaitable(result) else result # type: ignore[return-value, misc]
|
|
839
|
+
)
|
rasa/core/train.py
CHANGED
|
@@ -46,7 +46,7 @@ async def train_comparison_models(
|
|
|
46
46
|
output=str(Path(output_path, f"run_{r +1}")),
|
|
47
47
|
fixed_model_name=config_name + PERCENTAGE_KEY + str(percentage),
|
|
48
48
|
additional_arguments={
|
|
49
|
-
**
|
|
49
|
+
**additional_arguments,
|
|
50
50
|
"exclusion_percentage": percentage,
|
|
51
51
|
},
|
|
52
52
|
)
|
|
@@ -91,7 +91,7 @@ from rasa.shared.core.training_data.visualization import (
|
|
|
91
91
|
)
|
|
92
92
|
from rasa.shared.exceptions import InvalidConfigException
|
|
93
93
|
from rasa.shared.importers.rasa import TrainingDataImporter
|
|
94
|
-
from rasa.shared.nlu.constants import
|
|
94
|
+
from rasa.shared.nlu.constants import INTENT_NAME_KEY, TEXT
|
|
95
95
|
|
|
96
96
|
# noinspection PyProtectedMember
|
|
97
97
|
from rasa.shared.nlu.training_data import loading
|
|
@@ -789,7 +789,7 @@ def _collect_messages(events: List[Dict[Text, Any]]) -> List[Message]:
|
|
|
789
789
|
data = event.get("parse_data", {})
|
|
790
790
|
rasa_nlu_training_data_utils.remove_untrainable_entities_from(data)
|
|
791
791
|
msg = Message.build(
|
|
792
|
-
data[
|
|
792
|
+
data["text"], data["intent"][INTENT_NAME_KEY], data["entities"]
|
|
793
793
|
)
|
|
794
794
|
messages.append(msg)
|
|
795
795
|
elif event.get("event") == UserUtteranceReverted.type_name and messages:
|
|
@@ -901,13 +901,13 @@ def _get_nlu_target_format(export_path: Text) -> Text:
|
|
|
901
901
|
|
|
902
902
|
def _entities_from_messages(messages: List[Message]) -> List[Text]:
|
|
903
903
|
"""Return all entities that occur in at least one of the messages."""
|
|
904
|
-
return list({e["entity"] for m in messages for e in m.data.get(
|
|
904
|
+
return list({e["entity"] for m in messages for e in m.data.get("entities", [])})
|
|
905
905
|
|
|
906
906
|
|
|
907
907
|
def _intents_from_messages(messages: List[Message]) -> Set[Text]:
|
|
908
908
|
"""Return all intents that occur in at least one of the messages."""
|
|
909
909
|
# set of distinct intents
|
|
910
|
-
distinct_intents = {m.data[
|
|
910
|
+
distinct_intents = {m.data["intent"] for m in messages if "intent" in m.data}
|
|
911
911
|
|
|
912
912
|
return distinct_intents
|
|
913
913
|
|
|
@@ -1191,11 +1191,11 @@ def _as_md_message(parse_data: Dict[Text, Any]) -> Text:
|
|
|
1191
1191
|
"""Display the parse data of a message in markdown format."""
|
|
1192
1192
|
from rasa.shared.nlu.training_data.formats.readerwriter import TrainingDataWriter
|
|
1193
1193
|
|
|
1194
|
-
if parse_data.get(
|
|
1195
|
-
return parse_data[
|
|
1194
|
+
if parse_data.get("text", "").startswith(INTENT_MESSAGE_PREFIX):
|
|
1195
|
+
return parse_data["text"]
|
|
1196
1196
|
|
|
1197
|
-
if not parse_data.get(
|
|
1198
|
-
parse_data[
|
|
1197
|
+
if not parse_data.get("entities"):
|
|
1198
|
+
parse_data["entities"] = []
|
|
1199
1199
|
|
|
1200
1200
|
return TrainingDataWriter.generate_message(parse_data)
|
|
1201
1201
|
|
|
@@ -1207,7 +1207,7 @@ def _validate_user_regex(latest_message: Dict[Text, Any], intents: List[Text]) -
|
|
|
1207
1207
|
`/greet`. Return `True` if the intent is a known one.
|
|
1208
1208
|
"""
|
|
1209
1209
|
parse_data = latest_message.get("parse_data", {})
|
|
1210
|
-
intent = parse_data.get(
|
|
1210
|
+
intent = parse_data.get("intent", {}).get(INTENT_NAME_KEY)
|
|
1211
1211
|
|
|
1212
1212
|
if intent in intents:
|
|
1213
1213
|
return True
|
|
@@ -1224,8 +1224,8 @@ async def _validate_user_text(
|
|
|
1224
1224
|
"""
|
|
1225
1225
|
parse_data = latest_message.get("parse_data", {})
|
|
1226
1226
|
text = _as_md_message(parse_data)
|
|
1227
|
-
intent = parse_data.get(
|
|
1228
|
-
entities = parse_data.get(
|
|
1227
|
+
intent = parse_data.get("intent", {}).get(INTENT_NAME_KEY)
|
|
1228
|
+
entities = parse_data.get("entities", [])
|
|
1229
1229
|
if entities:
|
|
1230
1230
|
message = (
|
|
1231
1231
|
f"Is the intent '{intent}' correct for '{text}' and are "
|
|
@@ -1276,9 +1276,9 @@ async def _validate_nlu(
|
|
|
1276
1276
|
|
|
1277
1277
|
entities = await _correct_entities(latest_message, endpoint, conversation_id)
|
|
1278
1278
|
corrected_nlu = {
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1279
|
+
"intent": corrected_intent,
|
|
1280
|
+
"entities": entities,
|
|
1281
|
+
"text": latest_message.get("text"),
|
|
1282
1282
|
}
|
|
1283
1283
|
|
|
1284
1284
|
await _correct_wrong_nlu(corrected_nlu, events, endpoint, conversation_id)
|
|
@@ -1315,9 +1315,9 @@ def _merge_annotated_and_original_entities(
|
|
|
1315
1315
|
# overwrite entities which have already been
|
|
1316
1316
|
# annotated in the original annotation to preserve
|
|
1317
1317
|
# additional entity parser information
|
|
1318
|
-
entities = parse_annotated.get(
|
|
1318
|
+
entities = parse_annotated.get("entities", [])[:]
|
|
1319
1319
|
for i, entity in enumerate(entities):
|
|
1320
|
-
for original_entity in parse_original.get(
|
|
1320
|
+
for original_entity in parse_original.get("entities", []):
|
|
1321
1321
|
if _is_same_entity_annotation(entity, original_entity):
|
|
1322
1322
|
entities[i] = original_entity
|
|
1323
1323
|
break
|
|
@@ -14,7 +14,7 @@ from rasa.shared.core.constants import (
|
|
|
14
14
|
from rasa.shared.core.domain import Domain, State
|
|
15
15
|
from rasa.shared.core.events import ActionExecuted, Event
|
|
16
16
|
from rasa.shared.core.generator import TrackerWithCachedStates
|
|
17
|
-
from rasa.shared.nlu.constants import
|
|
17
|
+
from rasa.shared.nlu.constants import TEXT
|
|
18
18
|
from rasa.shared.nlu.training_data.message import Message
|
|
19
19
|
|
|
20
20
|
logger = logging.getLogger(__name__)
|
|
@@ -362,12 +362,12 @@ def _get_previous_event(
|
|
|
362
362
|
previous_event_type = "bot utterance"
|
|
363
363
|
previous_event_name = state[PREVIOUS_ACTION]["action_text"]
|
|
364
364
|
elif USER in state.keys():
|
|
365
|
-
if
|
|
365
|
+
if "intent" in state[USER]:
|
|
366
366
|
previous_event_type = "intent"
|
|
367
|
-
previous_event_name = state[USER][
|
|
368
|
-
elif
|
|
367
|
+
previous_event_name = state[USER]["intent"]
|
|
368
|
+
elif "text" in state[USER]:
|
|
369
369
|
previous_event_type = "user utterance"
|
|
370
|
-
previous_event_name = state[USER][
|
|
370
|
+
previous_event_name = state[USER]["text"]
|
|
371
371
|
|
|
372
372
|
if not isinstance(previous_event_name, (str, type(None))):
|
|
373
373
|
# While the Substate type doesn't restrict the value of `action_text` /
|
rasa/core/utils.py
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
-
import re
|
|
4
3
|
from pathlib import Path
|
|
5
4
|
from socket import SOCK_DGRAM, SOCK_STREAM
|
|
6
|
-
from typing import TYPE_CHECKING, Any, Dict,
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional, Set, Text, Tuple, Union
|
|
7
6
|
|
|
8
7
|
import numpy as np
|
|
9
8
|
import structlog
|
|
@@ -360,22 +359,3 @@ def should_force_slot_filling(
|
|
|
360
359
|
return True, slot_name
|
|
361
360
|
|
|
362
361
|
return False, None
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
def get_slot_names_from_exit_conditions(exit_conditions: List[str]) -> List[str]:
|
|
366
|
-
"""Extract slot names from exit conditions.
|
|
367
|
-
|
|
368
|
-
Args:
|
|
369
|
-
exit_conditions: The exit conditions to extract slot names from.
|
|
370
|
-
|
|
371
|
-
Returns:
|
|
372
|
-
A list of slot names.
|
|
373
|
-
"""
|
|
374
|
-
# Find all unique names matching "slots.<name>"
|
|
375
|
-
return list(
|
|
376
|
-
{
|
|
377
|
-
name
|
|
378
|
-
for condition in exit_conditions
|
|
379
|
-
for name in re.findall(r"\bslots\.(\w+)", condition)
|
|
380
|
-
}
|
|
381
|
-
)
|
|
@@ -8,9 +8,6 @@ from rasa.dialogue_understanding.commands.chit_chat_answer_command import (
|
|
|
8
8
|
)
|
|
9
9
|
from rasa.dialogue_understanding.commands.clarify_command import ClarifyCommand
|
|
10
10
|
from rasa.dialogue_understanding.commands.command import Command
|
|
11
|
-
from rasa.dialogue_understanding.commands.continue_agent_command import (
|
|
12
|
-
ContinueAgentCommand,
|
|
13
|
-
)
|
|
14
11
|
from rasa.dialogue_understanding.commands.correct_slots_command import (
|
|
15
12
|
CorrectedSlot,
|
|
16
13
|
CorrectSlotsCommand,
|
|
@@ -32,9 +29,6 @@ from rasa.dialogue_understanding.commands.noop_command import NoopCommand
|
|
|
32
29
|
from rasa.dialogue_understanding.commands.repeat_bot_messages_command import (
|
|
33
30
|
RepeatBotMessagesCommand,
|
|
34
31
|
)
|
|
35
|
-
from rasa.dialogue_understanding.commands.restart_agent_command import (
|
|
36
|
-
RestartAgentCommand,
|
|
37
|
-
)
|
|
38
32
|
from rasa.dialogue_understanding.commands.restart_command import RestartCommand
|
|
39
33
|
from rasa.dialogue_understanding.commands.session_end_command import SessionEndCommand
|
|
40
34
|
from rasa.dialogue_understanding.commands.session_start_command import (
|
|
@@ -68,6 +62,4 @@ __all__ = [
|
|
|
68
62
|
"SessionEndCommand",
|
|
69
63
|
"RepeatBotMessagesCommand",
|
|
70
64
|
"RestartCommand",
|
|
71
|
-
"ContinueAgentCommand",
|
|
72
|
-
"RestartAgentCommand",
|
|
73
65
|
]
|
|
@@ -2,13 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import re
|
|
4
4
|
from dataclasses import dataclass
|
|
5
|
-
from typing import Any, Dict, List
|
|
5
|
+
from typing import Any, Dict, List
|
|
6
6
|
|
|
7
7
|
import structlog
|
|
8
8
|
|
|
9
|
-
from rasa.core.policies.flows.flow_executor import (
|
|
10
|
-
remove_agent_stack_frame,
|
|
11
|
-
)
|
|
12
9
|
from rasa.dialogue_understanding.commands.command import Command
|
|
13
10
|
from rasa.dialogue_understanding.commands.command_syntax_manager import (
|
|
14
11
|
CommandSyntaxManager,
|
|
@@ -16,13 +13,12 @@ from rasa.dialogue_understanding.commands.command_syntax_manager import (
|
|
|
16
13
|
)
|
|
17
14
|
from rasa.dialogue_understanding.patterns.cancel import CancelPatternFlowStackFrame
|
|
18
15
|
from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
|
|
19
|
-
from rasa.dialogue_understanding.stack.frames import DialogueStackFrame
|
|
20
16
|
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
21
17
|
FlowStackFrameType,
|
|
22
18
|
UserFlowStackFrame,
|
|
23
19
|
)
|
|
24
20
|
from rasa.dialogue_understanding.stack.utils import top_user_flow_frame
|
|
25
|
-
from rasa.shared.core.events import
|
|
21
|
+
from rasa.shared.core.events import Event, FlowCancelled
|
|
26
22
|
from rasa.shared.core.flows import FlowsList
|
|
27
23
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
28
24
|
|
|
@@ -52,7 +48,8 @@ class CancelFlowCommand(Command):
|
|
|
52
48
|
"""Selects the frames that were canceled.
|
|
53
49
|
|
|
54
50
|
Args:
|
|
55
|
-
|
|
51
|
+
dialogue_stack: The dialogue stack.
|
|
52
|
+
current_flow: The current flow.
|
|
56
53
|
|
|
57
54
|
Returns:
|
|
58
55
|
The frames that were canceled.
|
|
@@ -109,19 +106,6 @@ class CancelFlowCommand(Command):
|
|
|
109
106
|
)
|
|
110
107
|
return []
|
|
111
108
|
|
|
112
|
-
if agent_frame := original_tracker.stack.find_active_agent_stack_frame_for_flow(
|
|
113
|
-
current_flow.id
|
|
114
|
-
):
|
|
115
|
-
structlogger.debug(
|
|
116
|
-
"cancel_command.remove_agent_stack_frame",
|
|
117
|
-
command=self,
|
|
118
|
-
frame=agent_frame,
|
|
119
|
-
)
|
|
120
|
-
remove_agent_stack_frame(stack, agent_frame.agent_id)
|
|
121
|
-
applied_events.append(
|
|
122
|
-
AgentCancelled(agent_id=agent_frame.agent_id, flow_id=current_flow.id)
|
|
123
|
-
)
|
|
124
|
-
|
|
125
109
|
# we pass in the original dialogue stack (before any of the currently
|
|
126
110
|
# predicted commands were applied) to make sure we don't cancel any
|
|
127
111
|
# frames that were added by the currently predicted commands.
|
|
@@ -175,80 +159,3 @@ class CancelFlowCommand(Command):
|
|
|
175
159
|
CommandSyntaxManager.get_syntax_version(),
|
|
176
160
|
mapper[CommandSyntaxManager.get_default_syntax_version()],
|
|
177
161
|
)
|
|
178
|
-
|
|
179
|
-
def cancel_flow(
|
|
180
|
-
self,
|
|
181
|
-
tracker: DialogueStateTracker,
|
|
182
|
-
stack: DialogueStack,
|
|
183
|
-
flow_id: str,
|
|
184
|
-
) -> List[Event]:
|
|
185
|
-
"""Cancels a flow by flow id."""
|
|
186
|
-
applied_events: List[Event] = []
|
|
187
|
-
|
|
188
|
-
frames_to_cancel, user_frame_to_cancel = self._collect_frames_to_cancel(
|
|
189
|
-
stack, flow_id
|
|
190
|
-
)
|
|
191
|
-
|
|
192
|
-
# if the flow is not on the stack, do nothing
|
|
193
|
-
if user_frame_to_cancel is None:
|
|
194
|
-
structlogger.error(
|
|
195
|
-
"cancel_flow_command.cancel_flow.no_user_frame_to_cancel",
|
|
196
|
-
command=self,
|
|
197
|
-
)
|
|
198
|
-
return []
|
|
199
|
-
|
|
200
|
-
frames_ids_to_cancel = [frame.frame_id for frame in frames_to_cancel]
|
|
201
|
-
|
|
202
|
-
stack.push(
|
|
203
|
-
CancelPatternFlowStackFrame(
|
|
204
|
-
canceled_name=flow_id,
|
|
205
|
-
canceled_frames=frames_ids_to_cancel,
|
|
206
|
-
)
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
# create flow cancelled event
|
|
210
|
-
applied_events.extend(
|
|
211
|
-
[
|
|
212
|
-
FlowCancelled(
|
|
213
|
-
user_frame_to_cancel.flow_id, user_frame_to_cancel.step_id
|
|
214
|
-
),
|
|
215
|
-
]
|
|
216
|
-
)
|
|
217
|
-
|
|
218
|
-
update_stack_events = tracker.create_stack_updated_events(stack)
|
|
219
|
-
|
|
220
|
-
return applied_events + update_stack_events
|
|
221
|
-
|
|
222
|
-
def _collect_frames_to_cancel(
|
|
223
|
-
self, stack: DialogueStack, target_flow_id: str
|
|
224
|
-
) -> Tuple[List[DialogueStackFrame], Optional[UserFlowStackFrame]]:
|
|
225
|
-
"""Collect frames that need to be cancelled.
|
|
226
|
-
|
|
227
|
-
Args:
|
|
228
|
-
stack: The stack to collect frames from.
|
|
229
|
-
target_flow_id: The ID of the flow to cancel.
|
|
230
|
-
|
|
231
|
-
Returns:
|
|
232
|
-
A tuple containing (frames_to_cancel, frame_to_cancel).
|
|
233
|
-
"""
|
|
234
|
-
frames_to_cancel: List[DialogueStackFrame] = []
|
|
235
|
-
frame_found = False
|
|
236
|
-
frame_to_cancel = None
|
|
237
|
-
|
|
238
|
-
for frame in stack.frames:
|
|
239
|
-
if isinstance(frame, UserFlowStackFrame) and (
|
|
240
|
-
frame.frame_type == FlowStackFrameType.REGULAR
|
|
241
|
-
or frame.frame_type == FlowStackFrameType.INTERRUPT
|
|
242
|
-
):
|
|
243
|
-
if frame.flow_id == target_flow_id:
|
|
244
|
-
frames_to_cancel.append(frame)
|
|
245
|
-
frame_to_cancel = frame
|
|
246
|
-
frame_found = True
|
|
247
|
-
continue
|
|
248
|
-
elif frame_found:
|
|
249
|
-
break
|
|
250
|
-
|
|
251
|
-
if frame_found:
|
|
252
|
-
frames_to_cancel.append(frame)
|
|
253
|
-
|
|
254
|
-
return list(frames_to_cancel), frame_to_cancel
|
|
@@ -12,10 +12,6 @@ from rasa.dialogue_understanding.commands.free_form_answer_command import (
|
|
|
12
12
|
FreeFormAnswerCommand,
|
|
13
13
|
)
|
|
14
14
|
from rasa.dialogue_understanding.patterns.chitchat import ChitchatPatternFlowStackFrame
|
|
15
|
-
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
16
|
-
AgentStackFrame,
|
|
17
|
-
AgentState,
|
|
18
|
-
)
|
|
19
15
|
from rasa.shared.core.events import Event
|
|
20
16
|
from rasa.shared.core.flows import FlowsList
|
|
21
17
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
@@ -56,13 +52,6 @@ class ChitChatAnswerCommand(FreeFormAnswerCommand):
|
|
|
56
52
|
The events to apply to the tracker.
|
|
57
53
|
"""
|
|
58
54
|
stack = tracker.stack
|
|
59
|
-
|
|
60
|
-
# if the top stack frame is an agent stack frame, we need to
|
|
61
|
-
# update the state to INTERRUPTED
|
|
62
|
-
if top_stack_frame := stack.top():
|
|
63
|
-
if isinstance(top_stack_frame, AgentStackFrame):
|
|
64
|
-
top_stack_frame.state = AgentState.INTERRUPTED
|
|
65
|
-
|
|
66
55
|
stack.push(ChitchatPatternFlowStackFrame())
|
|
67
56
|
return tracker.create_stack_updated_events(stack)
|
|
68
57
|
|
|
@@ -13,10 +13,6 @@ from rasa.dialogue_understanding.commands.command_syntax_manager import (
|
|
|
13
13
|
)
|
|
14
14
|
from rasa.dialogue_understanding.commands.utils import extract_cleaned_options
|
|
15
15
|
from rasa.dialogue_understanding.patterns.clarify import ClarifyPatternFlowStackFrame
|
|
16
|
-
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
17
|
-
AgentStackFrame,
|
|
18
|
-
AgentState,
|
|
19
|
-
)
|
|
20
16
|
from rasa.shared.core.events import Event
|
|
21
17
|
from rasa.shared.core.flows import FlowsList
|
|
22
18
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
@@ -89,12 +85,6 @@ class ClarifyCommand(Command):
|
|
|
89
85
|
if flow is not None
|
|
90
86
|
]
|
|
91
87
|
|
|
92
|
-
# if the top stack frame is an agent stack frame, we need to
|
|
93
|
-
# update the state to INTERRUPTED
|
|
94
|
-
if top_stack_frame := stack.top():
|
|
95
|
-
if isinstance(top_stack_frame, AgentStackFrame):
|
|
96
|
-
top_stack_frame.state = AgentState.INTERRUPTED
|
|
97
|
-
|
|
98
88
|
stack.push(ClarifyPatternFlowStackFrame(names=names))
|
|
99
89
|
return tracker.create_stack_updated_events(stack)
|
|
100
90
|
|
|
@@ -12,10 +12,6 @@ from rasa.dialogue_understanding.commands.free_form_answer_command import (
|
|
|
12
12
|
FreeFormAnswerCommand,
|
|
13
13
|
)
|
|
14
14
|
from rasa.dialogue_understanding.patterns.search import SearchPatternFlowStackFrame
|
|
15
|
-
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
16
|
-
AgentStackFrame,
|
|
17
|
-
AgentState,
|
|
18
|
-
)
|
|
19
15
|
from rasa.shared.core.events import Event
|
|
20
16
|
from rasa.shared.core.flows import FlowsList
|
|
21
17
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
@@ -56,13 +52,6 @@ class KnowledgeAnswerCommand(FreeFormAnswerCommand):
|
|
|
56
52
|
The events to apply to the tracker.
|
|
57
53
|
"""
|
|
58
54
|
stack = tracker.stack
|
|
59
|
-
|
|
60
|
-
# if the top stack frame is an agent stack frame, we need to
|
|
61
|
-
# update the state to INTERRUPTED
|
|
62
|
-
if top_stack_frame := stack.top():
|
|
63
|
-
if isinstance(top_stack_frame, AgentStackFrame):
|
|
64
|
-
top_stack_frame.state = AgentState.INTERRUPTED
|
|
65
|
-
|
|
66
55
|
stack.push(SearchPatternFlowStackFrame())
|
|
67
56
|
return tracker.create_stack_updated_events(stack)
|
|
68
57
|
|