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
|
@@ -17,9 +17,9 @@ from typing import (
|
|
|
17
17
|
Optional,
|
|
18
18
|
Text,
|
|
19
19
|
Tuple,
|
|
20
|
+
Union,
|
|
20
21
|
)
|
|
21
22
|
|
|
22
|
-
import orjson
|
|
23
23
|
import structlog
|
|
24
24
|
|
|
25
25
|
from rasa.core.channels import UserMessage
|
|
@@ -47,7 +47,6 @@ if TYPE_CHECKING:
|
|
|
47
47
|
from sanic import Sanic, Websocket # type: ignore[attr-defined]
|
|
48
48
|
from socketio import AsyncServer
|
|
49
49
|
|
|
50
|
-
from rasa.core.channels.channel import UserMessage
|
|
51
50
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
52
51
|
|
|
53
52
|
|
|
@@ -56,7 +55,7 @@ structlogger = structlog.get_logger()
|
|
|
56
55
|
|
|
57
56
|
def tracker_as_dump(
|
|
58
57
|
tracker: "DialogueStateTracker", latency: Optional[float] = None
|
|
59
|
-
) -> str:
|
|
58
|
+
) -> Dict[str, Any]:
|
|
60
59
|
"""Create a dump of the tracker state."""
|
|
61
60
|
from rasa.shared.core.trackers import get_trackers_for_conversation_sessions
|
|
62
61
|
|
|
@@ -67,11 +66,14 @@ def tracker_as_dump(
|
|
|
67
66
|
else:
|
|
68
67
|
last_tracker = multiple_tracker_sessions[-1]
|
|
69
68
|
|
|
69
|
+
# TODO: this is a bug: the bridge converts this back to json, but it
|
|
70
|
+
# should be json in the first place
|
|
70
71
|
state = last_tracker.current_state(EventVerbosity.AFTER_RESTART)
|
|
71
72
|
|
|
72
73
|
if latency is not None:
|
|
73
74
|
state["latency"] = {"rasa_processing_latency_ms": latency}
|
|
74
|
-
|
|
75
|
+
|
|
76
|
+
return state
|
|
75
77
|
|
|
76
78
|
|
|
77
79
|
def does_need_action_prediction(tracker: "DialogueStateTracker") -> bool:
|
|
@@ -100,12 +102,12 @@ class StudioTrackerUpdatePlugin:
|
|
|
100
102
|
"""Remove tasks that have already completed."""
|
|
101
103
|
self.tasks = [task for task in self.tasks if not task.done()]
|
|
102
104
|
|
|
103
|
-
@hookimpl
|
|
105
|
+
@hookimpl # type: ignore[misc]
|
|
104
106
|
def after_new_user_message(self, tracker: "DialogueStateTracker") -> None:
|
|
105
107
|
"""Triggers a tracker update notification after a new user message."""
|
|
106
108
|
self.handle_tracker_update(tracker)
|
|
107
109
|
|
|
108
|
-
@hookimpl
|
|
110
|
+
@hookimpl # type: ignore[misc]
|
|
109
111
|
def after_action_executed(self, tracker: "DialogueStateTracker") -> None:
|
|
110
112
|
"""Triggers a tracker update notification after an action is executed."""
|
|
111
113
|
self.handle_tracker_update(tracker)
|
|
@@ -125,7 +127,7 @@ class StudioTrackerUpdatePlugin:
|
|
|
125
127
|
self.tasks.append(task)
|
|
126
128
|
self._cleanup_tasks()
|
|
127
129
|
|
|
128
|
-
@hookimpl
|
|
130
|
+
@hookimpl # type: ignore[misc]
|
|
129
131
|
def after_server_stop(self) -> None:
|
|
130
132
|
"""Cancels all remaining tasks when the server stops."""
|
|
131
133
|
self._cancel_tasks()
|
|
@@ -153,6 +155,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
153
155
|
jwt_key: Optional[Text] = None,
|
|
154
156
|
jwt_method: Optional[Text] = "HS256",
|
|
155
157
|
metadata_key: Optional[Text] = "metadata",
|
|
158
|
+
enable_silence_timeout: bool = False,
|
|
156
159
|
) -> None:
|
|
157
160
|
"""Creates a `StudioChatInput` object."""
|
|
158
161
|
from rasa.core.agent import Agent
|
|
@@ -170,6 +173,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
170
173
|
jwt_key=jwt_key,
|
|
171
174
|
jwt_method=jwt_method,
|
|
172
175
|
metadata_key=metadata_key,
|
|
176
|
+
enable_silence_timeout=enable_silence_timeout,
|
|
173
177
|
)
|
|
174
178
|
|
|
175
179
|
# Initialize the Voice Input Channel
|
|
@@ -210,14 +214,15 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
210
214
|
jwt_key=credentials.get("jwt_key"),
|
|
211
215
|
jwt_method=credentials.get("jwt_method", "HS256"),
|
|
212
216
|
metadata_key=credentials.get("metadata_key", "metadata"),
|
|
217
|
+
enable_silence_timeout=credentials.get("enable_silence_timeout", False),
|
|
213
218
|
)
|
|
214
219
|
|
|
215
|
-
async def emit(self, event: str, data: str, room: str) -> None:
|
|
220
|
+
async def emit(self, event: str, data: Union[Dict, str], room: str) -> None:
|
|
216
221
|
"""Emits an event to the websocket."""
|
|
217
|
-
if not self.
|
|
222
|
+
if not self.sio_server:
|
|
218
223
|
structlogger.error("studio_chat.emit.sio_not_initialized")
|
|
219
224
|
return
|
|
220
|
-
await self.
|
|
225
|
+
await self.sio_server.emit(event, data, room=room)
|
|
221
226
|
|
|
222
227
|
def _register_tracker_update_hook(self) -> None:
|
|
223
228
|
plugin_manager().register(StudioTrackerUpdatePlugin(self))
|
|
@@ -250,15 +255,22 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
250
255
|
|
|
251
256
|
async def on_message_proxy(
|
|
252
257
|
self,
|
|
253
|
-
on_new_message: Callable[[
|
|
254
|
-
message:
|
|
258
|
+
on_new_message: Callable[[UserMessage], Awaitable[Any]],
|
|
259
|
+
message: UserMessage,
|
|
255
260
|
) -> None:
|
|
256
261
|
"""Proxies the on_new_message call to the underlying channel.
|
|
257
262
|
|
|
258
263
|
Triggers a tracker update notification after processing the message.
|
|
259
264
|
"""
|
|
260
265
|
self._record_turn_start_time(message.sender_id)
|
|
261
|
-
|
|
266
|
+
try:
|
|
267
|
+
await on_new_message(message)
|
|
268
|
+
except Exception as e:
|
|
269
|
+
structlogger.exception(
|
|
270
|
+
"studio_chat.on_new_message.error",
|
|
271
|
+
error=str(e),
|
|
272
|
+
sender_id=message.sender_id,
|
|
273
|
+
)
|
|
262
274
|
|
|
263
275
|
if not self.agent or not self.agent.is_ready():
|
|
264
276
|
structlogger.error("studio_chat.on_message_proxy.agent_not_initialized")
|
|
@@ -377,7 +389,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
377
389
|
call_state.is_bot_speaking = True
|
|
378
390
|
return ContinueConversationAction()
|
|
379
391
|
|
|
380
|
-
def
|
|
392
|
+
def _create_output_channel(
|
|
381
393
|
self, voice_websocket: "Websocket", tts_engine: TTSEngine
|
|
382
394
|
) -> VoiceOutputChannel:
|
|
383
395
|
"""Create a voice output channel."""
|
|
@@ -407,7 +419,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
407
419
|
|
|
408
420
|
# Create a websocket adapter for this connection
|
|
409
421
|
ws_adapter = SocketIOVoiceWebsocketAdapter(
|
|
410
|
-
|
|
422
|
+
sio_server=self.sio_server,
|
|
411
423
|
session_id=session_id,
|
|
412
424
|
sid=sid,
|
|
413
425
|
bot_message_evt=self.bot_message_evt,
|
|
@@ -446,7 +458,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
446
458
|
if sid in self.active_connections:
|
|
447
459
|
del self.active_connections[sid]
|
|
448
460
|
|
|
449
|
-
@hookimpl
|
|
461
|
+
@hookimpl # type: ignore[misc]
|
|
450
462
|
def after_server_stop(self) -> None:
|
|
451
463
|
"""Cleanup background tasks and active connections when the server stops."""
|
|
452
464
|
structlogger.info("studio_chat.after_server_stop.cleanup")
|
|
@@ -455,12 +467,12 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
455
467
|
task.cancel()
|
|
456
468
|
|
|
457
469
|
def blueprint(
|
|
458
|
-
self, on_new_message: Callable[[
|
|
470
|
+
self, on_new_message: Callable[[UserMessage], Awaitable[Any]]
|
|
459
471
|
) -> SocketBlueprint:
|
|
460
472
|
proxied_on_message = partial(self.on_message_proxy, on_new_message)
|
|
461
473
|
socket_blueprint = super().blueprint(proxied_on_message)
|
|
462
474
|
|
|
463
|
-
if not self.
|
|
475
|
+
if not self.sio_server:
|
|
464
476
|
structlogger.error("studio_chat.blueprint.sio_not_initialized")
|
|
465
477
|
return socket_blueprint
|
|
466
478
|
|
|
@@ -470,12 +482,12 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
470
482
|
) -> None:
|
|
471
483
|
self.agent = app.ctx.agent
|
|
472
484
|
|
|
473
|
-
@self.
|
|
485
|
+
@self.sio_server.on("disconnect", namespace=self.namespace)
|
|
474
486
|
async def disconnect(sid: Text) -> None:
|
|
475
487
|
structlogger.debug("studio_chat.sio.disconnect", sid=sid)
|
|
476
488
|
self._cleanup_tasks_for_sid(sid)
|
|
477
489
|
|
|
478
|
-
@self.
|
|
490
|
+
@self.sio_server.on("session_request", namespace=self.namespace)
|
|
479
491
|
async def session_request(sid: Text, data: Optional[Dict]) -> None:
|
|
480
492
|
"""Overrides the base SocketIOInput session_request handler.
|
|
481
493
|
|
|
@@ -495,7 +507,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
495
507
|
if data and data.get("is_voice", False):
|
|
496
508
|
self._start_voice_session(data["session_id"], sid, proxied_on_message)
|
|
497
509
|
|
|
498
|
-
@self.
|
|
510
|
+
@self.sio_server.on(self.user_message_evt, namespace=self.namespace)
|
|
499
511
|
async def handle_message(sid: Text, data: Dict) -> None:
|
|
500
512
|
"""Overrides the base SocketIOInput handle_message handler."""
|
|
501
513
|
# Handle voice messages
|
|
@@ -506,10 +518,18 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
506
518
|
ws.put_message(data)
|
|
507
519
|
return
|
|
508
520
|
|
|
509
|
-
|
|
510
|
-
|
|
521
|
+
try:
|
|
522
|
+
# Handle text messages
|
|
523
|
+
await self.handle_user_message(sid, data, proxied_on_message)
|
|
524
|
+
except Exception as e:
|
|
525
|
+
structlogger.exception(
|
|
526
|
+
"studio_chat.sio.handle_message.error",
|
|
527
|
+
error=str(e),
|
|
528
|
+
sid=sid,
|
|
529
|
+
)
|
|
530
|
+
await self.emit("error", str(e), room=sid)
|
|
511
531
|
|
|
512
|
-
@self.
|
|
532
|
+
@self.sio_server.on("update_tracker", namespace=self.namespace)
|
|
513
533
|
async def on_update_tracker(sid: Text, data: Dict) -> None:
|
|
514
534
|
await self.handle_tracker_update(sid, data)
|
|
515
535
|
|
|
@@ -531,7 +551,7 @@ class StudioVoiceOutputChannel(VoiceOutputChannel):
|
|
|
531
551
|
|
|
532
552
|
def create_marker_message(self, recipient_id: str) -> Tuple[str, str]:
|
|
533
553
|
message_id = uuid.uuid4().hex
|
|
534
|
-
marker_data
|
|
554
|
+
marker_data = {"marker": message_id}
|
|
535
555
|
|
|
536
556
|
# Include comprehensive latency information if available
|
|
537
557
|
latency_data = {
|
|
@@ -546,7 +566,7 @@ class StudioVoiceOutputChannel(VoiceOutputChannel):
|
|
|
546
566
|
|
|
547
567
|
# Add latency data to marker if any metrics are available
|
|
548
568
|
if latency_data:
|
|
549
|
-
marker_data["latency"] = latency_data
|
|
569
|
+
marker_data["latency"] = latency_data # type: ignore[assignment]
|
|
550
570
|
|
|
551
571
|
return json.dumps(marker_data), message_id
|
|
552
572
|
|
|
@@ -555,9 +575,9 @@ class SocketIOVoiceWebsocketAdapter:
|
|
|
555
575
|
"""Adapter to make Socket.IO work like a Sanic WebSocket for voice channels."""
|
|
556
576
|
|
|
557
577
|
def __init__(
|
|
558
|
-
self,
|
|
578
|
+
self, sio_server: "AsyncServer", session_id: str, sid: str, bot_message_evt: str
|
|
559
579
|
) -> None:
|
|
560
|
-
self.
|
|
580
|
+
self.sio_server = sio_server
|
|
561
581
|
self.bot_message_evt = bot_message_evt
|
|
562
582
|
self._closed = False
|
|
563
583
|
self._receive_queue: asyncio.Queue[Any] = asyncio.Queue()
|
|
@@ -576,7 +596,7 @@ class SocketIOVoiceWebsocketAdapter:
|
|
|
576
596
|
async def send(self, data: Any) -> None:
|
|
577
597
|
"""Send data to the client."""
|
|
578
598
|
if not self.closed:
|
|
579
|
-
await self.
|
|
599
|
+
await self.sio_server.emit(self.bot_message_evt, data, room=self.sid)
|
|
580
600
|
|
|
581
601
|
async def recv(self) -> Any:
|
|
582
602
|
"""Receive data from the client."""
|
|
@@ -274,7 +274,7 @@ class GenesysInputChannel(VoiceInputChannel):
|
|
|
274
274
|
|
|
275
275
|
def handle_ping(self, ws: Websocket, message: dict) -> None:
|
|
276
276
|
"""Handle ping message from Genesys."""
|
|
277
|
-
response
|
|
277
|
+
response = {
|
|
278
278
|
"version": "2",
|
|
279
279
|
"type": "pong",
|
|
280
280
|
"seq": self._get_next_sequence(),
|
|
@@ -11,6 +11,11 @@ from sanic import Websocket # type: ignore
|
|
|
11
11
|
from sanic.exceptions import ServerError, WebsocketClosed
|
|
12
12
|
|
|
13
13
|
from rasa.core.channels import InputChannel, OutputChannel, UserMessage
|
|
14
|
+
from rasa.core.channels.constants import (
|
|
15
|
+
USER_CONVERSATION_SESSION_END,
|
|
16
|
+
USER_CONVERSATION_SESSION_START,
|
|
17
|
+
USER_CONVERSATION_SILENCE_TIMEOUT,
|
|
18
|
+
)
|
|
14
19
|
from rasa.core.channels.voice_ready.utils import (
|
|
15
20
|
CallParameters,
|
|
16
21
|
validate_voice_license_scope,
|
|
@@ -48,9 +53,6 @@ from rasa.utils.io import remove_emojis
|
|
|
48
53
|
logger = structlog.get_logger(__name__)
|
|
49
54
|
|
|
50
55
|
# define constants for the voice channel
|
|
51
|
-
USER_CONVERSATION_SESSION_END = "/session_end"
|
|
52
|
-
USER_CONVERSATION_SESSION_START = "/session_start"
|
|
53
|
-
USER_CONVERSATION_SILENCE_TIMEOUT = "/silence_timeout"
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
@dataclass
|
rasa/core/constants.py
CHANGED
|
@@ -31,10 +31,6 @@ BEARER_TOKEN_PREFIX = "Bearer "
|
|
|
31
31
|
# The lowest priority is intended to be used by machine learning policies.
|
|
32
32
|
DEFAULT_POLICY_PRIORITY = 1
|
|
33
33
|
|
|
34
|
-
DEFAULT_SUB_AGENTS = "sub_agents"
|
|
35
|
-
|
|
36
|
-
MCP_SERVERS_KEY = "mcp_servers"
|
|
37
|
-
|
|
38
34
|
# The priority of intent-prediction policies.
|
|
39
35
|
# This should be below all rule based policies but higher than ML
|
|
40
36
|
# based policies. This enables a loop inside ensemble where if none
|
|
@@ -63,8 +63,6 @@ from rasa.shared.constants import (
|
|
|
63
63
|
)
|
|
64
64
|
from rasa.shared.core.constants import (
|
|
65
65
|
ACTION_CANCEL_FLOW,
|
|
66
|
-
ACTION_METADATA_MESSAGE_KEY,
|
|
67
|
-
ACTION_METADATA_TEXT_KEY,
|
|
68
66
|
ACTION_SEND_TEXT_NAME,
|
|
69
67
|
DEFAULT_SLOT_NAMES,
|
|
70
68
|
)
|
|
@@ -587,8 +585,8 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
587
585
|
return self._create_prediction_internal_error(domain, tracker)
|
|
588
586
|
|
|
589
587
|
action_metadata = {
|
|
590
|
-
|
|
591
|
-
|
|
588
|
+
"message": {
|
|
589
|
+
"text": response,
|
|
592
590
|
SEARCH_RESULTS_METADATA_KEY: [
|
|
593
591
|
result.text for result in documents.results
|
|
594
592
|
],
|
|
@@ -783,7 +781,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
783
781
|
if not os.path.exists(docs_folder) or not os.path.isdir(docs_folder):
|
|
784
782
|
error_message = (
|
|
785
783
|
f"Document source directory does not exist or is not a "
|
|
786
|
-
f"directory: '{docs_folder}'. "
|
|
784
|
+
f"directory: '{os.path.abspath(docs_folder)}'. "
|
|
787
785
|
"Please specify a valid path to the documents source directory in the "
|
|
788
786
|
"vector_store configuration."
|
|
789
787
|
)
|
|
@@ -1132,8 +1130,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1132
1130
|
embeddings_config: Dict[Text, Any],
|
|
1133
1131
|
log_source_method: str,
|
|
1134
1132
|
) -> None:
|
|
1135
|
-
"""
|
|
1136
|
-
Perform the health checks using resolved LLM and embeddings configurations.
|
|
1133
|
+
"""Perform the health checks using resolved LLM and embeddings configurations.
|
|
1137
1134
|
Resolved means the configuration is either:
|
|
1138
1135
|
- A reference to a model group that has already been expanded into
|
|
1139
1136
|
its corresponding configuration using the information from
|
|
@@ -1162,8 +1159,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1162
1159
|
|
|
1163
1160
|
@classmethod
|
|
1164
1161
|
def get_system_default_prompt_based_on_config(cls, config: Dict[str, Any]) -> str:
|
|
1165
|
-
"""
|
|
1166
|
-
Resolves the default prompt template for Enterprise Search Policy based on
|
|
1162
|
+
"""Resolves the default prompt template for Enterprise Search Policy based on
|
|
1167
1163
|
the component's configuration.
|
|
1168
1164
|
|
|
1169
1165
|
- The old prompt is selected when both citation and relevancy check are either
|
|
@@ -1194,8 +1190,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1194
1190
|
relevancy_check_enabled: bool,
|
|
1195
1191
|
citation_enabled: bool,
|
|
1196
1192
|
) -> str:
|
|
1197
|
-
"""
|
|
1198
|
-
Returns the appropriate default prompt template based on the feature flags.
|
|
1193
|
+
"""Returns the appropriate default prompt template based on the feature flags.
|
|
1199
1194
|
|
|
1200
1195
|
The selection follows this priority:
|
|
1201
1196
|
1. If relevancy check is enabled, return the prompt that includes both relevancy
|
|
@@ -137,8 +137,8 @@ class FlowPolicy(Policy):
|
|
|
137
137
|
|
|
138
138
|
# create executor and predict next action
|
|
139
139
|
try:
|
|
140
|
-
prediction =
|
|
141
|
-
tracker, domain.action_names_or_texts, flows
|
|
140
|
+
prediction = flow_executor.advance_flows(
|
|
141
|
+
tracker, domain.action_names_or_texts, flows
|
|
142
142
|
)
|
|
143
143
|
return self._create_prediction_result(
|
|
144
144
|
prediction.action_name,
|
|
@@ -164,8 +164,8 @@ class FlowPolicy(Policy):
|
|
|
164
164
|
# we retry, with the internal error frame on the stack
|
|
165
165
|
events = tracker.create_stack_updated_events(updated_stack)
|
|
166
166
|
tracker.update_with_events(events)
|
|
167
|
-
prediction =
|
|
168
|
-
tracker, domain.action_names_or_texts, flows
|
|
167
|
+
prediction = flow_executor.advance_flows(
|
|
168
|
+
tracker, domain.action_names_or_texts, flows
|
|
169
169
|
)
|
|
170
170
|
collected_events = events + (prediction.events or [])
|
|
171
171
|
return self._create_prediction_result(
|