rasa-pro 3.14.0.dev3__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 +2 -43
- 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 +1 -1
- rasa/core/channels/inspector/dist/assets/{arc-2e78c586.js → arc-18042c22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-806b712e.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-0745efa9.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-7bd1082b.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-d937ba49.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-a2a564ca.js → createText-2e5e7dd3-31422447.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b5256940.js → edges-e0da2a9e-518a90db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-e6883ad2.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e576fc02.js → flowDb-956e92f1-e048c2be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-2e298d01.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-dd7b150a.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-5b79575c.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-3016f40a.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-3e19170f.js → graph-14702d8a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-eb9c86de.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-b4280e4d.js → infoDiagram-f8f76790-64154b83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-556091f8.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-08436411.js → layout-5a3b2123.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-683c4f3b.js → line-2272a8c7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-cee6d791.js → linear-35bcf273.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-a0bf0b1a.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-3730d5c4.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-12a20fed.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-b9732102.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-a2e72776.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-8b7a76bb.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-e65853ac.js → stateDiagram-587899a1-b8a74083.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-6f58a44b.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-df25b934.js → styles-6aaf32cf-f1d54e34.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-88357141.js → styles-9a916d00-980de489.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-d600174d.js → styles-c10674c1-3c03abde.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-4adc3e0b.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-42816fa1.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-621eb66a.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 +5 -7
- 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 +43 -23
- 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 -415
- rasa/core/processor.py +1 -6
- rasa/core/run.py +14 -11
- 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/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 +0 -5
- rasa/engine/storage/local_model_storage.py +45 -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/server.py +0 -10
- 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 -319
- 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 +16 -8
- rasa/shared/core/slots.py +4 -0
- 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/studio/upload.py +16 -47
- rasa/telemetry.py +97 -23
- rasa/tracing/instrumentation/instrumentation.py +2 -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 +5 -1
- rasa/utils/openapi.py +144 -0
- rasa/validator.py +7 -3
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +3 -3
- {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +405 -174
- rasa/agents/agent_factory.py +0 -122
- rasa/agents/agent_manager.py +0 -162
- rasa/agents/constants.py +0 -32
- rasa/agents/core/agent_protocol.py +0 -108
- 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 -51
- rasa/agents/protocol/mcp/mcp_base_agent.py +0 -674
- 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 -196
- rasa/core/channels/inspector/dist/assets/channel-c436ca7c.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-50dd656b.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b2aeaf8.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-1bd9135e.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.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
from typing import Any, Dict, List, Optional, Text, cast
|
|
3
|
+
from typing import Any, Dict, List, Optional, Text
|
|
5
4
|
|
|
6
5
|
import structlog
|
|
7
6
|
from jinja2 import Template
|
|
8
7
|
from pypred import Predicate
|
|
9
|
-
from structlog.contextvars import
|
|
10
|
-
|
|
11
|
-
from rasa.agents.agent_manager import AgentManager
|
|
12
|
-
from rasa.agents.constants import (
|
|
13
|
-
AGENT_METADATA_AGENT_RESPONSE_KEY,
|
|
14
|
-
AGENT_METADATA_EXIT_IF_KEY,
|
|
15
|
-
AGENT_METADATA_TOOL_RESULTS_KEY,
|
|
8
|
+
from structlog.contextvars import (
|
|
9
|
+
bound_contextvars,
|
|
16
10
|
)
|
|
17
|
-
|
|
18
|
-
from rasa.agents.schemas import AgentInput, AgentOutput
|
|
19
|
-
from rasa.agents.schemas.agent_input import AgentInputSlot
|
|
20
|
-
from rasa.core.available_agents import AvailableAgents
|
|
11
|
+
|
|
21
12
|
from rasa.core.available_endpoints import AvailableEndpoints
|
|
22
13
|
from rasa.core.constants import ACTIVE_FLOW_METADATA_KEY, STEP_ID_METADATA_KEY
|
|
23
14
|
from rasa.core.policies.flows.flow_exceptions import (
|
|
@@ -31,8 +22,7 @@ from rasa.core.policies.flows.flow_step_result import (
|
|
|
31
22
|
FlowStepResult,
|
|
32
23
|
PauseFlowReturnPrediction,
|
|
33
24
|
)
|
|
34
|
-
from rasa.
|
|
35
|
-
from rasa.core.utils import get_slot_names_from_exit_conditions
|
|
25
|
+
from rasa.dialogue_understanding.commands import CancelFlowCommand
|
|
36
26
|
from rasa.dialogue_understanding.patterns.cancel import CancelPatternFlowStackFrame
|
|
37
27
|
from rasa.dialogue_understanding.patterns.collect_information import (
|
|
38
28
|
FLOW_PATTERN_COLLECT_INFORMATION,
|
|
@@ -59,27 +49,17 @@ from rasa.dialogue_understanding.stack.frames import (
|
|
|
59
49
|
UserFlowStackFrame,
|
|
60
50
|
)
|
|
61
51
|
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
62
|
-
AgentStackFrame,
|
|
63
|
-
AgentState,
|
|
64
52
|
FlowStackFrameType,
|
|
65
53
|
)
|
|
66
|
-
from rasa.dialogue_understanding.stack.utils import
|
|
67
|
-
|
|
54
|
+
from rasa.dialogue_understanding.stack.utils import (
|
|
55
|
+
top_user_flow_frame,
|
|
56
|
+
)
|
|
68
57
|
from rasa.shared.constants import RASA_PATTERN_HUMAN_HANDOFF
|
|
69
58
|
from rasa.shared.core.constants import (
|
|
70
|
-
ACTION_AGENT_REQUEST_USER_INPUT_NAME,
|
|
71
59
|
ACTION_LISTEN_NAME,
|
|
72
|
-
ACTION_METADATA_MESSAGE_KEY,
|
|
73
|
-
ACTION_METADATA_TEXT_KEY,
|
|
74
|
-
ACTION_SEND_TEXT_NAME,
|
|
75
|
-
FLOW_HASHES_SLOT,
|
|
76
60
|
SILENCE_TIMEOUT_SLOT,
|
|
77
61
|
)
|
|
78
62
|
from rasa.shared.core.events import (
|
|
79
|
-
AgentCancelled,
|
|
80
|
-
AgentCompleted,
|
|
81
|
-
AgentResumed,
|
|
82
|
-
AgentStarted,
|
|
83
63
|
Event,
|
|
84
64
|
FlowCompleted,
|
|
85
65
|
FlowResumed,
|
|
@@ -87,7 +67,11 @@ from rasa.shared.core.events import (
|
|
|
87
67
|
SlotSet,
|
|
88
68
|
)
|
|
89
69
|
from rasa.shared.core.flows import FlowsList
|
|
90
|
-
from rasa.shared.core.flows.flow import
|
|
70
|
+
from rasa.shared.core.flows.flow import (
|
|
71
|
+
END_STEP,
|
|
72
|
+
Flow,
|
|
73
|
+
FlowStep,
|
|
74
|
+
)
|
|
91
75
|
from rasa.shared.core.flows.flow_step_links import (
|
|
92
76
|
ElseFlowStepLink,
|
|
93
77
|
IfFlowStepLink,
|
|
@@ -104,20 +88,15 @@ from rasa.shared.core.flows.steps import (
|
|
|
104
88
|
SetSlotsFlowStep,
|
|
105
89
|
)
|
|
106
90
|
from rasa.shared.core.flows.steps.constants import START_STEP
|
|
107
|
-
from rasa.shared.core.slots import
|
|
108
|
-
from rasa.shared.core.trackers import
|
|
109
|
-
|
|
91
|
+
from rasa.shared.core.slots import Slot, SlotRejection
|
|
92
|
+
from rasa.shared.core.trackers import (
|
|
93
|
+
DialogueStateTracker,
|
|
94
|
+
)
|
|
110
95
|
|
|
111
96
|
structlogger = structlog.get_logger()
|
|
112
97
|
|
|
113
98
|
MAX_NUMBER_OF_STEPS = 250
|
|
114
99
|
|
|
115
|
-
MAX_AGENT_RETRY_DELAY_SECONDS = 5
|
|
116
|
-
MAX_AGENT_RETRIES = 3
|
|
117
|
-
|
|
118
|
-
# Slots that should not be forwarded to sub-agents via AgentInput
|
|
119
|
-
SLOTS_EXCLUDED_FOR_AGENT = [FLOW_HASHES_SLOT]
|
|
120
|
-
|
|
121
100
|
|
|
122
101
|
def render_template_variables(text: str, context: Dict[Text, Any]) -> str:
|
|
123
102
|
"""Replace context variables in a text."""
|
|
@@ -169,13 +148,6 @@ def select_next_step_id(
|
|
|
169
148
|
tracker: DialogueStateTracker,
|
|
170
149
|
) -> Optional[Text]:
|
|
171
150
|
"""Selects the next step id based on the current step."""
|
|
172
|
-
# if the current step is a call step to an agent, and we already have an
|
|
173
|
-
# AgentStackFrame on top of the stack, we need to return the current
|
|
174
|
-
# step id again in order to loop back to the agent.
|
|
175
|
-
agent_stack_frame = tracker.stack.top()
|
|
176
|
-
if agent_stack_frame and isinstance(agent_stack_frame, AgentStackFrame):
|
|
177
|
-
return current.id
|
|
178
|
-
|
|
179
151
|
next_step = current.next
|
|
180
152
|
if len(next_step.links) == 1 and isinstance(next_step.links[0], StaticFlowStepLink):
|
|
181
153
|
return next_step.links[0].target
|
|
@@ -387,11 +359,8 @@ def reset_scoped_slots(
|
|
|
387
359
|
return events
|
|
388
360
|
|
|
389
361
|
|
|
390
|
-
|
|
391
|
-
tracker: DialogueStateTracker,
|
|
392
|
-
available_actions: List[str],
|
|
393
|
-
flows: FlowsList,
|
|
394
|
-
slots: List[Slot],
|
|
362
|
+
def advance_flows(
|
|
363
|
+
tracker: DialogueStateTracker, available_actions: List[str], flows: FlowsList
|
|
395
364
|
) -> FlowActionPrediction:
|
|
396
365
|
"""Advance the current flows until the next action.
|
|
397
366
|
|
|
@@ -399,7 +368,6 @@ async def advance_flows(
|
|
|
399
368
|
tracker: The tracker to get the next action for.
|
|
400
369
|
available_actions: The actions that are available in the domain.
|
|
401
370
|
flows: All flows.
|
|
402
|
-
slots: The slots that are available in the domain.
|
|
403
371
|
|
|
404
372
|
Returns:
|
|
405
373
|
The predicted action and the events to run.
|
|
@@ -409,16 +377,13 @@ async def advance_flows(
|
|
|
409
377
|
# if there are no flows, there is nothing to do
|
|
410
378
|
return FlowActionPrediction(None, 0.0)
|
|
411
379
|
|
|
412
|
-
return
|
|
413
|
-
tracker, available_actions, flows, slots
|
|
414
|
-
)
|
|
380
|
+
return advance_flows_until_next_action(tracker, available_actions, flows)
|
|
415
381
|
|
|
416
382
|
|
|
417
|
-
|
|
383
|
+
def advance_flows_until_next_action(
|
|
418
384
|
tracker: DialogueStateTracker,
|
|
419
385
|
available_actions: List[str],
|
|
420
386
|
flows: FlowsList,
|
|
421
|
-
slots: List[Slot],
|
|
422
387
|
) -> FlowActionPrediction:
|
|
423
388
|
"""Advance the flow and select the next action to execute.
|
|
424
389
|
|
|
@@ -476,7 +441,7 @@ async def advance_flows_until_next_action(
|
|
|
476
441
|
|
|
477
442
|
with bound_contextvars(step_id=next_step.id):
|
|
478
443
|
step_stack = tracker.stack
|
|
479
|
-
step_result =
|
|
444
|
+
step_result = run_step(
|
|
480
445
|
next_step,
|
|
481
446
|
current_flow,
|
|
482
447
|
step_stack,
|
|
@@ -484,7 +449,6 @@ async def advance_flows_until_next_action(
|
|
|
484
449
|
available_actions,
|
|
485
450
|
flows,
|
|
486
451
|
previous_step_id,
|
|
487
|
-
slots,
|
|
488
452
|
)
|
|
489
453
|
new_events = step_result.events
|
|
490
454
|
if (
|
|
@@ -513,9 +477,10 @@ async def advance_flows_until_next_action(
|
|
|
513
477
|
# make sure we really return all events that got created during the
|
|
514
478
|
# step execution of all steps (not only the last one)
|
|
515
479
|
prediction.events = gathered_events
|
|
516
|
-
prediction.metadata =
|
|
517
|
-
|
|
518
|
-
|
|
480
|
+
prediction.metadata = {
|
|
481
|
+
ACTIVE_FLOW_METADATA_KEY: tracker.active_flow,
|
|
482
|
+
STEP_ID_METADATA_KEY: tracker.current_step_id,
|
|
483
|
+
}
|
|
519
484
|
return prediction
|
|
520
485
|
else:
|
|
521
486
|
structlogger.warning("flow.step.execution.no_action")
|
|
@@ -557,8 +522,6 @@ def validate_collect_step(
|
|
|
557
522
|
|
|
558
523
|
def cancel_flow_and_push_internal_error(stack: DialogueStack, flow_name: str) -> None:
|
|
559
524
|
"""Cancel the top user flow and push the internal error pattern."""
|
|
560
|
-
from rasa.dialogue_understanding.commands import CancelFlowCommand
|
|
561
|
-
|
|
562
525
|
top_frame = stack.top()
|
|
563
526
|
|
|
564
527
|
if isinstance(top_frame, BaseFlowStackFrame):
|
|
@@ -587,7 +550,7 @@ def attach_stack_metadata_to_events(
|
|
|
587
550
|
event.metadata[ACTIVE_FLOW_METADATA_KEY] = flow_id
|
|
588
551
|
|
|
589
552
|
|
|
590
|
-
|
|
553
|
+
def run_step(
|
|
591
554
|
step: FlowStep,
|
|
592
555
|
flow: Flow,
|
|
593
556
|
stack: DialogueStack,
|
|
@@ -595,7 +558,6 @@ async def run_step(
|
|
|
595
558
|
available_actions: List[str],
|
|
596
559
|
flows: FlowsList,
|
|
597
560
|
previous_step_id: str,
|
|
598
|
-
slots: List[Slot],
|
|
599
561
|
) -> FlowStepResult:
|
|
600
562
|
"""Run a single step of a flow.
|
|
601
563
|
|
|
@@ -614,7 +576,6 @@ async def run_step(
|
|
|
614
576
|
available_actions: The actions that are available in the domain.
|
|
615
577
|
flows: All flows.
|
|
616
578
|
previous_step_id: The ID of the previous step.
|
|
617
|
-
slots: The slots that are available in the domain.
|
|
618
579
|
|
|
619
580
|
Returns:
|
|
620
581
|
A result of running the step describing where to transition to.
|
|
@@ -654,7 +615,7 @@ async def run_step(
|
|
|
654
615
|
return _run_link_step(initial_events, stack, step)
|
|
655
616
|
|
|
656
617
|
elif isinstance(step, CallFlowStep):
|
|
657
|
-
return
|
|
618
|
+
return _run_call_step(initial_events, stack, step)
|
|
658
619
|
|
|
659
620
|
elif isinstance(step, SetSlotsFlowStep):
|
|
660
621
|
return _run_set_slot_step(initial_events, step)
|
|
@@ -723,26 +684,17 @@ def _run_set_slot_step(
|
|
|
723
684
|
return ContinueFlowWithNextStep(events=initial_events + slot_events)
|
|
724
685
|
|
|
725
686
|
|
|
726
|
-
|
|
727
|
-
initial_events: List[Event],
|
|
728
|
-
stack: DialogueStack,
|
|
729
|
-
step: CallFlowStep,
|
|
730
|
-
tracker: DialogueStateTracker,
|
|
731
|
-
slots: List[Slot],
|
|
687
|
+
def _run_call_step(
|
|
688
|
+
initial_events: List[Event], stack: DialogueStack, step: CallFlowStep
|
|
732
689
|
) -> FlowStepResult:
|
|
733
690
|
structlogger.debug("flow.step.run.call")
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
flow_id=step.call,
|
|
742
|
-
frame_type=FlowStackFrameType.CALL,
|
|
743
|
-
),
|
|
744
|
-
)
|
|
745
|
-
return ContinueFlowWithNextStep(events=initial_events)
|
|
691
|
+
stack.push(
|
|
692
|
+
UserFlowStackFrame(
|
|
693
|
+
flow_id=step.call,
|
|
694
|
+
frame_type=FlowStackFrameType.CALL,
|
|
695
|
+
),
|
|
696
|
+
)
|
|
697
|
+
return ContinueFlowWithNextStep(events=initial_events)
|
|
746
698
|
|
|
747
699
|
|
|
748
700
|
def _run_link_step(
|
|
@@ -788,7 +740,14 @@ def _run_action_step(
|
|
|
788
740
|
# do not log about non-existing validation actions of collect steps
|
|
789
741
|
utter_action_name = render_template_variables("{{context.utter}}", context)
|
|
790
742
|
if utter_action_name not in available_actions:
|
|
791
|
-
structlogger.warning(
|
|
743
|
+
structlogger.warning(
|
|
744
|
+
"flow.step.run.action.unknown",
|
|
745
|
+
action=action_name,
|
|
746
|
+
event_info=(
|
|
747
|
+
f"The action '{action_name}' is not defined in the domain but "
|
|
748
|
+
f"getting triggered by the flow '{step.flow_id}'."
|
|
749
|
+
),
|
|
750
|
+
)
|
|
792
751
|
return ContinueFlowWithNextStep(events=initial_events)
|
|
793
752
|
|
|
794
753
|
|
|
@@ -880,332 +839,3 @@ def _append_global_silence_timeout_event(
|
|
|
880
839
|
AvailableEndpoints.get_instance().interaction_handling.global_silence_timeout,
|
|
881
840
|
)
|
|
882
841
|
)
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
def _reset_slots_covered_by_exit_if(
|
|
886
|
-
exit_conditions: List[str], tracker: DialogueStateTracker
|
|
887
|
-
) -> None:
|
|
888
|
-
"""Reset the slots covered by the exit_if condition."""
|
|
889
|
-
reset_slot_names = get_slot_names_from_exit_conditions(exit_conditions)
|
|
890
|
-
for slot_name in reset_slot_names:
|
|
891
|
-
if tracker.slots.get(slot_name) is not None:
|
|
892
|
-
tracker.update(SlotSet(slot_name, None))
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
async def run_agent(
|
|
896
|
-
initial_events: List[Event],
|
|
897
|
-
stack: DialogueStack,
|
|
898
|
-
step: CallFlowStep,
|
|
899
|
-
tracker: DialogueStateTracker,
|
|
900
|
-
slots: List[Slot],
|
|
901
|
-
) -> FlowStepResult:
|
|
902
|
-
"""Run an agent call step."""
|
|
903
|
-
structlogger.debug(
|
|
904
|
-
"flow.step.run_agent", agent_id=step.call, step_id=step.id, flow_id=step.flow_id
|
|
905
|
-
)
|
|
906
|
-
|
|
907
|
-
final_events = initial_events
|
|
908
|
-
agent_stack_frame = tracker.stack.find_agent_stack_frame_by_agent(
|
|
909
|
-
agent_id=step.call
|
|
910
|
-
)
|
|
911
|
-
|
|
912
|
-
if (
|
|
913
|
-
agent_stack_frame
|
|
914
|
-
and agent_stack_frame == stack.top()
|
|
915
|
-
and agent_stack_frame.state == AgentState.INTERRUPTED
|
|
916
|
-
):
|
|
917
|
-
structlogger.debug(
|
|
918
|
-
"flow.step.run_agent.resume_interrupted_agent",
|
|
919
|
-
agent_id=step.call,
|
|
920
|
-
step_id=step.id,
|
|
921
|
-
flow_id=step.flow_id,
|
|
922
|
-
)
|
|
923
|
-
# The agent was previously interrupted when waiting for user input.
|
|
924
|
-
# Now we're back to the agent execution step and need to output the last message
|
|
925
|
-
# from the agent (user input request) again and wait for user input
|
|
926
|
-
cast(AgentStackFrame, stack.top()).state = AgentState.WAITING_FOR_INPUT
|
|
927
|
-
tracker.update_stack(stack)
|
|
928
|
-
utterance = (
|
|
929
|
-
agent_stack_frame.metadata.get(AGENT_METADATA_AGENT_RESPONSE_KEY, "")
|
|
930
|
-
if agent_stack_frame.metadata
|
|
931
|
-
else ""
|
|
932
|
-
)
|
|
933
|
-
final_events.append(AgentResumed(agent_id=step.call, flow_id=step.flow_id))
|
|
934
|
-
return PauseFlowReturnPrediction(
|
|
935
|
-
_create_agent_request_user_input_prediction(utterance, final_events)
|
|
936
|
-
)
|
|
937
|
-
|
|
938
|
-
agent_input_metadata = (
|
|
939
|
-
agent_stack_frame.metadata
|
|
940
|
-
if agent_stack_frame and agent_stack_frame.metadata
|
|
941
|
-
else {}
|
|
942
|
-
)
|
|
943
|
-
if step.exit_if:
|
|
944
|
-
# TODO: this is a temporary fix to reset the slots covered by the exit_if
|
|
945
|
-
if (
|
|
946
|
-
agent_stack_frame
|
|
947
|
-
and agent_stack_frame.frame_id == f"restart_agent_{step.call}"
|
|
948
|
-
):
|
|
949
|
-
# when restarting an agent, we need to reset the slots covered by the
|
|
950
|
-
# exit_if condition so that the agent can run again.
|
|
951
|
-
_reset_slots_covered_by_exit_if(step.exit_if, tracker)
|
|
952
|
-
agent_input_metadata[AGENT_METADATA_EXIT_IF_KEY] = step.exit_if
|
|
953
|
-
agent_input = AgentInput(
|
|
954
|
-
id=step.call,
|
|
955
|
-
user_message=tracker.latest_message.text or ""
|
|
956
|
-
if tracker.latest_message
|
|
957
|
-
else "",
|
|
958
|
-
slots=_prepare_slots_for_agent(tracker.current_slot_values(), slots),
|
|
959
|
-
conversation_history=tracker_as_readable_transcript(tracker),
|
|
960
|
-
events=tracker.current_state().get("events") or [],
|
|
961
|
-
metadata=agent_input_metadata,
|
|
962
|
-
)
|
|
963
|
-
|
|
964
|
-
final_events.append(AgentStarted(step.call, step.flow_id))
|
|
965
|
-
|
|
966
|
-
protocol_type = get_protocol_type(step, AvailableAgents.get_agent_config(step.call))
|
|
967
|
-
# send the input to the agent and wait for a response
|
|
968
|
-
structlogger.debug(
|
|
969
|
-
"flow.step.run_agent.agent_input",
|
|
970
|
-
agent_name=step.call,
|
|
971
|
-
step_id=step.id,
|
|
972
|
-
flow_id=step.flow_id,
|
|
973
|
-
agent_input=agent_input,
|
|
974
|
-
)
|
|
975
|
-
output: AgentOutput = await _call_agent_with_retry(
|
|
976
|
-
agent_name=step.call,
|
|
977
|
-
protocol_type=protocol_type,
|
|
978
|
-
agent_input=agent_input,
|
|
979
|
-
max_retries=MAX_AGENT_RETRIES,
|
|
980
|
-
)
|
|
981
|
-
structlogger.debug(
|
|
982
|
-
"flow.step.run_agent.agent_response",
|
|
983
|
-
agent_name=step.call,
|
|
984
|
-
step_id=step.id,
|
|
985
|
-
flow_id=step.flow_id,
|
|
986
|
-
agent_response=output,
|
|
987
|
-
)
|
|
988
|
-
|
|
989
|
-
# add the set slot events returned by the agent to the list of final events
|
|
990
|
-
if output.events:
|
|
991
|
-
final_events.extend(output.events)
|
|
992
|
-
|
|
993
|
-
if output.status == AgentStatus.INPUT_REQUIRED:
|
|
994
|
-
output.metadata = output.metadata or {}
|
|
995
|
-
output.metadata[AGENT_METADATA_AGENT_RESPONSE_KEY] = (
|
|
996
|
-
output.response_message or ""
|
|
997
|
-
)
|
|
998
|
-
output.metadata[AGENT_METADATA_TOOL_RESULTS_KEY] = output.tool_results or []
|
|
999
|
-
|
|
1000
|
-
top_stack_frame = stack.top()
|
|
1001
|
-
# update the agent stack frame if it is already on the stack
|
|
1002
|
-
# otherwise push a new one
|
|
1003
|
-
if isinstance(top_stack_frame, AgentStackFrame):
|
|
1004
|
-
top_stack_frame.state = AgentState.WAITING_FOR_INPUT
|
|
1005
|
-
top_stack_frame.metadata = output.metadata
|
|
1006
|
-
top_stack_frame.step_id = step.id
|
|
1007
|
-
top_stack_frame.agent_id = step.call
|
|
1008
|
-
top_stack_frame.flow_id = step.flow_id
|
|
1009
|
-
else:
|
|
1010
|
-
stack.push(
|
|
1011
|
-
AgentStackFrame(
|
|
1012
|
-
flow_id=step.flow_id,
|
|
1013
|
-
agent_id=step.call,
|
|
1014
|
-
state=AgentState.WAITING_FOR_INPUT,
|
|
1015
|
-
step_id=step.id,
|
|
1016
|
-
metadata=output.metadata,
|
|
1017
|
-
)
|
|
1018
|
-
)
|
|
1019
|
-
|
|
1020
|
-
action_prediction = _create_agent_request_user_input_prediction(
|
|
1021
|
-
output.response_message, final_events
|
|
1022
|
-
)
|
|
1023
|
-
return PauseFlowReturnPrediction(action_prediction)
|
|
1024
|
-
elif output.status == AgentStatus.COMPLETED:
|
|
1025
|
-
structlogger.debug(
|
|
1026
|
-
"flow.step.run_agent.completed",
|
|
1027
|
-
agent_name=step.call,
|
|
1028
|
-
step_id=step.id,
|
|
1029
|
-
flow_id=step.flow_id,
|
|
1030
|
-
)
|
|
1031
|
-
remove_agent_stack_frame(stack, step.call)
|
|
1032
|
-
agent_completed_event = AgentCompleted(agent_id=step.call, flow_id=step.flow_id)
|
|
1033
|
-
final_events.append(agent_completed_event)
|
|
1034
|
-
if output.response_message:
|
|
1035
|
-
# for open-ended agents we want to utter the last agent message
|
|
1036
|
-
|
|
1037
|
-
return PauseFlowReturnPrediction(
|
|
1038
|
-
_create_send_text_prediction(output.response_message, final_events)
|
|
1039
|
-
)
|
|
1040
|
-
else:
|
|
1041
|
-
return ContinueFlowWithNextStep(events=final_events)
|
|
1042
|
-
elif output.status == AgentStatus.FATAL_ERROR:
|
|
1043
|
-
# the agent failed, trigger pattern_internal_error
|
|
1044
|
-
structlogger.error(
|
|
1045
|
-
"flow.step.run_agent.fatal_error",
|
|
1046
|
-
agent_name=step.call,
|
|
1047
|
-
step_id=step.id,
|
|
1048
|
-
flow_id=step.flow_id,
|
|
1049
|
-
error_message=output.error_message,
|
|
1050
|
-
)
|
|
1051
|
-
remove_agent_stack_frame(stack, step.call)
|
|
1052
|
-
final_events.append(
|
|
1053
|
-
AgentCancelled(
|
|
1054
|
-
agent_id=step.call, flow_id=step.flow_id, reason=output.error_message
|
|
1055
|
-
)
|
|
1056
|
-
)
|
|
1057
|
-
stack.push(InternalErrorPatternFlowStackFrame())
|
|
1058
|
-
return ContinueFlowWithNextStep(events=final_events)
|
|
1059
|
-
else:
|
|
1060
|
-
structlogger.error(
|
|
1061
|
-
"flow.step.run_agent.unknown_status",
|
|
1062
|
-
agent_name=step.call,
|
|
1063
|
-
step_id=step.id,
|
|
1064
|
-
flow_id=step.flow_id,
|
|
1065
|
-
status=output.status,
|
|
1066
|
-
)
|
|
1067
|
-
remove_agent_stack_frame(stack, step.call)
|
|
1068
|
-
final_events.append(AgentCancelled(agent_id=step.call, flow_id=step.flow_id))
|
|
1069
|
-
stack.push(InternalErrorPatternFlowStackFrame())
|
|
1070
|
-
return ContinueFlowWithNextStep(events=final_events)
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
def remove_agent_stack_frame(stack: DialogueStack, agent_id: str) -> None:
|
|
1074
|
-
"""Finishes the agentic loop by popping the agent stack frame from the
|
|
1075
|
-
provided `stack`. The `tracker.stack` is NOT modified.
|
|
1076
|
-
"""
|
|
1077
|
-
agent_stack_frame = stack.find_agent_stack_frame_by_agent(agent_id)
|
|
1078
|
-
if not agent_stack_frame:
|
|
1079
|
-
return
|
|
1080
|
-
|
|
1081
|
-
while removed_frame := stack.pop():
|
|
1082
|
-
structlogger.debug(
|
|
1083
|
-
"flow_executor.remove_agent_stack_frame",
|
|
1084
|
-
removed_frame=removed_frame,
|
|
1085
|
-
)
|
|
1086
|
-
if removed_frame == agent_stack_frame:
|
|
1087
|
-
break
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
def _create_action_prediction(
|
|
1091
|
-
action_name: str, message: Optional[str], events: Optional[List[Event]]
|
|
1092
|
-
) -> FlowActionPrediction:
|
|
1093
|
-
"""Create a prediction for an action with a text message."""
|
|
1094
|
-
action_metadata = {
|
|
1095
|
-
ACTION_METADATA_MESSAGE_KEY: {
|
|
1096
|
-
ACTION_METADATA_TEXT_KEY: message,
|
|
1097
|
-
}
|
|
1098
|
-
}
|
|
1099
|
-
return FlowActionPrediction(
|
|
1100
|
-
action_name,
|
|
1101
|
-
1.0,
|
|
1102
|
-
events=events if events else [],
|
|
1103
|
-
metadata=action_metadata,
|
|
1104
|
-
)
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
def _create_agent_request_user_input_prediction(
|
|
1108
|
-
message: Optional[str], events: Optional[List[Event]]
|
|
1109
|
-
) -> FlowActionPrediction:
|
|
1110
|
-
"""Create a prediction for requesting user input from the agent
|
|
1111
|
-
and waiting for it.
|
|
1112
|
-
"""
|
|
1113
|
-
return _create_action_prediction(
|
|
1114
|
-
ACTION_AGENT_REQUEST_USER_INPUT_NAME, message, events
|
|
1115
|
-
)
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
def _create_send_text_prediction(
|
|
1119
|
-
message: Optional[str], events: Optional[List[Event]]
|
|
1120
|
-
) -> FlowActionPrediction:
|
|
1121
|
-
"""Create a prediction for sending a text message to the user."""
|
|
1122
|
-
return _create_action_prediction(ACTION_SEND_TEXT_NAME, message, events)
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
async def _call_agent_with_retry(
|
|
1126
|
-
agent_name: str,
|
|
1127
|
-
protocol_type: ProtocolType,
|
|
1128
|
-
agent_input: AgentInput,
|
|
1129
|
-
max_retries: int,
|
|
1130
|
-
) -> AgentOutput:
|
|
1131
|
-
"""Call an agent with retries in case of recoverable errors."""
|
|
1132
|
-
for attempt in range(max_retries):
|
|
1133
|
-
if attempt > 0:
|
|
1134
|
-
structlogger.debug(
|
|
1135
|
-
"flow_executor.call_agent_with_retry.retrying",
|
|
1136
|
-
agent_name=agent_name,
|
|
1137
|
-
attempt=attempt + 1,
|
|
1138
|
-
num_retries=max_retries,
|
|
1139
|
-
)
|
|
1140
|
-
|
|
1141
|
-
agent_response: AgentOutput = await AgentManager().run_agent(
|
|
1142
|
-
agent_name=agent_name, protocol_type=protocol_type, context=agent_input
|
|
1143
|
-
)
|
|
1144
|
-
if agent_response.status != AgentStatus.RECOVERABLE_ERROR:
|
|
1145
|
-
return agent_response
|
|
1146
|
-
|
|
1147
|
-
structlogger.warning(
|
|
1148
|
-
"flow_executor.call_agent_with_retry.recoverable_error",
|
|
1149
|
-
agent_name=agent_name,
|
|
1150
|
-
attempt=attempt + 1,
|
|
1151
|
-
num_retries=max_retries,
|
|
1152
|
-
error_message=agent_response.error_message,
|
|
1153
|
-
)
|
|
1154
|
-
if attempt < max_retries - 1:
|
|
1155
|
-
# exponential backoff - wait longer with each retry
|
|
1156
|
-
# 1 second, 2 seconds, 4 seconds, etc.
|
|
1157
|
-
await asyncio.sleep(min(2**attempt, MAX_AGENT_RETRY_DELAY_SECONDS))
|
|
1158
|
-
|
|
1159
|
-
# we exhausted all retries, return fatal error
|
|
1160
|
-
structlogger.warning(
|
|
1161
|
-
"flow_executor.call_agent_with_retry.exhausted_retries",
|
|
1162
|
-
agent_name=agent_name,
|
|
1163
|
-
num_retries=max_retries,
|
|
1164
|
-
)
|
|
1165
|
-
return AgentOutput(
|
|
1166
|
-
id=agent_name,
|
|
1167
|
-
status=AgentStatus.FATAL_ERROR,
|
|
1168
|
-
error_message="Exhausted all retries for agent call.",
|
|
1169
|
-
)
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
def _prepare_slots_for_agent(
|
|
1173
|
-
slot_values: Dict[str, Any], slot_definitions: List[Slot]
|
|
1174
|
-
) -> List[AgentInputSlot]:
|
|
1175
|
-
"""Prepare the slots for the agent.
|
|
1176
|
-
|
|
1177
|
-
Filter out slots that should not be forwarded to agents.
|
|
1178
|
-
Add the slot type and allowed values to the slot dictionary.
|
|
1179
|
-
|
|
1180
|
-
Args:
|
|
1181
|
-
slot_values: The full slot dictionary from the tracker.
|
|
1182
|
-
slot_definitions: The slot definitions from the domain.
|
|
1183
|
-
|
|
1184
|
-
Returns:
|
|
1185
|
-
A list of slots containing the name, current value, type, and allowed values.
|
|
1186
|
-
"""
|
|
1187
|
-
|
|
1188
|
-
def _get_slot_definition(slot_name: str) -> Optional[Slot]:
|
|
1189
|
-
for slot in slot_definitions:
|
|
1190
|
-
if slot.name == slot_name:
|
|
1191
|
-
return slot
|
|
1192
|
-
return None
|
|
1193
|
-
|
|
1194
|
-
filtered_slots: List[AgentInputSlot] = []
|
|
1195
|
-
for key, value in slot_values.items():
|
|
1196
|
-
if key in SLOTS_EXCLUDED_FOR_AGENT:
|
|
1197
|
-
continue
|
|
1198
|
-
slot_definition = _get_slot_definition(key)
|
|
1199
|
-
if slot_definition:
|
|
1200
|
-
filtered_slots.append(
|
|
1201
|
-
AgentInputSlot(
|
|
1202
|
-
name=key,
|
|
1203
|
-
value=value,
|
|
1204
|
-
type=slot_definition.type_name if slot_definition else "any",
|
|
1205
|
-
allowed_values=slot_definition.values
|
|
1206
|
-
if isinstance(slot_definition, CategoricalSlot)
|
|
1207
|
-
else None,
|
|
1208
|
-
)
|
|
1209
|
-
)
|
|
1210
|
-
|
|
1211
|
-
return filtered_slots
|
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,
|
|
@@ -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,
|