rasa-pro 3.14.0.dev4__py3-none-any.whl → 3.14.0.dev5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rasa-pro might be problematic. Click here for more details.
- rasa/api.py +0 -5
- rasa/builder/README.md +120 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +115 -0
- rasa/builder/copilot/constants.py +25 -0
- rasa/builder/copilot/copilot.py +372 -0
- rasa/builder/copilot/copilot_response_handler.py +487 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
- rasa/builder/copilot/exceptions.py +20 -0
- rasa/builder/copilot/models.py +431 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +726 -0
- rasa/builder/copilot/telemetry.py +195 -0
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +26 -0
- rasa/builder/document_retrieval/constants.py +15 -0
- rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
- rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
- rasa/builder/document_retrieval/models.py +62 -0
- rasa/builder/download.py +140 -0
- rasa/builder/exceptions.py +55 -0
- rasa/builder/guardrails/__init__.py +1 -0
- rasa/builder/guardrails/constants.py +3 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/lakera.py +206 -0
- rasa/builder/guardrails/models.py +199 -0
- rasa/builder/guardrails/utils.py +305 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +234 -0
- rasa/builder/llm_service.py +246 -0
- rasa/builder/logging_utils.py +209 -0
- rasa/builder/main.py +174 -0
- rasa/builder/models.py +197 -0
- rasa/builder/project_generator.py +450 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/scrape_rasa_docs.py +97 -0
- rasa/builder/service.py +1142 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/training_service.py +132 -0
- rasa/builder/validation_service.py +93 -0
- rasa/cli/arguments/default_arguments.py +0 -12
- rasa/cli/arguments/run.py +0 -2
- rasa/cli/dialogue_understanding_test.py +0 -4
- rasa/cli/e2e_test.py +0 -4
- rasa/cli/inspect.py +0 -3
- rasa/cli/llm_fine_tuning.py +0 -5
- rasa/cli/project_templates/basic/actions/action_api.py +15 -0
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
- rasa/cli/project_templates/basic/config.yml +23 -0
- rasa/cli/project_templates/basic/credentials.yml +34 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/data/general/help.yml +6 -0
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/basic/data/system/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
- rasa/cli/project_templates/basic/docs/template.txt +7 -0
- rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
- rasa/cli/project_templates/basic/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
- rasa/cli/project_templates/basic/endpoints.yml +73 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/finance/actions/__init__.py +46 -0
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
- rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
- rasa/cli/project_templates/finance/actions/database.py +277 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
- rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
- rasa/cli/project_templates/finance/config.yml +21 -0
- rasa/cli/project_templates/finance/credentials.yml +32 -0
- rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
- rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
- rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
- rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
- rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
- rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
- rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
- rasa/cli/project_templates/finance/csvs/users.csv +4 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
- rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
- rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
- rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
- rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
- rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
- rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
- rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
- rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
- rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
- rasa/cli/project_templates/finance/endpoints.yml +63 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +25 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +10 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_global.yml +5 -0
- rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +6 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +7 -0
- rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +9 -0
- rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/domain_global.yml +29 -0
- rasa/cli/project_templates/telco/domain/domain_patterns.yml +17 -0
- rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +20 -0
- rasa/cli/project_templates/telco/domain/domain_reset_router.yml +11 -0
- rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +24 -0
- rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +74 -0
- rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +102 -0
- rasa/cli/project_templates/telco/endpoints.yml +60 -0
- rasa/{dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 → cli/project_templates/telco/prompts/command-generator.jinja2} +3 -7
- rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +62 -0
- rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +130 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +68 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +13 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +47 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +21 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +15 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/run.py +0 -4
- rasa/cli/scaffold.py +46 -2
- rasa/cli/shell.py +0 -3
- rasa/constants.py +0 -6
- rasa/core/actions/action.py +10 -56
- rasa/core/agent.py +0 -16
- rasa/core/available_endpoints.py +0 -30
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +4 -4
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/dist/assets/{arc-63212852.js → arc-18042c22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-eecf6b13.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-8f798a9a.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-df71a04c.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9b275968.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-1c669cad.js → createText-2e5e7dd3-31422447.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b1553799.js → edges-e0da2a9e-518a90db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-112388d6.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-fdebec47.js → flowDb-956e92f1-e048c2be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-6280ede1.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-e1dc03e5.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-83f68c51.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-22f8666f.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-ca9e6217.js → graph-14702d8a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-c5ceb692.js → index-3862675e-f18b534b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +1335 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-faa9999b.js → infoDiagram-f8f76790-64154b83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-c4dda8d9.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-d4307784.js → layout-5a3b2123.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-0567aaa7.js → line-2272a8c7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-c11b95cf.js → linear-35bcf273.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-0c7d3ca9.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-34b433fa.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-4cab816e.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-8c22fa9e.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-70ce9e8e.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-fbcd7fc9.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-45f05ea6.js → stateDiagram-587899a1-b8a74083.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-beab1ea6.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-2f29dbd5.js → styles-6aaf32cf-f1d54e34.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-951eac83.js → styles-9a916d00-980de489.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-897fbfdd.js → styles-c10674c1-3c03abde.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-d667fac1.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-e3205144.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-4abeb0e2.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +2 -2
- rasa/core/channels/inspector/index.html +1 -1
- rasa/core/channels/inspector/src/App.tsx +10 -11
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +4 -6
- rasa/core/channels/inspector/src/helpers/formatters.ts +3 -24
- rasa/core/channels/inspector/src/theme/base/styles.ts +1 -19
- rasa/core/channels/inspector/src/types.ts +0 -4
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +49 -29
- rasa/core/channels/voice_stream/genesys.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +5 -3
- rasa/core/constants.py +0 -4
- rasa/core/policies/enterprise_search_policy.py +6 -11
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/flow_executor.py +45 -456
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/unexpected_intent_policy.py +0 -1
- rasa/core/processor.py +15 -18
- rasa/core/run.py +14 -11
- rasa/core/tracker_stores/tracker_store.py +7 -3
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +16 -16
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +1 -21
- rasa/dialogue_understanding/commands/__init__.py +0 -8
- rasa/dialogue_understanding/commands/cancel_flow_command.py +4 -97
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/clarify_command.py +0 -10
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +0 -11
- rasa/dialogue_understanding/commands/start_flow_command.py +8 -164
- rasa/dialogue_understanding/commands/utils.py +2 -6
- rasa/dialogue_understanding/generator/command_parser.py +0 -4
- rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +12 -50
- rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +6 -7
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -41
- rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -163
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +8 -52
- rasa/dialogue_understanding/processor/command_processor.py +15 -31
- rasa/dialogue_understanding/stack/dialogue_stack.py +2 -123
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +0 -57
- rasa/dialogue_understanding/stack/utils.py +2 -17
- rasa/dialogue_understanding_test/du_test_runner.py +2 -7
- rasa/e2e_test/e2e_test_runner.py +2 -12
- rasa/engine/caching.py +2 -2
- rasa/engine/recipes/default_components.py +18 -10
- rasa/engine/storage/local_model_storage.py +45 -2
- rasa/graph_components/validators/default_recipe_validator.py +134 -134
- rasa/hooks.py +5 -5
- rasa/llm_fine_tuning/utils.py +2 -2
- rasa/model_manager/model_api.py +4 -5
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +20 -14
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +1 -1
- rasa/nlu/extractors/extractor.py +1 -2
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_manager.py +2 -11
- rasa/server.py +2 -14
- rasa/shared/constants.py +0 -5
- rasa/shared/core/constants.py +1 -12
- rasa/shared/core/domain.py +58 -11
- rasa/shared/core/events.py +0 -327
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +2 -2
- rasa/shared/core/flows/flows_yaml_schema.json +186 -112
- rasa/shared/core/flows/steps/call.py +5 -53
- rasa/shared/core/flows/validation.py +7 -46
- rasa/shared/core/flows/yaml_flows_io.py +17 -9
- rasa/shared/core/slots.py +6 -2
- rasa/shared/core/trackers.py +2 -5
- rasa/shared/exceptions.py +0 -4
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/utils.py +77 -1
- rasa/shared/providers/_utils.py +60 -44
- rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
- rasa/shared/providers/llm/_base_litellm_client.py +7 -39
- rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
- rasa/shared/providers/llm/litellm_router_llm_client.py +4 -8
- rasa/shared/providers/llm/llm_client.py +3 -7
- rasa/shared/providers/llm/llm_response.py +0 -49
- rasa/shared/providers/llm/self_hosted_llm_client.py +4 -8
- rasa/shared/utils/llm.py +5 -28
- rasa/shared/utils/schemas/events.py +0 -42
- rasa/shared/utils/yaml.py +1 -3
- rasa/studio/upload.py +16 -47
- rasa/telemetry.py +97 -23
- rasa/tracing/instrumentation/instrumentation.py +10 -12
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/utils/common.py +0 -79
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/log_utils.py +6 -2
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/tensorflow/rasa_layers.py +1 -1
- rasa/utils/train_utils.py +15 -15
- rasa/validator.py +21 -19
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +17 -14
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +431 -200
- rasa/agents/agent_factory.py +0 -122
- rasa/agents/agent_manager.py +0 -162
- rasa/agents/constants.py +0 -40
- rasa/agents/core/agent_protocol.py +0 -107
- rasa/agents/core/types.py +0 -70
- rasa/agents/exceptions.py +0 -8
- rasa/agents/protocol/__init__.py +0 -5
- rasa/agents/protocol/a2a/a2a_agent.py +0 -662
- rasa/agents/protocol/mcp/mcp_base_agent.py +0 -676
- rasa/agents/protocol/mcp/mcp_open_agent.py +0 -276
- rasa/agents/protocol/mcp/mcp_task_agent.py +0 -469
- rasa/agents/schemas/__init__.py +0 -12
- rasa/agents/schemas/agent_input.py +0 -38
- rasa/agents/schemas/agent_output.py +0 -26
- rasa/agents/schemas/agent_tool_result.py +0 -51
- rasa/agents/schemas/agent_tool_schema.py +0 -134
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +0 -15
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +0 -17
- rasa/agents/utils.py +0 -72
- rasa/core/available_agents.py +0 -199
- rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-3e293924.js +0 -1353
- rasa/core/policies/flows/mcp_tool_executor.py +0 -277
- rasa/dialogue_understanding/commands/continue_agent_command.py +0 -91
- rasa/dialogue_understanding/commands/restart_agent_command.py +0 -162
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +0 -61
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +0 -81
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +0 -81
- rasa/shared/agents/utils.py +0 -35
- rasa/shared/utils/mcp/server_connection.py +0 -157
- /rasa/{agents → builder}/__init__.py +0 -0
- /rasa/{agents/core → builder/copilot}/__init__.py +0 -0
- /rasa/{agents/protocol/a2a → builder/copilot/prompts}/__init__.py +0 -0
- /rasa/{agents/protocol/mcp → builder/copilot/templated_messages}/__init__.py +0 -0
- /rasa/{agents/templates → builder/document_retrieval}/__init__.py +0 -0
- /rasa/{shared/agents → cli/project_templates/finance/actions/accounts}/__init__.py +0 -0
- /rasa/{shared/utils/mcp → cli/project_templates/finance/actions/cards}/__init__.py +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev4.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
rasa/engine/caching.py
CHANGED
|
@@ -5,7 +5,7 @@ import logging
|
|
|
5
5
|
import shutil
|
|
6
6
|
from datetime import datetime
|
|
7
7
|
from pathlib import Path
|
|
8
|
-
from typing import Any, List, Optional, Text, Tuple
|
|
8
|
+
from typing import Any, List, Optional, Text, Tuple
|
|
9
9
|
|
|
10
10
|
import sqlalchemy as sa
|
|
11
11
|
import sqlalchemy.orm
|
|
@@ -294,7 +294,7 @@ class LocalTrainingCache(TrainingCache):
|
|
|
294
294
|
|
|
295
295
|
def _cache_output_to_disk(
|
|
296
296
|
self, output: Cacheable, model_storage: ModelStorage
|
|
297
|
-
) -> Tuple[Optional[
|
|
297
|
+
) -> Tuple[Optional[Text], Optional[Text]]:
|
|
298
298
|
tempdir_name = rasa.utils.common.get_temp_dir_name()
|
|
299
299
|
|
|
300
300
|
# Use `TempDirectoryPath` instead of `tempfile.TemporaryDirectory` as this
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
|
|
2
2
|
from rasa.core.policies.flow_policy import FlowPolicy
|
|
3
3
|
from rasa.core.policies.intentless_policy import IntentlessPolicy
|
|
4
|
-
from rasa.core.policies.memoization import AugmentedMemoizationPolicy
|
|
4
|
+
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
5
|
+
from rasa.core.policies.rule_policy import RulePolicy
|
|
6
|
+
from rasa.core.policies.ted_policy import TEDPolicy
|
|
7
|
+
from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
5
8
|
from rasa.dialogue_understanding.coexistence.intent_based_router import (
|
|
6
9
|
IntentBasedRouter,
|
|
7
10
|
)
|
|
@@ -10,6 +13,7 @@ from rasa.dialogue_understanding.generator import (
|
|
|
10
13
|
LLMCommandGenerator,
|
|
11
14
|
)
|
|
12
15
|
from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
|
|
16
|
+
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
13
17
|
from rasa.nlu.classifiers.fallback_classifier import FallbackClassifier
|
|
14
18
|
from rasa.nlu.classifiers.keyword_intent_classifier import KeywordIntentClassifier
|
|
15
19
|
from rasa.nlu.classifiers.logistic_regression_classifier import (
|
|
@@ -17,11 +21,14 @@ from rasa.nlu.classifiers.logistic_regression_classifier import (
|
|
|
17
21
|
)
|
|
18
22
|
from rasa.nlu.classifiers.mitie_intent_classifier import MitieIntentClassifier
|
|
19
23
|
from rasa.nlu.classifiers.sklearn_intent_classifier import SklearnIntentClassifier
|
|
24
|
+
from rasa.nlu.extractors.crf_entity_extractor import CRFEntityExtractor
|
|
20
25
|
from rasa.nlu.extractors.duckling_entity_extractor import DucklingEntityExtractor
|
|
21
26
|
from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
|
|
22
27
|
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
23
28
|
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
24
29
|
from rasa.nlu.extractors.spacy_entity_extractor import SpacyEntityExtractor
|
|
30
|
+
from rasa.nlu.featurizers.dense_featurizer.convert_featurizer import ConveRTFeaturizer
|
|
31
|
+
from rasa.nlu.featurizers.dense_featurizer.lm_featurizer import LanguageModelFeaturizer
|
|
25
32
|
from rasa.nlu.featurizers.dense_featurizer.mitie_featurizer import MitieFeaturizer
|
|
26
33
|
from rasa.nlu.featurizers.dense_featurizer.spacy_featurizer import SpacyFeaturizer
|
|
27
34
|
from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import (
|
|
@@ -31,6 +38,7 @@ from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import
|
|
|
31
38
|
LexicalSyntacticFeaturizer,
|
|
32
39
|
)
|
|
33
40
|
from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
|
|
41
|
+
from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
34
42
|
from rasa.nlu.tokenizers.jieba_tokenizer import JiebaTokenizer
|
|
35
43
|
from rasa.nlu.tokenizers.mitie_tokenizer import MitieTokenizer
|
|
36
44
|
from rasa.nlu.tokenizers.spacy_tokenizer import SpacyTokenizer
|
|
@@ -40,7 +48,7 @@ from rasa.nlu.utils.spacy_utils import SpacyNLP
|
|
|
40
48
|
|
|
41
49
|
DEFAULT_COMPONENTS = [
|
|
42
50
|
# Message Classifiers
|
|
43
|
-
|
|
51
|
+
DIETClassifier,
|
|
44
52
|
FallbackClassifier,
|
|
45
53
|
KeywordIntentClassifier,
|
|
46
54
|
MitieIntentClassifier,
|
|
@@ -51,9 +59,9 @@ DEFAULT_COMPONENTS = [
|
|
|
51
59
|
LLMBasedRouter,
|
|
52
60
|
IntentBasedRouter,
|
|
53
61
|
# Response Selectors
|
|
54
|
-
|
|
62
|
+
ResponseSelector,
|
|
55
63
|
# Message Entity Extractors
|
|
56
|
-
|
|
64
|
+
CRFEntityExtractor,
|
|
57
65
|
DucklingEntityExtractor,
|
|
58
66
|
EntitySynonymMapper,
|
|
59
67
|
MitieEntityExtractor,
|
|
@@ -61,11 +69,11 @@ DEFAULT_COMPONENTS = [
|
|
|
61
69
|
RegexEntityExtractor,
|
|
62
70
|
# Message Feauturizers
|
|
63
71
|
LexicalSyntacticFeaturizer,
|
|
64
|
-
|
|
72
|
+
ConveRTFeaturizer,
|
|
65
73
|
MitieFeaturizer,
|
|
66
74
|
SpacyFeaturizer,
|
|
67
75
|
CountVectorsFeaturizer,
|
|
68
|
-
|
|
76
|
+
LanguageModelFeaturizer,
|
|
69
77
|
RegexFeaturizer,
|
|
70
78
|
# Tokenizers
|
|
71
79
|
JiebaTokenizer,
|
|
@@ -76,10 +84,10 @@ DEFAULT_COMPONENTS = [
|
|
|
76
84
|
MitieNLP,
|
|
77
85
|
SpacyNLP,
|
|
78
86
|
# Dialogue Management Policies
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
TEDPolicy,
|
|
88
|
+
UnexpecTEDIntentPolicy,
|
|
89
|
+
RulePolicy,
|
|
90
|
+
MemoizationPolicy,
|
|
83
91
|
AugmentedMemoizationPolicy,
|
|
84
92
|
FlowPolicy,
|
|
85
93
|
EnterpriseSearchPolicy,
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
import os
|
|
4
5
|
import shutil
|
|
5
6
|
import sys
|
|
7
|
+
import tarfile
|
|
6
8
|
import tempfile
|
|
7
9
|
import uuid
|
|
8
10
|
from contextlib import contextmanager
|
|
9
11
|
from datetime import datetime
|
|
10
12
|
from pathlib import Path
|
|
11
|
-
from typing import Generator, Optional, Text, Tuple, Union
|
|
13
|
+
from typing import Callable, Generator, Optional, Text, Tuple, Union
|
|
12
14
|
|
|
13
15
|
from tarsafe import TarSafe
|
|
14
16
|
|
|
@@ -57,6 +59,35 @@ def windows_safe_temporary_directory(
|
|
|
57
59
|
yield temporary_directory
|
|
58
60
|
|
|
59
61
|
|
|
62
|
+
def filter_normpath(member: tarfile.TarInfo, dest_path: str) -> tarfile.TarInfo:
|
|
63
|
+
"""Normalize tar member paths for safe extraction"""
|
|
64
|
+
if member.name:
|
|
65
|
+
member.name = os.path.normpath(member.name)
|
|
66
|
+
return member
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
FilterFunction = Callable[[tarfile.TarInfo, str], Optional[tarfile.TarInfo]]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def create_combined_filter(existing_filter: Optional[FilterFunction]) -> FilterFunction:
|
|
73
|
+
"""Create a filter that combines existing filter with path normalization"""
|
|
74
|
+
|
|
75
|
+
def combined_filter(
|
|
76
|
+
member: tarfile.TarInfo, dest_path: str
|
|
77
|
+
) -> Optional[tarfile.TarInfo]:
|
|
78
|
+
"""Apply existing filter first, then path normalization"""
|
|
79
|
+
if existing_filter is not None:
|
|
80
|
+
filtered_member = existing_filter(member, dest_path)
|
|
81
|
+
if filtered_member is None:
|
|
82
|
+
return None # Rejected by existing filter
|
|
83
|
+
member = filtered_member # Use the filtered result
|
|
84
|
+
|
|
85
|
+
# Apply our path normalization
|
|
86
|
+
return filter_normpath(member, dest_path)
|
|
87
|
+
|
|
88
|
+
return combined_filter
|
|
89
|
+
|
|
90
|
+
|
|
60
91
|
class LocalModelStorage(ModelStorage):
|
|
61
92
|
"""Stores and provides output of `GraphComponents` on local disk."""
|
|
62
93
|
|
|
@@ -122,7 +153,19 @@ class LocalModelStorage(ModelStorage):
|
|
|
122
153
|
# this restriction in environments where it's not possible
|
|
123
154
|
# to override this behavior, mostly for internal policy reasons
|
|
124
155
|
# reference: https://stackoverflow.com/a/49102229
|
|
125
|
-
|
|
156
|
+
try:
|
|
157
|
+
# Use extraction filter to normalize paths for compatibility
|
|
158
|
+
# before trying the \\?\ prefix approach first
|
|
159
|
+
prev_filter = getattr(tar, "extraction_filter", None)
|
|
160
|
+
tar.extraction_filter = create_combined_filter(prev_filter)
|
|
161
|
+
tar.extractall(f"\\\\?\\{temporary_directory}")
|
|
162
|
+
except Exception:
|
|
163
|
+
# Fallback for Python versions with tarfile security fix
|
|
164
|
+
logger.warning(
|
|
165
|
+
"Failed to extract model archive with long path support. "
|
|
166
|
+
"Falling back to regular extraction."
|
|
167
|
+
)
|
|
168
|
+
tar.extractall(temporary_directory)
|
|
126
169
|
else:
|
|
127
170
|
tar.extractall(temporary_directory)
|
|
128
171
|
LocalModelStorage._assert_not_rasa2_archive(temporary_directory)
|
|
@@ -10,40 +10,46 @@ from rasa.core.policies.flow_policy import FlowPolicy
|
|
|
10
10
|
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
11
11
|
from rasa.core.policies.policy import Policy, SupportedData
|
|
12
12
|
from rasa.core.policies.rule_policy import RulePolicy
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
13
|
+
from rasa.core.policies.ted_policy import TEDPolicy
|
|
14
|
+
from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
16
15
|
from rasa.engine.graph import ExecutionContext, GraphComponent, GraphSchema, SchemaNode
|
|
17
16
|
from rasa.engine.storage.resource import Resource
|
|
18
17
|
from rasa.engine.storage.storage import ModelStorage
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
# )
|
|
18
|
+
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
19
|
+
from rasa.nlu.extractors.crf_entity_extractor import (
|
|
20
|
+
CRFEntityExtractor,
|
|
21
|
+
CRFEntityExtractorOptions,
|
|
22
|
+
)
|
|
25
23
|
from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
|
|
26
24
|
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
27
25
|
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
28
26
|
from rasa.nlu.featurizers.featurizer import Featurizer
|
|
29
27
|
from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
|
|
30
|
-
|
|
31
|
-
# from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
28
|
+
from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
32
29
|
from rasa.nlu.tokenizers.tokenizer import Tokenizer
|
|
33
30
|
from rasa.shared.constants import (
|
|
31
|
+
DEFAULT_CONFIG_PATH,
|
|
34
32
|
DOCS_URL_COMPONENTS,
|
|
33
|
+
DOCS_URL_DEFAULT_ACTIONS,
|
|
35
34
|
DOCS_URL_NLU_BASED_POLICIES,
|
|
35
|
+
DOCS_URL_RULES,
|
|
36
36
|
)
|
|
37
|
-
from rasa.shared.core.
|
|
37
|
+
from rasa.shared.core.constants import (
|
|
38
|
+
ACTION_BACK_NAME,
|
|
39
|
+
ACTION_RESTART_NAME,
|
|
40
|
+
USER_INTENT_BACK,
|
|
41
|
+
USER_INTENT_RESTART,
|
|
42
|
+
)
|
|
43
|
+
from rasa.shared.core.domain import Domain, InvalidDomain
|
|
38
44
|
from rasa.shared.core.training_data.structures import RuleStep, StoryGraph
|
|
39
45
|
from rasa.shared.exceptions import InvalidConfigException
|
|
40
46
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
41
47
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
42
48
|
|
|
43
49
|
# TODO: Can we replace this with the registered types from the regitry?
|
|
44
|
-
TRAINABLE_EXTRACTORS = [MitieEntityExtractor
|
|
50
|
+
TRAINABLE_EXTRACTORS = [MitieEntityExtractor, CRFEntityExtractor, DIETClassifier]
|
|
45
51
|
# TODO: replace these once the Recipe is merged (used in tests)
|
|
46
|
-
POLICY_CLASSSES = {MemoizationPolicy, RulePolicy}
|
|
52
|
+
POLICY_CLASSSES = {TEDPolicy, MemoizationPolicy, RulePolicy}
|
|
47
53
|
|
|
48
54
|
|
|
49
55
|
def _types_to_str(types: Iterable[Type]) -> Text:
|
|
@@ -129,17 +135,16 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
129
135
|
"""
|
|
130
136
|
if (
|
|
131
137
|
training_data.response_examples
|
|
132
|
-
|
|
138
|
+
and ResponseSelector not in self._component_types
|
|
133
139
|
):
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
# )
|
|
140
|
+
rasa.shared.utils.io.raise_warning(
|
|
141
|
+
f"You have defined training data with examples for training a response "
|
|
142
|
+
f"selector, but your NLU configuration does not include a response "
|
|
143
|
+
f"selector component. "
|
|
144
|
+
f"To train a model on your response selector data, add a "
|
|
145
|
+
f"'{ResponseSelector.__name__}' to your configuration.",
|
|
146
|
+
docs=DOCS_URL_COMPONENTS,
|
|
147
|
+
)
|
|
143
148
|
|
|
144
149
|
if training_data.entity_examples and self._component_types.isdisjoint(
|
|
145
150
|
TRAINABLE_EXTRACTORS
|
|
@@ -153,21 +158,21 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
153
158
|
docs=DOCS_URL_COMPONENTS,
|
|
154
159
|
)
|
|
155
160
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
161
|
+
if training_data.entity_examples and self._component_types.isdisjoint(
|
|
162
|
+
{DIETClassifier, CRFEntityExtractor}
|
|
163
|
+
):
|
|
164
|
+
if training_data.entity_roles_groups_used():
|
|
165
|
+
rasa.shared.utils.io.raise_warning(
|
|
166
|
+
f"You have defined training data with entities that "
|
|
167
|
+
f"have roles/groups, but your NLU configuration does not "
|
|
168
|
+
f"include a '{DIETClassifier.__name__}' "
|
|
169
|
+
f"or a '{CRFEntityExtractor.__name__}'. "
|
|
170
|
+
f"To train entities that have roles/groups, "
|
|
171
|
+
f"add either '{DIETClassifier.__name__}' "
|
|
172
|
+
f"or '{CRFEntityExtractor.__name__}' to your "
|
|
173
|
+
f"configuration.",
|
|
174
|
+
docs=DOCS_URL_COMPONENTS,
|
|
175
|
+
)
|
|
171
176
|
|
|
172
177
|
if training_data.regex_features and self._component_types.isdisjoint(
|
|
173
178
|
[RegexFeaturizer, RegexEntityExtractor]
|
|
@@ -197,45 +202,45 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
197
202
|
docs=DOCS_URL_COMPONENTS,
|
|
198
203
|
)
|
|
199
204
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
205
|
+
if training_data.lookup_tables:
|
|
206
|
+
if self._component_types.isdisjoint([CRFEntityExtractor, DIETClassifier]):
|
|
207
|
+
rasa.shared.utils.io.raise_warning(
|
|
208
|
+
f"You have defined training data consisting of lookup tables, but "
|
|
209
|
+
f"your NLU configuration does not include any components "
|
|
210
|
+
f"that uses the features created from the lookup table. "
|
|
211
|
+
f"To make use of the features that are created with the "
|
|
212
|
+
f"help of the lookup tables, "
|
|
213
|
+
f"add a '{DIETClassifier.__name__}' or a "
|
|
214
|
+
f"'{CRFEntityExtractor.__name__}' "
|
|
215
|
+
f"with the 'pattern' feature "
|
|
216
|
+
f"to your configuration.",
|
|
217
|
+
docs=DOCS_URL_COMPONENTS,
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
elif CRFEntityExtractor in self._component_types:
|
|
221
|
+
crf_schema_nodes = [
|
|
222
|
+
schema_node
|
|
223
|
+
for schema_node in self._graph_schema.nodes.values()
|
|
224
|
+
if schema_node.uses == CRFEntityExtractor
|
|
225
|
+
]
|
|
226
|
+
has_pattern_feature = any(
|
|
227
|
+
CRFEntityExtractorOptions.PATTERN in feature_list
|
|
228
|
+
for crf in crf_schema_nodes
|
|
229
|
+
for feature_list in crf.config.get("features", [])
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
if not has_pattern_feature:
|
|
233
|
+
rasa.shared.utils.io.raise_warning(
|
|
234
|
+
f"You have defined training data consisting of "
|
|
235
|
+
f"lookup tables, but your NLU configuration's "
|
|
236
|
+
f"'{CRFEntityExtractor.__name__}' "
|
|
237
|
+
f"does not include the "
|
|
238
|
+
f"'pattern' feature. To featurize lookup tables, "
|
|
239
|
+
f"add the 'pattern' feature to the "
|
|
240
|
+
f"'{CRFEntityExtractor.__name__}' "
|
|
241
|
+
"in your configuration.",
|
|
242
|
+
docs=DOCS_URL_COMPONENTS,
|
|
243
|
+
)
|
|
239
244
|
|
|
240
245
|
if (
|
|
241
246
|
training_data.entity_synonyms
|
|
@@ -387,22 +392,21 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
387
392
|
|
|
388
393
|
def _warn_if_no_policy_handles_default_intents(self) -> None:
|
|
389
394
|
"""Warns if there is no policy handling the default intents."""
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
pass
|
|
395
|
+
policies_handling_default_indents = (RulePolicy, FlowPolicy)
|
|
396
|
+
|
|
397
|
+
contains_policy_handling_default_intents = any(
|
|
398
|
+
issubclass(node.uses, policies_handling_default_indents)
|
|
399
|
+
for node in self._policy_schema_nodes
|
|
400
|
+
)
|
|
401
|
+
if not contains_policy_handling_default_intents:
|
|
402
|
+
rasa.shared.utils.io.raise_warning(
|
|
403
|
+
f"'{RulePolicy.__name__}' is not included in the model's "
|
|
404
|
+
f"policy configuration. Default intents such as "
|
|
405
|
+
f"'{USER_INTENT_RESTART}' and '{USER_INTENT_BACK}' will "
|
|
406
|
+
f"not trigger actions '{ACTION_RESTART_NAME}' and "
|
|
407
|
+
f"'{ACTION_BACK_NAME}'.",
|
|
408
|
+
docs=DOCS_URL_DEFAULT_ACTIONS,
|
|
409
|
+
)
|
|
406
410
|
|
|
407
411
|
def _raise_if_domain_contains_form_names_but_no_rule_policy_given(
|
|
408
412
|
self, domain: Domain
|
|
@@ -412,20 +416,19 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
412
416
|
Raises:
|
|
413
417
|
`InvalidConfigException` if domain and rule policies do not match
|
|
414
418
|
"""
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
# )
|
|
419
|
+
contains_rule_policy = any(
|
|
420
|
+
schema_node
|
|
421
|
+
for schema_node in self._graph_schema.nodes.values()
|
|
422
|
+
if issubclass(schema_node.uses, RulePolicy)
|
|
423
|
+
)
|
|
424
|
+
|
|
425
|
+
if domain.form_names and not contains_rule_policy:
|
|
426
|
+
raise InvalidDomain(
|
|
427
|
+
"You have defined a form action, but have not added the "
|
|
428
|
+
f"'{RulePolicy.__name__}' to your policy ensemble. "
|
|
429
|
+
f"Either remove all forms from your domain or add the "
|
|
430
|
+
f"'{RulePolicy.__name__}' to your policy configuration."
|
|
431
|
+
)
|
|
429
432
|
|
|
430
433
|
def _raise_if_dm1_and_calm_policies_used_at_the_same_time(self) -> None:
|
|
431
434
|
"""Validates that there exists a rule policy if forms are defined.
|
|
@@ -444,11 +447,11 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
444
447
|
|
|
445
448
|
# if we are using a flow policy, there shouldn't be any dm1 policies
|
|
446
449
|
dm1_policies = (
|
|
447
|
-
|
|
448
|
-
|
|
450
|
+
RulePolicy,
|
|
451
|
+
TEDPolicy,
|
|
449
452
|
MemoizationPolicy,
|
|
450
453
|
AugmentedMemoizationPolicy,
|
|
451
|
-
|
|
454
|
+
UnexpecTEDIntentPolicy,
|
|
452
455
|
)
|
|
453
456
|
|
|
454
457
|
for schema_node in self._graph_schema.nodes.values():
|
|
@@ -469,11 +472,10 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
469
472
|
`InvalidDomain` if domain and rule policies do not match
|
|
470
473
|
"""
|
|
471
474
|
for schema_node in self._graph_schema.nodes.values():
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
pass
|
|
475
|
+
if schema_node.uses == RulePolicy:
|
|
476
|
+
RulePolicy.raise_if_incompatible_with_domain(
|
|
477
|
+
config=schema_node.config, domain=domain
|
|
478
|
+
)
|
|
477
479
|
|
|
478
480
|
def _validate_policy_priorities(self) -> None:
|
|
479
481
|
"""Checks if every policy has a valid priority value.
|
|
@@ -529,22 +531,20 @@ class DefaultV1RecipeValidator(GraphComponent):
|
|
|
529
531
|
)
|
|
530
532
|
|
|
531
533
|
if consuming_rule_data and not contains_rule_tracker:
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
pass
|
|
534
|
+
rasa.shared.utils.io.raise_warning(
|
|
535
|
+
f"Found a rule-based policy in your configuration but "
|
|
536
|
+
f"no rule-based training data. Please add rule-based "
|
|
537
|
+
f"stories to your training data or "
|
|
538
|
+
f"remove the rule-based policy "
|
|
539
|
+
f"(`{RulePolicy.__name__}`) from your "
|
|
540
|
+
f"your configuration.",
|
|
541
|
+
docs=DOCS_URL_RULES,
|
|
542
|
+
)
|
|
542
543
|
elif not consuming_rule_data and contains_rule_tracker:
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
pass
|
|
544
|
+
rasa.shared.utils.io.raise_warning(
|
|
545
|
+
f"Found rule-based training data but no policy supporting rule-based "
|
|
546
|
+
f"data. Please add `{RulePolicy.__name__}` "
|
|
547
|
+
f"or another rule-supporting "
|
|
548
|
+
f"policy to the `policies` section in `{DEFAULT_CONFIG_PATH}`.",
|
|
549
|
+
docs=DOCS_URL_RULES,
|
|
550
|
+
)
|
rasa/hooks.py
CHANGED
|
@@ -19,7 +19,7 @@ hookimpl = pluggy.HookimplMarker("rasa")
|
|
|
19
19
|
logger = logging.getLogger(__name__)
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
@hookimpl
|
|
22
|
+
@hookimpl # type: ignore[misc]
|
|
23
23
|
def refine_cli(
|
|
24
24
|
subparsers: "SubParsersAction",
|
|
25
25
|
parent_parsers: List[argparse.ArgumentParser],
|
|
@@ -37,7 +37,7 @@ def refine_cli(
|
|
|
37
37
|
return None
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
@hookimpl
|
|
40
|
+
@hookimpl # type: ignore[misc]
|
|
41
41
|
def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Text]:
|
|
42
42
|
from rasa.cli import x as rasa_x
|
|
43
43
|
from rasa.tracing import config
|
|
@@ -59,21 +59,21 @@ def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Tex
|
|
|
59
59
|
return endpoints_file
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
@hookimpl
|
|
62
|
+
@hookimpl # type: ignore[misc]
|
|
63
63
|
def init_telemetry(endpoints_file: Optional[Text]) -> None:
|
|
64
64
|
import rasa.telemetry
|
|
65
65
|
|
|
66
66
|
rasa.telemetry.identify_endpoint_config_traits(endpoints_file)
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
@hookimpl
|
|
69
|
+
@hookimpl # type: ignore[misc]
|
|
70
70
|
def init_managers(endpoints_file: Optional[Text]) -> None:
|
|
71
71
|
from rasa.core.secrets_manager.factory import load_secret_manager
|
|
72
72
|
|
|
73
73
|
load_secret_manager(endpoints_file)
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
@hookimpl
|
|
76
|
+
@hookimpl # type: ignore[misc]
|
|
77
77
|
def create_tracker_store(
|
|
78
78
|
endpoint_config: Union["TrackerStore", "EndpointConfig"],
|
|
79
79
|
domain: "Domain",
|
rasa/llm_fine_tuning/utils.py
CHANGED
|
@@ -61,9 +61,9 @@ def patch_invoke_llm_in_generators(mock_impl: Callable) -> Generator:
|
|
|
61
61
|
try:
|
|
62
62
|
# apply the monkey-patch everywhere
|
|
63
63
|
for cls in originals:
|
|
64
|
-
cls.invoke_llm = mock_impl # type: ignore[
|
|
64
|
+
cls.invoke_llm = mock_impl # type: ignore[assignment]
|
|
65
65
|
yield
|
|
66
66
|
finally:
|
|
67
67
|
# restore originals (even if an exception happened)
|
|
68
68
|
for cls, orig in originals.items():
|
|
69
|
-
cls.invoke_llm = orig # type: ignore[
|
|
69
|
+
cls.invoke_llm = orig # type: ignore[assignment]
|
rasa/model_manager/model_api.py
CHANGED
|
@@ -39,11 +39,9 @@ from rasa.model_manager.trainer_service import (
|
|
|
39
39
|
update_training_status,
|
|
40
40
|
)
|
|
41
41
|
from rasa.model_manager.utils import (
|
|
42
|
-
InvalidPathException,
|
|
43
42
|
get_logs_content,
|
|
44
43
|
logs_base_path,
|
|
45
44
|
models_base_path,
|
|
46
|
-
subpath,
|
|
47
45
|
)
|
|
48
46
|
from rasa.model_manager.warm_rasa_process import (
|
|
49
47
|
initialize_warm_rasa_process,
|
|
@@ -53,6 +51,7 @@ from rasa.server import ErrorResponse
|
|
|
53
51
|
from rasa.shared.exceptions import InvalidConfigException
|
|
54
52
|
from rasa.shared.utils.yaml import dump_obj_as_yaml_to_string
|
|
55
53
|
from rasa.studio.upload import build_calm_import_parts
|
|
54
|
+
from rasa.utils.io import InvalidPathException, subpath
|
|
56
55
|
|
|
57
56
|
dotenv.load_dotenv()
|
|
58
57
|
|
|
@@ -571,10 +570,10 @@ def external_blueprint() -> Blueprint:
|
|
|
571
570
|
"""Create a blueprint for the model manager API."""
|
|
572
571
|
from rasa.core.channels.socketio import SocketBlueprint
|
|
573
572
|
|
|
574
|
-
|
|
575
|
-
bp = SocketBlueprint(
|
|
573
|
+
sio_server = AsyncServer(async_mode="sanic", cors_allowed_origins="*")
|
|
574
|
+
bp = SocketBlueprint(sio_server, "", "model_api_external")
|
|
576
575
|
|
|
577
|
-
create_bridge_server(
|
|
576
|
+
create_bridge_server(sio_server, running_bots)
|
|
578
577
|
|
|
579
578
|
@bp.get("/health")
|
|
580
579
|
async def health(request: Request) -> response.HTTPResponse:
|
|
@@ -15,11 +15,11 @@ from rasa.model_manager import config
|
|
|
15
15
|
from rasa.model_manager.utils import (
|
|
16
16
|
logs_path,
|
|
17
17
|
models_base_path,
|
|
18
|
-
subpath,
|
|
19
18
|
write_encoded_data_to_file,
|
|
20
19
|
)
|
|
21
20
|
from rasa.model_manager.warm_rasa_process import start_rasa_process
|
|
22
21
|
from rasa.studio.prompts import handle_prompts
|
|
22
|
+
from rasa.utils.io import subpath
|
|
23
23
|
|
|
24
24
|
structlogger = structlog.get_logger()
|
|
25
25
|
|