rasa-pro 3.13.12__py3-none-any.whl → 3.14.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rasa-pro might be problematic. Click here for more details.
- rasa/__main__.py +15 -3
- rasa/agents/__init__.py +0 -0
- rasa/agents/agent_factory.py +122 -0
- rasa/agents/agent_manager.py +213 -0
- rasa/agents/constants.py +43 -0
- rasa/agents/core/__init__.py +0 -0
- rasa/agents/core/agent_protocol.py +107 -0
- rasa/agents/core/types.py +81 -0
- rasa/agents/exceptions.py +38 -0
- rasa/agents/protocol/__init__.py +5 -0
- rasa/agents/protocol/a2a/__init__.py +0 -0
- rasa/agents/protocol/a2a/a2a_agent.py +889 -0
- rasa/agents/protocol/mcp/__init__.py +0 -0
- rasa/agents/protocol/mcp/mcp_base_agent.py +778 -0
- rasa/agents/protocol/mcp/mcp_open_agent.py +327 -0
- rasa/agents/protocol/mcp/mcp_task_agent.py +522 -0
- rasa/agents/schemas/__init__.py +13 -0
- rasa/agents/schemas/agent_input.py +38 -0
- rasa/agents/schemas/agent_output.py +26 -0
- rasa/agents/schemas/agent_tool_result.py +65 -0
- rasa/agents/schemas/agent_tool_schema.py +186 -0
- rasa/agents/templates/__init__.py +0 -0
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +20 -0
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +22 -0
- rasa/agents/utils.py +228 -0
- rasa/agents/validation.py +538 -0
- rasa/api.py +23 -9
- rasa/builder/README.md +120 -0
- rasa/builder/__init__.py +0 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +96 -0
- rasa/builder/copilot/__init__.py +0 -0
- rasa/builder/copilot/constants.py +38 -0
- rasa/builder/copilot/copilot.py +562 -0
- rasa/builder/copilot/copilot_response_handler.py +522 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +81 -0
- rasa/builder/copilot/exceptions.py +32 -0
- rasa/builder/copilot/models.py +690 -0
- rasa/builder/copilot/prompts/__init__.py +0 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +787 -0
- rasa/builder/copilot/prompts/copilot_training_error_handler_prompt.jinja2 +53 -0
- rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +91 -0
- rasa/builder/copilot/signing.py +305 -0
- rasa/builder/copilot/telemetry.py +234 -0
- rasa/builder/copilot/templated_messages/__init__.py +0 -0
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +41 -0
- rasa/builder/copilot/templated_messages/copilot_welcome_messages.yml +56 -0
- rasa/builder/document_retrieval/__init__.py +0 -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 +91 -0
- rasa/builder/guardrails/__init__.py +1 -0
- rasa/builder/guardrails/clients.py +256 -0
- rasa/builder/guardrails/constants.py +12 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/models.py +266 -0
- rasa/builder/guardrails/policy_checker.py +324 -0
- rasa/builder/guardrails/store.py +238 -0
- rasa/builder/guardrails/utils.py +94 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +609 -0
- rasa/builder/llm_service.py +273 -0
- rasa/builder/logging_utils.py +265 -0
- rasa/builder/main.py +234 -0
- rasa/builder/models.py +229 -0
- rasa/builder/project_generator.py +463 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/service.py +1367 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/template_cache.py +69 -0
- rasa/builder/training_service.py +188 -0
- rasa/builder/validation_service.py +101 -0
- rasa/cli/arguments/data.py +9 -0
- rasa/cli/arguments/default_arguments.py +12 -0
- rasa/cli/arguments/run.py +2 -0
- rasa/cli/arguments/train.py +2 -0
- rasa/cli/data.py +78 -10
- rasa/cli/dialogue_understanding_test.py +11 -7
- rasa/cli/e2e_test.py +10 -6
- rasa/cli/evaluate.py +4 -2
- rasa/cli/export.py +5 -2
- rasa/cli/inspect.py +9 -4
- rasa/cli/interactive.py +8 -4
- rasa/cli/llm_fine_tuning.py +12 -6
- rasa/cli/project_templates/basic/README.md +23 -0
- rasa/cli/project_templates/basic/actions/__init__ +0 -0
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +40 -0
- rasa/cli/project_templates/basic/actions/actions.md +10 -0
- rasa/cli/project_templates/basic/config.yml +29 -0
- rasa/cli/project_templates/basic/credentials.yml +33 -0
- rasa/cli/project_templates/basic/data/data.md +8 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +21 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +6 -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/show_faqs.yml +6 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_cannot_handle.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/docs.md +5 -0
- rasa/cli/project_templates/basic/docs/template.txt +28 -0
- rasa/cli/project_templates/basic/domain/domain.md +11 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +9 -0
- rasa/cli/project_templates/basic/domain/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +21 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff.yml +32 -0
- rasa/cli/project_templates/basic/domain/general/show_faqs.yml +14 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_session_start.yml +19 -0
- rasa/cli/project_templates/basic/endpoints.yml +67 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/help.yml +8 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/human_handoff.yml +41 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/patterns.yml +32 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/show_faqs.yml +8 -0
- rasa/cli/project_templates/default/config.yml +4 -0
- rasa/cli/project_templates/default/endpoints.yml +4 -0
- rasa/cli/project_templates/defaults.py +1 -0
- rasa/cli/project_templates/finance/README.md +26 -0
- rasa/cli/project_templates/finance/actions/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
- rasa/cli/project_templates/finance/actions/actions.md +15 -0
- rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/cards/check_that_card_exists.py +21 -0
- rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
- rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
- rasa/cli/project_templates/finance/actions/db.py +117 -0
- rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
- rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
- rasa/cli/project_templates/finance/config.yml +29 -0
- rasa/cli/project_templates/finance/credentials.yml +33 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
- rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
- rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +45 -0
- rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
- rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
- rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
- rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
- rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
- rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
- rasa/cli/project_templates/finance/data/data.md +14 -0
- rasa/cli/project_templates/finance/data/general/bot_challenge.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 +6 -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_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/transfers/check_transfer_limit.yml +18 -0
- rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
- rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +34 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
- rasa/cli/project_templates/finance/db/cards.json +18 -0
- rasa/cli/project_templates/finance/db/contacts.json +10 -0
- rasa/cli/project_templates/finance/db/my_account.json +6 -0
- rasa/cli/project_templates/finance/db/transactions.json +22 -0
- rasa/cli/project_templates/finance/docs/docs.md +8 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +15 -0
- rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
- rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
- rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +44 -0
- rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
- rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
- rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
- rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
- rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
- rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
- rasa/cli/project_templates/finance/domain/domain.md +18 -0
- rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
- rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +8 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +0 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +31 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +39 -0
- rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
- rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
- rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +221 -0
- rasa/cli/project_templates/finance/endpoints.yml +67 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/accounts/download_statements.yml +43 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/cards/block_card.yml +55 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/patterns.yml +22 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/transfers/transfer_money.yml +56 -0
- rasa/cli/project_templates/telco/README.md +25 -0
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions.md +12 -0
- rasa/cli/project_templates/telco/actions/billing/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/billing/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/telco/actions/network/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/network/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/network/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/network/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +29 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +19 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/billing/flow_understand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/data.md +11 -0
- rasa/cli/project_templates/telco/data/general/bot_challenge.yml +6 -0
- rasa/cli/project_templates/telco/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/telco/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/telco/data/general/hello.yml +6 -0
- rasa/cli/project_templates/telco/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/telco/data/general/patterns.yml +30 -0
- rasa/cli/project_templates/telco/data/network/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/network/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/network/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/docs/docs.md +8 -0
- rasa/cli/project_templates/telco/docs/network/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/network/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/network/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/billing/understand_bill.yml +102 -0
- rasa/cli/project_templates/telco/domain/domain.md +13 -0
- rasa/cli/project_templates/telco/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/telco/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/telco/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/telco/domain/general/hello.yml +5 -0
- rasa/cli/project_templates/telco/domain/general/human_handoff.yml +26 -0
- rasa/cli/project_templates/telco/domain/general/patterns.yml +33 -0
- rasa/cli/project_templates/telco/domain/network/reboot_router.yml +21 -0
- rasa/cli/project_templates/telco/domain/network/reset_router.yml +12 -0
- rasa/cli/project_templates/telco/domain/network/run_speed_test.yml +25 -0
- rasa/cli/project_templates/telco/domain/network/solve_internet_issue.yml +74 -0
- rasa/cli/project_templates/telco/domain/shared.yml +129 -0
- rasa/cli/project_templates/telco/endpoints.yml +67 -0
- rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +40 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/with_stub/network/solve_internet_not_slow.yml +33 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/with_stub/network/solve_internet_slow.yml +47 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/billing/understand_bill.yml +67 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/patterns.yml +23 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/project_templates/tutorial/credentials.yml +10 -0
- rasa/cli/run.py +8 -10
- rasa/cli/scaffold.py +50 -6
- rasa/cli/shell.py +10 -5
- rasa/cli/studio/studio.py +1 -1
- rasa/cli/test.py +34 -14
- rasa/cli/train.py +44 -30
- rasa/cli/utils.py +1 -393
- rasa/cli/validation/__init__.py +0 -0
- rasa/cli/validation/bot_config.py +232 -0
- rasa/cli/validation/config_path_validation.py +257 -0
- rasa/cli/x.py +8 -4
- rasa/constants.py +7 -1
- rasa/core/actions/action.py +53 -13
- rasa/core/actions/action_exceptions.py +1 -1
- rasa/core/actions/action_run_slot_rejections.py +1 -1
- rasa/core/actions/grpc_custom_action_executor.py +1 -1
- rasa/core/agent.py +22 -2
- rasa/core/available_agents.py +239 -0
- rasa/core/brokers/broker.py +1 -1
- rasa/core/brokers/kafka.py +56 -8
- rasa/core/channels/__init__.py +82 -35
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +29 -16
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/README.md +25 -13
- rasa/core/channels/inspector/dist/assets/{arc-0b11fe30.js → arc-6177260a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-9eef30a7.js → blockDiagram-38ab4fdb-b054f038.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-03e94f28.js → c4Diagram-3d4e48cf-f25427d5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-bf9cbb34.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-95c09eba.js → classDiagram-70f12bd4-c7a2af53.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-38e8446c.js → classDiagram-v2-f2320105-58db65c0.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-8f9083bb.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-57dc3038.js → createText-2e5e7dd3-088372e2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-4bac0545.js → edges-e0da2a9e-58676240.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-81795c90.js → erDiagram-9861fffd-0c14d7c6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-89489ae6.js → flowDb-956e92f1-ea63f85c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-cd152627.js → flowDiagram-66a62f08-a2af48cd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-9ecd5b59.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-3da369bc.js → flowchart-elk-definition-4a651766-6937abe7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-85ec16f8.js → ganttDiagram-c361ad54-7473f357.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-495bc140.js → gitGraphDiagram-72cf32ee-d0c9405e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-1ec4d266.js → graph-0a6f8466.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-0a0e97c9.js → index-3862675e-7610671a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-74e01d94.js +1354 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-4d54bcde.js → infoDiagram-f8f76790-be397dc7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-dc097114.js → journeyDiagram-49397b02-4cefbf62.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-1a08981e.js → layout-e7fbc2bf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-95f7f1d3.js → line-a8aa457c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-97e69543.js → linear-3351e0d2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-8c71ff03.js → mindmap-definition-fc14e90a-b8cbf605.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-f14c71c7.js → pieDiagram-8a3498a8-f327f774.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-f1d3c9ff.js → quadrantDiagram-120e2f19-2854c591.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-bfa2412f.js → requirementDiagram-deff3bca-964985d5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-53f2c97b.js → sankeyDiagram-04a897e0-edeb4f33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-319d7c0e.js → sequenceDiagram-704730f1-fcf70125.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-76a09418.js → stateDiagram-587899a1-0e770395.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-a67f15d4.js → stateDiagram-v2-d93cdb3a-af8dcd22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-0654e7c3.js → styles-6aaf32cf-36a9e70d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-1394bb9d.js → styles-9a916d00-884a8b5b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-e4c5bdae.js → styles-c10674c1-dc097813.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-50957104.js → svgDrawCommon-08f97a94-5a2c7eed.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-b0885a6a.js → timeline-definition-85554ec2-e89c4f6e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-79e6541a.js → xychartDiagram-e933f94c-afb6fe56.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +18 -18
- rasa/core/channels/inspector/src/App.tsx +56 -12
- rasa/core/channels/inspector/src/components/DiagramFlow.tsx +1 -1
- rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
- rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +4 -2
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +20 -3
- rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +296 -0
- rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +6 -2
- rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +26 -4
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
- rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
- rasa/core/channels/inspector/src/helpers/utils.test.ts +127 -0
- rasa/core/channels/inspector/src/helpers/utils.ts +66 -1
- rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
- rasa/core/channels/inspector/src/types.ts +55 -1
- rasa/core/channels/inspector/yarn.lock +336 -189
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +82 -32
- rasa/core/channels/telegram.py +4 -9
- rasa/core/channels/voice_ready/twilio_voice.py +1 -1
- rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
- rasa/core/channels/voice_stream/asr/azure.py +6 -3
- rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
- rasa/core/channels/voice_stream/audiocodes.py +11 -6
- rasa/core/channels/voice_stream/browser_audio.py +91 -4
- rasa/core/channels/voice_stream/call_state.py +13 -2
- rasa/core/channels/voice_stream/genesys.py +19 -15
- rasa/core/channels/voice_stream/jambonz.py +22 -12
- rasa/core/channels/voice_stream/tts/deepgram.py +140 -0
- rasa/core/channels/voice_stream/twilio_media_streams.py +35 -14
- rasa/core/channels/voice_stream/util.py +11 -1
- rasa/core/channels/voice_stream/voice_channel.py +170 -32
- rasa/core/concurrent_lock_store.py +83 -16
- rasa/core/config/__init__.py +0 -0
- rasa/core/{available_endpoints.py → config/available_endpoints.py} +56 -18
- rasa/core/config/configuration.py +295 -0
- rasa/core/config/credentials.py +19 -0
- rasa/core/config/message_procesing_config.py +34 -0
- rasa/core/constants.py +17 -0
- rasa/core/exceptions.py +1 -1
- rasa/core/featurizers/tracker_featurizers.py +3 -2
- rasa/core/iam_credentials_providers/__init__.py +0 -0
- rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +291 -0
- rasa/core/iam_credentials_providers/credentials_provider_protocol.py +91 -0
- rasa/core/lock_store.py +50 -10
- rasa/core/nlg/contextual_response_rephraser.py +5 -0
- rasa/core/nlg/generator.py +1 -1
- rasa/core/persistor.py +7 -7
- rasa/core/policies/enterprise_search_policy.py +9 -10
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/agent_executor.py +720 -0
- rasa/core/policies/flows/flow_exceptions.py +5 -2
- rasa/core/policies/flows/flow_executor.py +146 -77
- rasa/core/policies/flows/mcp_tool_executor.py +304 -0
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/rule_policy.py +1 -1
- rasa/core/policies/ted_policy.py +20 -12
- rasa/core/policies/unexpected_intent_policy.py +6 -0
- rasa/core/processor.py +100 -44
- rasa/core/redis_connection_factory.py +474 -0
- rasa/core/run.py +49 -10
- rasa/core/test.py +4 -0
- rasa/core/tracker_stores/redis_tracker_store.py +36 -14
- rasa/core/tracker_stores/sql_tracker_store.py +59 -1
- rasa/core/tracker_stores/tracker_store.py +3 -7
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +20 -18
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +22 -23
- rasa/dialogue_understanding/commands/__init__.py +8 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +20 -6
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +21 -2
- rasa/dialogue_understanding/commands/clarify_command.py +20 -2
- rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +21 -2
- rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
- rasa/dialogue_understanding/commands/start_flow_command.py +75 -7
- rasa/dialogue_understanding/commands/utils.py +135 -2
- rasa/dialogue_understanding/generator/command_parser.py +4 -0
- rasa/dialogue_understanding/generator/flow_retrieval.py +0 -9
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +52 -12
- 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/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +66 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +66 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +89 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +88 -0
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +42 -7
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +40 -3
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +20 -3
- rasa/dialogue_understanding/patterns/cancel.py +27 -6
- rasa/dialogue_understanding/patterns/clarify.py +3 -14
- rasa/dialogue_understanding/patterns/continue_interrupted.py +239 -6
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +49 -9
- rasa/dialogue_understanding/processor/command_processor.py +136 -15
- rasa/dialogue_understanding/stack/dialogue_stack.py +98 -2
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
- rasa/dialogue_understanding/stack/utils.py +57 -3
- rasa/dialogue_understanding/utils.py +24 -4
- rasa/dialogue_understanding_test/du_test_runner.py +8 -3
- rasa/e2e_test/e2e_test_runner.py +13 -3
- rasa/engine/caching.py +2 -2
- rasa/engine/constants.py +1 -1
- rasa/engine/graph.py +5 -1
- rasa/engine/loader.py +12 -0
- rasa/engine/recipes/default_components.py +138 -49
- rasa/engine/recipes/default_recipe.py +108 -11
- rasa/engine/runner/dask.py +8 -5
- rasa/engine/validation.py +25 -8
- rasa/graph_components/validators/default_recipe_validator.py +86 -28
- 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 +2 -2
- rasa/model_manager/socket_bridge.py +21 -17
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +13 -3
- rasa/model_training.py +60 -47
- rasa/nlu/classifiers/diet_classifier.py +198 -98
- rasa/nlu/classifiers/logistic_regression_classifier.py +1 -4
- rasa/nlu/classifiers/mitie_intent_classifier.py +3 -0
- rasa/nlu/classifiers/sklearn_intent_classifier.py +1 -3
- rasa/nlu/extractors/crf_entity_extractor.py +9 -10
- rasa/nlu/extractors/mitie_entity_extractor.py +3 -0
- rasa/nlu/extractors/spacy_entity_extractor.py +3 -0
- rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +4 -0
- rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +5 -0
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +2 -0
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +3 -0
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +4 -2
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -0
- rasa/nlu/selectors/response_selector.py +10 -2
- rasa/nlu/tokenizers/jieba_tokenizer.py +3 -4
- rasa/nlu/tokenizers/mitie_tokenizer.py +3 -2
- rasa/nlu/tokenizers/spacy_tokenizer.py +3 -2
- rasa/nlu/utils/mitie_utils.py +3 -0
- rasa/nlu/utils/spacy_utils.py +3 -2
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_config.py +1 -1
- rasa/privacy/privacy_manager.py +12 -3
- rasa/server.py +15 -3
- rasa/shared/agents/__init__.py +0 -0
- rasa/shared/agents/auth/__init__.py +0 -0
- rasa/shared/agents/auth/agent_auth_factory.py +105 -0
- rasa/shared/agents/auth/agent_auth_manager.py +92 -0
- rasa/shared/agents/auth/auth_strategy/__init__.py +19 -0
- rasa/shared/agents/auth/auth_strategy/agent_auth_strategy.py +52 -0
- rasa/shared/agents/auth/auth_strategy/api_key_auth_strategy.py +42 -0
- rasa/shared/agents/auth/auth_strategy/bearer_token_auth_strategy.py +28 -0
- rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py +170 -0
- rasa/shared/agents/auth/constants.py +13 -0
- rasa/shared/agents/auth/types.py +12 -0
- rasa/shared/agents/auth/utils.py +85 -0
- rasa/shared/agents/utils.py +35 -0
- rasa/shared/constants.py +11 -0
- rasa/shared/core/constants.py +17 -1
- rasa/shared/core/domain.py +62 -22
- rasa/shared/core/events.py +329 -0
- rasa/shared/core/flows/constants.py +5 -0
- rasa/shared/core/flows/flow.py +1 -1
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +21 -5
- rasa/shared/core/flows/flows_yaml_schema.json +119 -184
- rasa/shared/core/flows/steps/call.py +57 -6
- rasa/shared/core/flows/steps/collect.py +98 -13
- rasa/shared/core/flows/validation.py +372 -8
- rasa/shared/core/flows/yaml_flows_io.py +19 -10
- rasa/shared/core/slots.py +6 -2
- rasa/shared/core/trackers.py +5 -2
- rasa/shared/core/training_data/story_reader/story_reader.py +1 -1
- rasa/shared/exceptions.py +39 -2
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/rasa.py +1 -1
- rasa/shared/importers/utils.py +86 -4
- rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
- rasa/shared/providers/llm/_base_litellm_client.py +41 -9
- rasa/shared/providers/llm/litellm_router_llm_client.py +10 -6
- rasa/shared/providers/llm/llm_client.py +7 -3
- rasa/shared/providers/llm/llm_response.py +66 -0
- rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
- rasa/shared/utils/common.py +26 -1
- rasa/shared/utils/health_check/health_check.py +7 -3
- rasa/shared/utils/llm.py +92 -19
- rasa/shared/utils/mcp/__init__.py +0 -0
- rasa/shared/utils/mcp/server_connection.py +250 -0
- rasa/shared/utils/mcp/utils.py +20 -0
- rasa/shared/utils/schemas/events.py +42 -0
- rasa/shared/utils/yaml.py +3 -1
- rasa/studio/download.py +3 -0
- rasa/studio/prompts.py +1 -0
- rasa/studio/pull/pull.py +3 -2
- rasa/studio/train.py +8 -7
- rasa/studio/upload.py +19 -52
- rasa/telemetry.py +166 -28
- rasa/tracing/config.py +45 -12
- rasa/tracing/constants.py +14 -0
- rasa/tracing/instrumentation/attribute_extractors.py +142 -9
- rasa/tracing/instrumentation/instrumentation.py +626 -21
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/tracing/instrumentation/metrics.py +32 -0
- rasa/tracing/metric_instrument_provider.py +68 -0
- rasa/utils/common.py +92 -1
- rasa/utils/endpoints.py +11 -2
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/log_utils.py +121 -7
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/plotting.py +1 -1
- rasa/utils/pypred.py +45 -0
- rasa/utils/tensorflow/__init__.py +7 -0
- rasa/utils/tensorflow/callback.py +136 -101
- rasa/utils/tensorflow/crf.py +1 -1
- rasa/utils/tensorflow/data_generator.py +21 -8
- rasa/utils/tensorflow/layers.py +21 -11
- rasa/utils/tensorflow/metrics.py +7 -3
- rasa/utils/tensorflow/models.py +56 -8
- rasa/utils/tensorflow/rasa_layers.py +8 -6
- rasa/utils/tensorflow/transformer.py +2 -3
- rasa/utils/train_utils.py +54 -24
- rasa/validator.py +149 -16
- rasa/version.py +1 -1
- rasa_pro-3.14.0.dist-info/METADATA +212 -0
- {rasa_pro-3.13.12.dist-info → rasa_pro-3.14.0.dist-info}/RECORD +581 -269
- rasa/core/channels/inspector/dist/assets/channel-51d02e9e.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-cc738fa6.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-0c716443.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-c804b295.js +0 -1335
- rasa_pro-3.13.12.dist-info/METADATA +0 -192
- {rasa_pro-3.13.12.dist-info → rasa_pro-3.14.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.13.12.dist-info → rasa_pro-3.14.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.13.12.dist-info → rasa_pro-3.14.0.dist-info}/entry_points.txt +0 -0
|
@@ -3,8 +3,6 @@ from rasa.core.policies.flow_policy import FlowPolicy
|
|
|
3
3
|
from rasa.core.policies.intentless_policy import IntentlessPolicy
|
|
4
4
|
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
5
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
|
|
8
6
|
from rasa.dialogue_understanding.coexistence.intent_based_router import (
|
|
9
7
|
IntentBasedRouter,
|
|
10
8
|
)
|
|
@@ -13,79 +11,116 @@ from rasa.dialogue_understanding.generator import (
|
|
|
13
11
|
LLMCommandGenerator,
|
|
14
12
|
)
|
|
15
13
|
from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
|
|
16
|
-
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
17
14
|
from rasa.nlu.classifiers.fallback_classifier import FallbackClassifier
|
|
18
15
|
from rasa.nlu.classifiers.keyword_intent_classifier import KeywordIntentClassifier
|
|
19
|
-
from rasa.nlu.classifiers.logistic_regression_classifier import (
|
|
20
|
-
LogisticRegressionClassifier,
|
|
21
|
-
)
|
|
22
|
-
from rasa.nlu.classifiers.mitie_intent_classifier import MitieIntentClassifier
|
|
23
|
-
from rasa.nlu.classifiers.sklearn_intent_classifier import SklearnIntentClassifier
|
|
24
|
-
from rasa.nlu.extractors.crf_entity_extractor import CRFEntityExtractor
|
|
25
16
|
from rasa.nlu.extractors.duckling_entity_extractor import DucklingEntityExtractor
|
|
26
17
|
from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
|
|
27
|
-
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
28
18
|
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
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
|
|
32
|
-
from rasa.nlu.featurizers.dense_featurizer.mitie_featurizer import MitieFeaturizer
|
|
33
|
-
from rasa.nlu.featurizers.dense_featurizer.spacy_featurizer import SpacyFeaturizer
|
|
34
19
|
from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import (
|
|
35
20
|
CountVectorsFeaturizer,
|
|
36
21
|
)
|
|
37
|
-
from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import (
|
|
38
|
-
LexicalSyntacticFeaturizer,
|
|
39
|
-
)
|
|
40
22
|
from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
|
|
41
|
-
from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
42
|
-
from rasa.nlu.tokenizers.jieba_tokenizer import JiebaTokenizer
|
|
43
|
-
from rasa.nlu.tokenizers.mitie_tokenizer import MitieTokenizer
|
|
44
|
-
from rasa.nlu.tokenizers.spacy_tokenizer import SpacyTokenizer
|
|
45
23
|
from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer
|
|
46
|
-
from rasa.
|
|
47
|
-
|
|
24
|
+
from rasa.shared.utils.common import conditional_import
|
|
25
|
+
|
|
26
|
+
# Conditional imports for components with external dependencies
|
|
27
|
+
|
|
28
|
+
# components dependent on tensorflow
|
|
29
|
+
TEDPolicy, TED_POLICY_AVAILABLE = conditional_import(
|
|
30
|
+
"rasa.core.policies.ted_policy", "TEDPolicy"
|
|
31
|
+
)
|
|
32
|
+
UnexpecTEDIntentPolicy, UNEXPECTED_INTENT_POLICY_AVAILABLE = conditional_import(
|
|
33
|
+
"rasa.core.policies.unexpected_intent_policy", "UnexpecTEDIntentPolicy"
|
|
34
|
+
)
|
|
35
|
+
DIETClassifier, DIET_CLASSIFIER_AVAILABLE = conditional_import(
|
|
36
|
+
"rasa.nlu.classifiers.diet_classifier", "DIETClassifier"
|
|
37
|
+
)
|
|
38
|
+
ConveRTFeaturizer, CONVERT_FEATURIZER_AVAILABLE = conditional_import(
|
|
39
|
+
"rasa.nlu.featurizers.dense_featurizer.convert_featurizer", "ConveRTFeaturizer"
|
|
40
|
+
)
|
|
41
|
+
LanguageModelFeaturizer, LANGUAGE_MODEL_FEATURIZER_AVAILABLE = conditional_import(
|
|
42
|
+
"rasa.nlu.featurizers.dense_featurizer.lm_featurizer", "LanguageModelFeaturizer"
|
|
43
|
+
)
|
|
44
|
+
ResponseSelector, RESPONSE_SELECTOR_AVAILABLE = conditional_import(
|
|
45
|
+
"rasa.nlu.selectors.response_selector", "ResponseSelector"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# components dependent on skops
|
|
49
|
+
LogisticRegressionClassifier, LOGISTIC_REGRESSION_CLASSIFIER_AVAILABLE = (
|
|
50
|
+
conditional_import(
|
|
51
|
+
"rasa.nlu.classifiers.logistic_regression_classifier",
|
|
52
|
+
"LogisticRegressionClassifier",
|
|
53
|
+
)
|
|
54
|
+
)
|
|
55
|
+
SklearnIntentClassifier, SKLEARN_INTENT_CLASSIFIER_AVAILABLE = conditional_import(
|
|
56
|
+
"rasa.nlu.classifiers.sklearn_intent_classifier", "SklearnIntentClassifier"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
# components dependent on spacy
|
|
60
|
+
LexicalSyntacticFeaturizer, LEXICAL_SYNTACTIC_FEATURIZER_AVAILABLE = conditional_import(
|
|
61
|
+
"rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer",
|
|
62
|
+
"LexicalSyntacticFeaturizer",
|
|
63
|
+
)
|
|
64
|
+
SpacyFeaturizer, SPACY_FEATURIZER_AVAILABLE = conditional_import(
|
|
65
|
+
"rasa.nlu.featurizers.dense_featurizer.spacy_featurizer", "SpacyFeaturizer"
|
|
66
|
+
)
|
|
67
|
+
SpacyTokenizer, SPACY_TOKENIZER_AVAILABLE = conditional_import(
|
|
68
|
+
"rasa.nlu.tokenizers.spacy_tokenizer", "SpacyTokenizer"
|
|
69
|
+
)
|
|
70
|
+
SpacyEntityExtractor, SPACY_ENTITY_EXTRACTOR_AVAILABLE = conditional_import(
|
|
71
|
+
"rasa.nlu.extractors.spacy_entity_extractor", "SpacyEntityExtractor"
|
|
72
|
+
)
|
|
73
|
+
SpacyNLP, SPACY_NLP_AVAILABLE = conditional_import(
|
|
74
|
+
"rasa.nlu.utils.spacy_utils", "SpacyNLP"
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
# components dependent on sklearn_crfsuite
|
|
78
|
+
CRFEntityExtractor, CRF_ENTITY_EXTRACTOR_AVAILABLE = conditional_import(
|
|
79
|
+
"rasa.nlu.extractors.crf_entity_extractor", "CRFEntityExtractor"
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
# components dependent on mitie
|
|
83
|
+
MitieFeaturizer, MITIE_FEATURIZER_AVAILABLE = conditional_import(
|
|
84
|
+
"rasa.nlu.featurizers.dense_featurizer.mitie_featurizer", "MitieFeaturizer"
|
|
85
|
+
)
|
|
86
|
+
MitieTokenizer, MITIE_TOKENIZER_AVAILABLE = conditional_import(
|
|
87
|
+
"rasa.nlu.tokenizers.mitie_tokenizer", "MitieTokenizer"
|
|
88
|
+
)
|
|
89
|
+
MitieIntentClassifier, MITIE_INTENT_CLASSIFIER_AVAILABLE = conditional_import(
|
|
90
|
+
"rasa.nlu.classifiers.mitie_intent_classifier", "MitieIntentClassifier"
|
|
91
|
+
)
|
|
92
|
+
MitieEntityExtractor, MITIE_ENTITY_EXTRACTOR_AVAILABLE = conditional_import(
|
|
93
|
+
"rasa.nlu.extractors.mitie_entity_extractor", "MitieEntityExtractor"
|
|
94
|
+
)
|
|
95
|
+
MitieNLP, MITIE_NLP_AVAILABLE = conditional_import(
|
|
96
|
+
"rasa.nlu.utils.mitie_utils", "MitieNLP"
|
|
97
|
+
)
|
|
48
98
|
|
|
99
|
+
# components dependent on jieba
|
|
100
|
+
JiebaTokenizer, JIEBA_TOKENIZER_AVAILABLE = conditional_import(
|
|
101
|
+
"rasa.nlu.tokenizers.jieba_tokenizer", "JiebaTokenizer"
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
# Base components that are always available (no external dependencies)
|
|
49
105
|
DEFAULT_COMPONENTS = [
|
|
50
|
-
#
|
|
51
|
-
DIETClassifier,
|
|
106
|
+
# Classifiers
|
|
52
107
|
FallbackClassifier,
|
|
53
108
|
KeywordIntentClassifier,
|
|
54
|
-
MitieIntentClassifier,
|
|
55
|
-
SklearnIntentClassifier,
|
|
56
|
-
LogisticRegressionClassifier,
|
|
57
109
|
NLUCommandAdapter,
|
|
58
110
|
LLMCommandGenerator,
|
|
59
111
|
LLMBasedRouter,
|
|
60
112
|
IntentBasedRouter,
|
|
61
|
-
#
|
|
62
|
-
ResponseSelector,
|
|
63
|
-
# Message Entity Extractors
|
|
64
|
-
CRFEntityExtractor,
|
|
113
|
+
# Entity Extractors
|
|
65
114
|
DucklingEntityExtractor,
|
|
66
115
|
EntitySynonymMapper,
|
|
67
|
-
MitieEntityExtractor,
|
|
68
|
-
SpacyEntityExtractor,
|
|
69
116
|
RegexEntityExtractor,
|
|
70
|
-
#
|
|
71
|
-
LexicalSyntacticFeaturizer,
|
|
72
|
-
ConveRTFeaturizer,
|
|
73
|
-
MitieFeaturizer,
|
|
74
|
-
SpacyFeaturizer,
|
|
117
|
+
# Featurizers
|
|
75
118
|
CountVectorsFeaturizer,
|
|
76
|
-
LanguageModelFeaturizer,
|
|
77
119
|
RegexFeaturizer,
|
|
78
120
|
# Tokenizers
|
|
79
|
-
JiebaTokenizer,
|
|
80
|
-
MitieTokenizer,
|
|
81
|
-
SpacyTokenizer,
|
|
82
121
|
WhitespaceTokenizer,
|
|
83
122
|
# Language Model Providers
|
|
84
|
-
|
|
85
|
-
SpacyNLP,
|
|
86
|
-
# Dialogue Management Policies
|
|
87
|
-
TEDPolicy,
|
|
88
|
-
UnexpecTEDIntentPolicy,
|
|
123
|
+
# Policies
|
|
89
124
|
RulePolicy,
|
|
90
125
|
MemoizationPolicy,
|
|
91
126
|
AugmentedMemoizationPolicy,
|
|
@@ -93,3 +128,57 @@ DEFAULT_COMPONENTS = [
|
|
|
93
128
|
EnterpriseSearchPolicy,
|
|
94
129
|
IntentlessPolicy,
|
|
95
130
|
]
|
|
131
|
+
|
|
132
|
+
# Conditionally add components based on dependencies
|
|
133
|
+
|
|
134
|
+
# components dependent on tensorflow
|
|
135
|
+
if DIET_CLASSIFIER_AVAILABLE:
|
|
136
|
+
DEFAULT_COMPONENTS.append(DIETClassifier)
|
|
137
|
+
if CONVERT_FEATURIZER_AVAILABLE:
|
|
138
|
+
DEFAULT_COMPONENTS.append(ConveRTFeaturizer)
|
|
139
|
+
if LANGUAGE_MODEL_FEATURIZER_AVAILABLE:
|
|
140
|
+
DEFAULT_COMPONENTS.append(LanguageModelFeaturizer)
|
|
141
|
+
if RESPONSE_SELECTOR_AVAILABLE:
|
|
142
|
+
DEFAULT_COMPONENTS.append(ResponseSelector)
|
|
143
|
+
if TED_POLICY_AVAILABLE:
|
|
144
|
+
DEFAULT_COMPONENTS.append(TEDPolicy)
|
|
145
|
+
if UNEXPECTED_INTENT_POLICY_AVAILABLE:
|
|
146
|
+
DEFAULT_COMPONENTS.append(UnexpecTEDIntentPolicy)
|
|
147
|
+
|
|
148
|
+
# components dependent on skops
|
|
149
|
+
if LOGISTIC_REGRESSION_CLASSIFIER_AVAILABLE:
|
|
150
|
+
DEFAULT_COMPONENTS.append(LogisticRegressionClassifier)
|
|
151
|
+
if SKLEARN_INTENT_CLASSIFIER_AVAILABLE:
|
|
152
|
+
DEFAULT_COMPONENTS.append(SklearnIntentClassifier)
|
|
153
|
+
|
|
154
|
+
# components dependent on spacy
|
|
155
|
+
if LEXICAL_SYNTACTIC_FEATURIZER_AVAILABLE:
|
|
156
|
+
DEFAULT_COMPONENTS.append(LexicalSyntacticFeaturizer)
|
|
157
|
+
if SPACY_FEATURIZER_AVAILABLE:
|
|
158
|
+
DEFAULT_COMPONENTS.append(SpacyFeaturizer)
|
|
159
|
+
if SPACY_TOKENIZER_AVAILABLE:
|
|
160
|
+
DEFAULT_COMPONENTS.append(SpacyTokenizer)
|
|
161
|
+
if SPACY_ENTITY_EXTRACTOR_AVAILABLE:
|
|
162
|
+
DEFAULT_COMPONENTS.append(SpacyEntityExtractor)
|
|
163
|
+
if SPACY_NLP_AVAILABLE:
|
|
164
|
+
DEFAULT_COMPONENTS.append(SpacyNLP)
|
|
165
|
+
|
|
166
|
+
# components dependent on mitie
|
|
167
|
+
if MITIE_FEATURIZER_AVAILABLE:
|
|
168
|
+
DEFAULT_COMPONENTS.append(MitieFeaturizer)
|
|
169
|
+
if MITIE_TOKENIZER_AVAILABLE:
|
|
170
|
+
DEFAULT_COMPONENTS.append(MitieTokenizer)
|
|
171
|
+
if MITIE_INTENT_CLASSIFIER_AVAILABLE:
|
|
172
|
+
DEFAULT_COMPONENTS.append(MitieIntentClassifier)
|
|
173
|
+
if MITIE_ENTITY_EXTRACTOR_AVAILABLE:
|
|
174
|
+
DEFAULT_COMPONENTS.append(MitieEntityExtractor)
|
|
175
|
+
if MITIE_NLP_AVAILABLE:
|
|
176
|
+
DEFAULT_COMPONENTS.append(MitieNLP)
|
|
177
|
+
|
|
178
|
+
# components dependent on jieba
|
|
179
|
+
if JIEBA_TOKENIZER_AVAILABLE:
|
|
180
|
+
DEFAULT_COMPONENTS.append(JiebaTokenizer)
|
|
181
|
+
|
|
182
|
+
# components dependent on sklearn_crfsuite
|
|
183
|
+
if CRF_ENTITY_EXTRACTOR_AVAILABLE:
|
|
184
|
+
DEFAULT_COMPONENTS.append(CRFEntityExtractor)
|
|
@@ -5,6 +5,7 @@ import dataclasses
|
|
|
5
5
|
import enum
|
|
6
6
|
import logging
|
|
7
7
|
import math
|
|
8
|
+
import sys
|
|
8
9
|
from enum import Enum
|
|
9
10
|
from typing import Any, Callable, Dict, List, Optional, Set, Text, Tuple, Type, Union
|
|
10
11
|
|
|
@@ -180,7 +181,28 @@ class DefaultV1Recipe(Recipe):
|
|
|
180
181
|
@classmethod
|
|
181
182
|
def _from_registry(cls, name: Text) -> RegisteredComponent:
|
|
182
183
|
# Importing all the default Rasa components will automatically register them
|
|
183
|
-
from rasa.engine.recipes.default_components import
|
|
184
|
+
from rasa.engine.recipes.default_components import (
|
|
185
|
+
CONVERT_FEATURIZER_AVAILABLE,
|
|
186
|
+
CRF_ENTITY_EXTRACTOR_AVAILABLE,
|
|
187
|
+
DIET_CLASSIFIER_AVAILABLE,
|
|
188
|
+
JIEBA_TOKENIZER_AVAILABLE,
|
|
189
|
+
LANGUAGE_MODEL_FEATURIZER_AVAILABLE,
|
|
190
|
+
LEXICAL_SYNTACTIC_FEATURIZER_AVAILABLE,
|
|
191
|
+
LOGISTIC_REGRESSION_CLASSIFIER_AVAILABLE,
|
|
192
|
+
MITIE_ENTITY_EXTRACTOR_AVAILABLE,
|
|
193
|
+
MITIE_FEATURIZER_AVAILABLE,
|
|
194
|
+
MITIE_INTENT_CLASSIFIER_AVAILABLE,
|
|
195
|
+
MITIE_NLP_AVAILABLE,
|
|
196
|
+
MITIE_TOKENIZER_AVAILABLE,
|
|
197
|
+
RESPONSE_SELECTOR_AVAILABLE,
|
|
198
|
+
SKLEARN_INTENT_CLASSIFIER_AVAILABLE,
|
|
199
|
+
SPACY_ENTITY_EXTRACTOR_AVAILABLE,
|
|
200
|
+
SPACY_FEATURIZER_AVAILABLE,
|
|
201
|
+
SPACY_NLP_AVAILABLE,
|
|
202
|
+
SPACY_TOKENIZER_AVAILABLE,
|
|
203
|
+
TED_POLICY_AVAILABLE,
|
|
204
|
+
UNEXPECTED_INTENT_POLICY_AVAILABLE,
|
|
205
|
+
)
|
|
184
206
|
|
|
185
207
|
if name in cls._registered_components:
|
|
186
208
|
return cls._registered_components[name]
|
|
@@ -190,6 +212,56 @@ class DefaultV1Recipe(Recipe):
|
|
|
190
212
|
if clazz.__name__ in cls._registered_components:
|
|
191
213
|
return cls._registered_components[clazz.__name__]
|
|
192
214
|
|
|
215
|
+
# Check Python version compatibility for TensorFlow components
|
|
216
|
+
# TensorFlow support was removed for Python 3.12+ due to compatibility issues
|
|
217
|
+
if sys.version_info >= (3, 12):
|
|
218
|
+
raise InvalidConfigException(
|
|
219
|
+
f"{name} is not available on Python 3.12+. "
|
|
220
|
+
"TensorFlow support has been removed for Python 3.12+ versions. "
|
|
221
|
+
"Please use Python 3.11 or earlier for TensorFlow-based components. "
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
# Check for nlu components that failed to load
|
|
225
|
+
# because conditional module import of those components did not succeed
|
|
226
|
+
nlu_components = {
|
|
227
|
+
# tensorflow-dependent components
|
|
228
|
+
"DIETClassifier": DIET_CLASSIFIER_AVAILABLE,
|
|
229
|
+
"TEDPolicy": TED_POLICY_AVAILABLE,
|
|
230
|
+
"UnexpecTEDIntentPolicy": UNEXPECTED_INTENT_POLICY_AVAILABLE,
|
|
231
|
+
"ResponseSelector": RESPONSE_SELECTOR_AVAILABLE,
|
|
232
|
+
"ConveRTFeaturizer": CONVERT_FEATURIZER_AVAILABLE,
|
|
233
|
+
"LanguageModelFeaturizer": LANGUAGE_MODEL_FEATURIZER_AVAILABLE,
|
|
234
|
+
# nlu components dependent on other dependencies than tensorflow
|
|
235
|
+
"LogisticRegressionClassifier": LOGISTIC_REGRESSION_CLASSIFIER_AVAILABLE,
|
|
236
|
+
"SklearnIntentClassifier": SKLEARN_INTENT_CLASSIFIER_AVAILABLE,
|
|
237
|
+
"LexicalSyntacticFeaturizer": LEXICAL_SYNTACTIC_FEATURIZER_AVAILABLE,
|
|
238
|
+
"MitieFeaturizer": MITIE_FEATURIZER_AVAILABLE,
|
|
239
|
+
"SpacyFeaturizer": SPACY_FEATURIZER_AVAILABLE,
|
|
240
|
+
"JiebaTokenizer": JIEBA_TOKENIZER_AVAILABLE,
|
|
241
|
+
"MitieTokenizer": MITIE_TOKENIZER_AVAILABLE,
|
|
242
|
+
"SpacyTokenizer": SPACY_TOKENIZER_AVAILABLE,
|
|
243
|
+
"MitieIntentClassifier": MITIE_INTENT_CLASSIFIER_AVAILABLE,
|
|
244
|
+
"MitieEntityExtractor": MITIE_ENTITY_EXTRACTOR_AVAILABLE,
|
|
245
|
+
"SpacyEntityExtractor": SPACY_ENTITY_EXTRACTOR_AVAILABLE,
|
|
246
|
+
"MitieNLP": MITIE_NLP_AVAILABLE,
|
|
247
|
+
"SpacyNLP": SPACY_NLP_AVAILABLE,
|
|
248
|
+
"CRFEntityExtractor": CRF_ENTITY_EXTRACTOR_AVAILABLE,
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if name in nlu_components:
|
|
252
|
+
# nlu-dependent component failed to load
|
|
253
|
+
# because nlu dependency group not installed
|
|
254
|
+
if not nlu_components[name]:
|
|
255
|
+
from rasa.exceptions import MissingDependencyException
|
|
256
|
+
|
|
257
|
+
raise MissingDependencyException(
|
|
258
|
+
f"The {name} component requires additional dependencies "
|
|
259
|
+
f"which are not installed. "
|
|
260
|
+
f"Please install the required extra by running: "
|
|
261
|
+
f"pip install 'rasa-pro[nlu]' OR "
|
|
262
|
+
f"poetry add 'rasa-pro[nlu]'"
|
|
263
|
+
)
|
|
264
|
+
|
|
193
265
|
raise InvalidConfigException(
|
|
194
266
|
f"Can't load class for name '{name}'. Please make sure to provide "
|
|
195
267
|
f"a valid name or module path and to register it using the "
|
|
@@ -485,17 +557,42 @@ class DefaultV1Recipe(Recipe):
|
|
|
485
557
|
component: Type[GraphComponent],
|
|
486
558
|
component_config: Dict[Text, Any],
|
|
487
559
|
) -> Dict[Text, Any]:
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
560
|
+
# Try to import MitieIntentClassifier, but handle ImportError gracefully
|
|
561
|
+
# since the dependencies for it may not be installed
|
|
562
|
+
try:
|
|
563
|
+
from rasa.nlu.classifiers.mitie_intent_classifier import (
|
|
564
|
+
MitieIntentClassifier,
|
|
565
|
+
)
|
|
566
|
+
except ImportError:
|
|
567
|
+
MitieIntentClassifier = None # type: ignore
|
|
493
568
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
569
|
+
# Try to import MitieEntityExtractor, but handle ImportError gracefully
|
|
570
|
+
# since the dependencies for it may not be installed
|
|
571
|
+
try:
|
|
572
|
+
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
573
|
+
except ImportError:
|
|
574
|
+
MitieEntityExtractor = None # type: ignore
|
|
575
|
+
|
|
576
|
+
# Try to import SklearnIntentClassifier, but handle ImportError gracefully
|
|
577
|
+
# since the dependencies for it may not be installed
|
|
578
|
+
try:
|
|
579
|
+
from rasa.nlu.classifiers.sklearn_intent_classifier import (
|
|
580
|
+
SklearnIntentClassifier,
|
|
581
|
+
)
|
|
582
|
+
except ImportError:
|
|
583
|
+
SklearnIntentClassifier = None # type: ignore
|
|
584
|
+
|
|
585
|
+
cli_args_mapping: Dict[Type[GraphComponent], List[Text]] = {}
|
|
586
|
+
|
|
587
|
+
# Only add components if they were successfully imported
|
|
588
|
+
if MitieIntentClassifier is not None:
|
|
589
|
+
cli_args_mapping[MitieIntentClassifier] = ["num_threads"]
|
|
590
|
+
|
|
591
|
+
if MitieEntityExtractor is not None:
|
|
592
|
+
cli_args_mapping[MitieEntityExtractor] = ["num_threads"]
|
|
593
|
+
|
|
594
|
+
if SklearnIntentClassifier is not None:
|
|
595
|
+
cli_args_mapping[SklearnIntentClassifier] = ["num_threads"]
|
|
499
596
|
|
|
500
597
|
config_from_cli = {
|
|
501
598
|
param: cli_parameters[param]
|
rasa/engine/runner/dask.py
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
-
import logging
|
|
5
4
|
from typing import Any, Dict, List, Optional, Text
|
|
6
5
|
|
|
7
6
|
import dask.core
|
|
8
7
|
import dask.local
|
|
8
|
+
import structlog
|
|
9
9
|
|
|
10
10
|
from rasa.engine.exceptions import GraphRunError
|
|
11
11
|
from rasa.engine.graph import ExecutionContext, GraphNode, GraphNodeHook, GraphSchema
|
|
12
12
|
from rasa.engine.runner.interface import GraphRunner
|
|
13
13
|
from rasa.engine.storage.storage import ModelStorage
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
structlogger = structlog.get_logger()
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class DaskGraphRunner(GraphRunner):
|
|
@@ -94,9 +94,12 @@ class DaskGraphRunner(GraphRunner):
|
|
|
94
94
|
if inputs:
|
|
95
95
|
self._add_inputs_to_graph(inputs, run_graph)
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
structlogger.debug(
|
|
98
|
+
"rasa.engine.runner.dask.run",
|
|
99
|
+
event_info="Running graph with inputs, targets and execution context.",
|
|
100
|
+
inputs=inputs,
|
|
101
|
+
targets=targets,
|
|
102
|
+
execution_context=self._execution_context,
|
|
100
103
|
)
|
|
101
104
|
|
|
102
105
|
try:
|
rasa/engine/validation.py
CHANGED
|
@@ -23,7 +23,8 @@ import structlog
|
|
|
23
23
|
import typing_utils
|
|
24
24
|
|
|
25
25
|
import rasa.utils.common
|
|
26
|
-
from rasa.core.available_endpoints import AvailableEndpoints
|
|
26
|
+
from rasa.core.config.available_endpoints import AvailableEndpoints
|
|
27
|
+
from rasa.core.config.configuration import Configuration
|
|
27
28
|
from rasa.core.nlg.contextual_response_rephraser import ContextualResponseRephraser
|
|
28
29
|
from rasa.core.policies.intentless_policy import IntentlessPolicy
|
|
29
30
|
from rasa.core.policies.policy import PolicyPrediction
|
|
@@ -80,6 +81,7 @@ from rasa.shared.constants import (
|
|
|
80
81
|
ROUTING_STRATEGIES_NOT_REQUIRING_CACHE,
|
|
81
82
|
ROUTING_STRATEGIES_REQUIRING_REDIS_CACHE,
|
|
82
83
|
ROUTING_STRATEGY_CONFIG_KEY,
|
|
84
|
+
SECRET_DATA_FORMAT_PATTERN,
|
|
83
85
|
SENSITIVE_DATA,
|
|
84
86
|
USE_CHAT_COMPLETIONS_ENDPOINT_CONFIG_KEY,
|
|
85
87
|
VALID_PROVIDERS_FOR_API_TYPE_CONFIG_KEY,
|
|
@@ -1039,7 +1041,7 @@ def validate_model_client_configuration_setup_during_training_time(
|
|
|
1039
1041
|
)
|
|
1040
1042
|
|
|
1041
1043
|
# also include the ContextualResponseRephraser component
|
|
1042
|
-
endpoints =
|
|
1044
|
+
endpoints = Configuration.get_instance().endpoints
|
|
1043
1045
|
if endpoints.nlg is not None:
|
|
1044
1046
|
_validate_component_model_client_config(
|
|
1045
1047
|
endpoints.nlg.kwargs,
|
|
@@ -1075,7 +1077,7 @@ def validate_model_client_configuration_setup_during_training_time(
|
|
|
1075
1077
|
),
|
|
1076
1078
|
)
|
|
1077
1079
|
|
|
1078
|
-
endpoints =
|
|
1080
|
+
endpoints = Configuration.get_instance().endpoints
|
|
1079
1081
|
if len(model_group_ids) > 0 and endpoints.model_groups is None:
|
|
1080
1082
|
raise ValidationError(
|
|
1081
1083
|
code="engine.validation.validate_model_client_configuration_setup"
|
|
@@ -1138,7 +1140,7 @@ def _validate_component_model_client_config_has_references_to_endpoints(
|
|
|
1138
1140
|
# no llm/embeddings configuration present
|
|
1139
1141
|
return
|
|
1140
1142
|
|
|
1141
|
-
endpoints =
|
|
1143
|
+
endpoints = Configuration.get_instance().endpoints
|
|
1142
1144
|
|
|
1143
1145
|
if MODEL_GROUP_CONFIG_KEY in component_config[key]:
|
|
1144
1146
|
referencing_model_group_id = component_config[key][MODEL_GROUP_CONFIG_KEY]
|
|
@@ -1213,7 +1215,7 @@ def validate_model_client_configuration_setup_during_inference_time(
|
|
|
1213
1215
|
)
|
|
1214
1216
|
|
|
1215
1217
|
# also include the ContextualResponseRephraser component
|
|
1216
|
-
endpoints =
|
|
1218
|
+
endpoints = Configuration.get_instance().endpoints
|
|
1217
1219
|
if endpoints.nlg is not None:
|
|
1218
1220
|
_validate_component_model_client_config_has_references_to_endpoints(
|
|
1219
1221
|
component_config=endpoints.nlg.kwargs,
|
|
@@ -1224,6 +1226,12 @@ def validate_model_client_configuration_setup_during_inference_time(
|
|
|
1224
1226
|
|
|
1225
1227
|
def _validate_unique_model_group_ids(model_groups: List[Dict[str, Any]]) -> None:
|
|
1226
1228
|
# Each model id must be unique within the model_groups
|
|
1229
|
+
structlogger.debug(
|
|
1230
|
+
"engine.validation.validate_unique_model_group_ids",
|
|
1231
|
+
event_info="Validating that model group IDs are unique.",
|
|
1232
|
+
model_groups=model_groups,
|
|
1233
|
+
)
|
|
1234
|
+
|
|
1227
1235
|
model_ids = [model_group[MODEL_GROUP_ID_CONFIG_KEY] for model_group in model_groups]
|
|
1228
1236
|
if len(model_ids) != len(set(model_ids)):
|
|
1229
1237
|
counts = Counter(model_ids)
|
|
@@ -1352,7 +1360,10 @@ def _validate_usage_of_environment_variables_in_model_group_config(
|
|
|
1352
1360
|
for model_config in model_group[MODELS_CONFIG_KEY]:
|
|
1353
1361
|
for key, value in model_config.items():
|
|
1354
1362
|
if isinstance(value, str):
|
|
1355
|
-
if
|
|
1363
|
+
if (
|
|
1364
|
+
re.match(SECRET_DATA_FORMAT_PATTERN, value)
|
|
1365
|
+
and key not in allowed_env_vars
|
|
1366
|
+
):
|
|
1356
1367
|
raise ValidationError(
|
|
1357
1368
|
code="engine.validation.validate_model_group_configuration_setup"
|
|
1358
1369
|
".invalid_use_of_environment_variables",
|
|
@@ -1379,7 +1390,7 @@ def _validate_sensitive_keys_are_an_environment_variables_for_model_groups(
|
|
|
1379
1390
|
for key, value in model_config.items():
|
|
1380
1391
|
if key in SENSITIVE_DATA:
|
|
1381
1392
|
if isinstance(value, str):
|
|
1382
|
-
if not re.match(
|
|
1393
|
+
if not re.match(SECRET_DATA_FORMAT_PATTERN, value):
|
|
1383
1394
|
raise ValidationError(
|
|
1384
1395
|
code="engine.validation.validate_model_group_configuration_setup"
|
|
1385
1396
|
".sensitive_key_string_value_must_be_set_as_env_var",
|
|
@@ -1410,11 +1421,17 @@ def _validate_sensitive_keys_are_an_environment_variables_for_model_groups(
|
|
|
1410
1421
|
|
|
1411
1422
|
def validate_model_group_configuration_setup() -> None:
|
|
1412
1423
|
"""Validates the model group configuration setup in endpoints.yml."""
|
|
1413
|
-
endpoints =
|
|
1424
|
+
endpoints = Configuration.get_instance().endpoints
|
|
1414
1425
|
|
|
1415
1426
|
if endpoints.model_groups is None:
|
|
1416
1427
|
return
|
|
1417
1428
|
|
|
1429
|
+
structlogger.debug(
|
|
1430
|
+
"engine.validation.validate_model_group_configuration_setup",
|
|
1431
|
+
event_info="Validating the model group configuration setup.",
|
|
1432
|
+
model_groups=endpoints.model_groups,
|
|
1433
|
+
path=endpoints.config_file_path,
|
|
1434
|
+
)
|
|
1418
1435
|
_validate_unique_model_group_ids(endpoints.model_groups)
|
|
1419
1436
|
_validate_model_group_with_multiple_models(endpoints.model_groups)
|
|
1420
1437
|
_validate_usage_of_environment_variables_in_model_group_config(
|