rasa-pro 3.13.11__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/direct_custom_actions_executor.py +9 -2
- 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/licensing.py +21 -10
- 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.11.dist-info → rasa_pro-3.14.0.dist-info}/RECORD +583 -271
- 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.11.dist-info/METADATA +0 -192
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/entry_points.txt +0 -0
rasa/validator.py
CHANGED
|
@@ -4,16 +4,16 @@ import string
|
|
|
4
4
|
from collections import defaultdict
|
|
5
5
|
from typing import Any, Dict, List, Optional, Set, Text, Tuple
|
|
6
6
|
|
|
7
|
+
import jinja2.exceptions
|
|
7
8
|
import structlog
|
|
8
9
|
from jinja2 import Template
|
|
9
|
-
from pypred import Predicate
|
|
10
10
|
from pypred.ast import CompareOperator, Literal, NegateOperator
|
|
11
11
|
|
|
12
12
|
import rasa.core.training.story_conflict
|
|
13
13
|
import rasa.shared.nlu.constants
|
|
14
|
-
|
|
15
|
-
import rasa.shared.utils.io
|
|
14
|
+
from rasa.agents.validation import validate_agent_names_not_conflicting_with_flows
|
|
16
15
|
from rasa.core.channels import UserMessage
|
|
16
|
+
from rasa.core.config.configuration import Configuration
|
|
17
17
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
18
18
|
from rasa.engine.language import Language
|
|
19
19
|
from rasa.exceptions import ValidationError
|
|
@@ -70,10 +70,11 @@ from rasa.shared.core.training_data.structures import StoryGraph
|
|
|
70
70
|
from rasa.shared.data import create_regex_pattern_reader
|
|
71
71
|
from rasa.shared.exceptions import RasaException
|
|
72
72
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
73
|
-
from rasa.shared.nlu.constants import COMMANDS
|
|
73
|
+
from rasa.shared.nlu.constants import COMMANDS, INTENT
|
|
74
74
|
from rasa.shared.nlu.training_data.message import Message
|
|
75
75
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
76
76
|
from rasa.telemetry import track_validation_error_log
|
|
77
|
+
from rasa.utils.pypred import Predicate
|
|
77
78
|
|
|
78
79
|
logger = logging.getLogger(__name__)
|
|
79
80
|
|
|
@@ -130,7 +131,7 @@ class Validator:
|
|
|
130
131
|
"""Compares list of intents in domain with intents in NLU training data."""
|
|
131
132
|
everything_is_alright = True
|
|
132
133
|
|
|
133
|
-
nlu_data_intents = {e.data[
|
|
134
|
+
nlu_data_intents = {e.data[INTENT] for e in self.intents.intent_examples}
|
|
134
135
|
|
|
135
136
|
for intent in self._non_default_intents():
|
|
136
137
|
if intent not in nlu_data_intents:
|
|
@@ -172,7 +173,7 @@ class Validator:
|
|
|
172
173
|
duplication_hash = defaultdict(set)
|
|
173
174
|
for example in self.intents.intent_examples:
|
|
174
175
|
text = example.get(rasa.shared.nlu.constants.TEXT)
|
|
175
|
-
duplication_hash[text].add(example.get(
|
|
176
|
+
duplication_hash[text].add(example.get(INTENT))
|
|
176
177
|
|
|
177
178
|
for text, intents in duplication_hash.items():
|
|
178
179
|
if len(duplication_hash[text]) > 1:
|
|
@@ -629,11 +630,14 @@ class Validator:
|
|
|
629
630
|
flow_id: str,
|
|
630
631
|
) -> bool:
|
|
631
632
|
"""Validates that a collect step can have either an action or an utterance.
|
|
633
|
+
|
|
632
634
|
Also logs an error if neither an action nor an utterance is defined.
|
|
633
635
|
|
|
634
636
|
Args:
|
|
635
637
|
collect: the name of the slot to collect
|
|
636
638
|
all_good: boolean value indicating the validation status
|
|
639
|
+
domain_slots: dictionary of domain slots
|
|
640
|
+
flow_id: the ID of the flow being validated
|
|
637
641
|
|
|
638
642
|
Returns:
|
|
639
643
|
False, if validation failed, true, otherwise
|
|
@@ -682,9 +686,10 @@ class Validator:
|
|
|
682
686
|
has_action_defined=has_action_defined,
|
|
683
687
|
flow=flow_id,
|
|
684
688
|
event_info=(
|
|
685
|
-
f"The collect step '{collect.collect}' has neither
|
|
686
|
-
f"nor an action defined,
|
|
687
|
-
f"You
|
|
689
|
+
f"The collect step '{collect.collect}' has neither a response "
|
|
690
|
+
f"nor an action defined, nor an initial value defined in the "
|
|
691
|
+
f"domain. You can fix this by adding a response named "
|
|
692
|
+
f"'{collect.utter}' used in the collect step."
|
|
688
693
|
),
|
|
689
694
|
)
|
|
690
695
|
all_good = False
|
|
@@ -1179,23 +1184,27 @@ class Validator:
|
|
|
1179
1184
|
)
|
|
1180
1185
|
|
|
1181
1186
|
if isinstance(step, CollectInformationFlowStep):
|
|
1182
|
-
|
|
1183
|
-
for
|
|
1187
|
+
dumped_predicates = [predicate.if_ for predicate in step.rejections]
|
|
1188
|
+
for dumped_predicate in dumped_predicates:
|
|
1184
1189
|
all_good = self._verify_namespaces(
|
|
1185
|
-
|
|
1190
|
+
dumped_predicate, step.id, flow.id, all_good
|
|
1186
1191
|
)
|
|
1187
1192
|
|
|
1188
|
-
|
|
1189
|
-
|
|
1193
|
+
predicate, all_good = self._construct_predicate(
|
|
1194
|
+
dumped_predicate,
|
|
1195
|
+
step.id,
|
|
1196
|
+
context,
|
|
1197
|
+
is_step=True,
|
|
1198
|
+
all_good=all_good,
|
|
1190
1199
|
)
|
|
1191
|
-
if
|
|
1200
|
+
if predicate and not predicate.is_valid():
|
|
1192
1201
|
structlogger.error(
|
|
1193
1202
|
"validator.verify_predicates.invalid_rejection",
|
|
1194
1203
|
step=step.id,
|
|
1195
1204
|
rejection=predicate,
|
|
1196
1205
|
flow=flow.id,
|
|
1197
1206
|
event_info=(
|
|
1198
|
-
f"Detected invalid rejection '{
|
|
1207
|
+
f"Detected invalid rejection '{dumped_predicate}' "
|
|
1199
1208
|
f"at `collect` step '{step.id}' "
|
|
1200
1209
|
f"for flow id '{flow.id}'. "
|
|
1201
1210
|
f"Please make sure that all conditions are valid."
|
|
@@ -1280,6 +1289,41 @@ class Validator:
|
|
|
1280
1289
|
|
|
1281
1290
|
return all_good
|
|
1282
1291
|
|
|
1292
|
+
def validate_agent_flow_conflicts(self, sub_agents_path: str) -> bool:
|
|
1293
|
+
"""Validates that agent names don't conflict with flow names.
|
|
1294
|
+
|
|
1295
|
+
Args:
|
|
1296
|
+
sub_agents_path: Path to the sub-agents directory.
|
|
1297
|
+
|
|
1298
|
+
Returns:
|
|
1299
|
+
True if validation passes, False otherwise.
|
|
1300
|
+
"""
|
|
1301
|
+
if self.flows.is_empty():
|
|
1302
|
+
return True
|
|
1303
|
+
|
|
1304
|
+
try:
|
|
1305
|
+
configuration = Configuration.get_instance()
|
|
1306
|
+
available_agents = configuration.available_agents
|
|
1307
|
+
flow_names = {flow.id for flow in self.flows.underlying_flows}
|
|
1308
|
+
|
|
1309
|
+
structlogger.debug(
|
|
1310
|
+
"validator.agent_flow_conflicts.debug",
|
|
1311
|
+
event_info="Checking conflicts between agents and flows",
|
|
1312
|
+
)
|
|
1313
|
+
|
|
1314
|
+
validate_agent_names_not_conflicting_with_flows(
|
|
1315
|
+
available_agents.agents, flow_names
|
|
1316
|
+
)
|
|
1317
|
+
return True
|
|
1318
|
+
except Exception as e:
|
|
1319
|
+
structlogger.error(
|
|
1320
|
+
"validator.agent_flow_conflicts",
|
|
1321
|
+
sub_agents_path=sub_agents_path,
|
|
1322
|
+
error=str(e),
|
|
1323
|
+
event_info=f"Agent-flow name conflict validation failed: {e}",
|
|
1324
|
+
)
|
|
1325
|
+
return False
|
|
1326
|
+
|
|
1283
1327
|
def _get_response_translation_warnings(self) -> list:
|
|
1284
1328
|
"""Collect warnings for responses missing translations.
|
|
1285
1329
|
|
|
@@ -1932,6 +1976,95 @@ class Validator:
|
|
|
1932
1976
|
|
|
1933
1977
|
return all_good
|
|
1934
1978
|
|
|
1979
|
+
def verify_prompt_templates(self) -> bool:
|
|
1980
|
+
"""Verify that all prompt templates have valid Jinja2 syntax.
|
|
1981
|
+
|
|
1982
|
+
Returns:
|
|
1983
|
+
True if all templates are valid, False otherwise.
|
|
1984
|
+
"""
|
|
1985
|
+
all_good = True
|
|
1986
|
+
|
|
1987
|
+
# Check the components in the pipeline and policies for prompt templates
|
|
1988
|
+
pipeline = self.config.get(CONFIG_PIPELINE_KEY, [])
|
|
1989
|
+
for component in pipeline:
|
|
1990
|
+
if isinstance(component, dict):
|
|
1991
|
+
component_name = component.get("name", "")
|
|
1992
|
+
prompt_template = component.get("prompt_template")
|
|
1993
|
+
if prompt_template:
|
|
1994
|
+
all_good = (
|
|
1995
|
+
self._validate_template_file(
|
|
1996
|
+
prompt_template, component_name, "pipeline component"
|
|
1997
|
+
)
|
|
1998
|
+
and all_good
|
|
1999
|
+
)
|
|
2000
|
+
|
|
2001
|
+
# Check policies for prompt templates
|
|
2002
|
+
policies = self.config.get("policies") or []
|
|
2003
|
+
for policy in policies:
|
|
2004
|
+
if isinstance(policy, dict):
|
|
2005
|
+
policy_name = policy.get("name", "")
|
|
2006
|
+
prompt_template = policy.get("prompt_template")
|
|
2007
|
+
if prompt_template:
|
|
2008
|
+
all_good = (
|
|
2009
|
+
self._validate_template_file(
|
|
2010
|
+
prompt_template, policy_name, "policy"
|
|
2011
|
+
)
|
|
2012
|
+
and all_good
|
|
2013
|
+
)
|
|
2014
|
+
|
|
2015
|
+
return all_good
|
|
2016
|
+
|
|
2017
|
+
def _validate_template_file(
|
|
2018
|
+
self, prompt_template: str, component_name: str, component_type: str
|
|
2019
|
+
) -> bool:
|
|
2020
|
+
"""Validate a single prompt template file.
|
|
2021
|
+
|
|
2022
|
+
Args:
|
|
2023
|
+
prompt_template: The template file path to validate
|
|
2024
|
+
component_name: Name of the component using the template
|
|
2025
|
+
component_type: Type of component (e.g., "policy", "pipeline component")
|
|
2026
|
+
|
|
2027
|
+
Returns:
|
|
2028
|
+
True if template is valid, False otherwise.
|
|
2029
|
+
"""
|
|
2030
|
+
try:
|
|
2031
|
+
# Use a simple default template, as we're assuming
|
|
2032
|
+
# that the default templates are valid
|
|
2033
|
+
default_template = "{{ content }}"
|
|
2034
|
+
template_content = rasa.shared.utils.llm.get_prompt_template(
|
|
2035
|
+
prompt_template,
|
|
2036
|
+
default_template,
|
|
2037
|
+
log_source_component=f"validator.{component_name}",
|
|
2038
|
+
log_source_method="init",
|
|
2039
|
+
)
|
|
2040
|
+
|
|
2041
|
+
# Validate Jinja2 syntax using the shared validation function
|
|
2042
|
+
rasa.shared.utils.llm.validate_jinja2_template(template_content)
|
|
2043
|
+
return True
|
|
2044
|
+
except jinja2.exceptions.TemplateSyntaxError as e:
|
|
2045
|
+
structlogger.error(
|
|
2046
|
+
"validator.verify_prompt_templates.syntax_error",
|
|
2047
|
+
component=component_name,
|
|
2048
|
+
component_type=component_type,
|
|
2049
|
+
event_info=(
|
|
2050
|
+
f"Invalid Jinja2 template syntax in file {prompt_template} "
|
|
2051
|
+
f"at line {e.lineno}: {e.message}"
|
|
2052
|
+
),
|
|
2053
|
+
error=str(e),
|
|
2054
|
+
template_line=e.lineno,
|
|
2055
|
+
template_file=prompt_template,
|
|
2056
|
+
)
|
|
2057
|
+
return False
|
|
2058
|
+
except Exception as e:
|
|
2059
|
+
structlogger.error(
|
|
2060
|
+
"validator.verify_prompt_templates.error",
|
|
2061
|
+
component=component_name,
|
|
2062
|
+
component_type=component_type,
|
|
2063
|
+
event_info=f"Error validating prompt template: {e}",
|
|
2064
|
+
error=str(e),
|
|
2065
|
+
)
|
|
2066
|
+
return False
|
|
2067
|
+
|
|
1935
2068
|
def validate_conditional_response_variation_predicates(self) -> bool:
|
|
1936
2069
|
"""Validate the conditional response variation predicates."""
|
|
1937
2070
|
context = {SLOTS: {slot.name: None for slot in self.domain.slots}}
|
rasa/version.py
CHANGED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: rasa-pro
|
|
3
|
+
Version: 3.14.0
|
|
4
|
+
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
|
+
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
6
|
+
Author: Rasa Technologies GmbH
|
|
7
|
+
Author-email: hi@rasa.com
|
|
8
|
+
Maintainer: Tom Bocklisch
|
|
9
|
+
Maintainer-email: tom@rasa.com
|
|
10
|
+
Requires-Python: >=3.10.0,<3.14
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
19
|
+
Provides-Extra: channels
|
|
20
|
+
Provides-Extra: full
|
|
21
|
+
Provides-Extra: gh-release-notes
|
|
22
|
+
Provides-Extra: jieba
|
|
23
|
+
Provides-Extra: metal
|
|
24
|
+
Provides-Extra: nlu
|
|
25
|
+
Provides-Extra: pii
|
|
26
|
+
Provides-Extra: spacy
|
|
27
|
+
Provides-Extra: transformers
|
|
28
|
+
Requires-Dist: CacheControl (>=0.14.2,<0.15.0)
|
|
29
|
+
Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
|
|
30
|
+
Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0)
|
|
31
|
+
Requires-Dist: a2a-sdk (>=0.3.4,<0.4.0)
|
|
32
|
+
Requires-Dist: absl-py (>=2.3.1,<2.4)
|
|
33
|
+
Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
|
|
34
|
+
Requires-Dist: aiogram (>=3.22.0,<3.23.0) ; extra == "full" or extra == "channels"
|
|
35
|
+
Requires-Dist: aiohttp (>=3.10,<3.11)
|
|
36
|
+
Requires-Dist: aioshutil (>=1.5,<1.6)
|
|
37
|
+
Requires-Dist: apscheduler (>=3.11,<3.12)
|
|
38
|
+
Requires-Dist: attrs (>=23.1,<25.0)
|
|
39
|
+
Requires-Dist: audioop-lts (>=0.2.2,<0.3.0) ; python_version >= "3.13"
|
|
40
|
+
Requires-Dist: aws-msk-iam-sasl-signer-python (>=1.0.2,<1.1.0)
|
|
41
|
+
Requires-Dist: azure-identity (>=1.24.0,<1.25.0)
|
|
42
|
+
Requires-Dist: azure-storage-blob (>=12.26.0,<12.27.0)
|
|
43
|
+
Requires-Dist: boto3 (>=1.40.21,<1.41.0)
|
|
44
|
+
Requires-Dist: certifi (>=2025.10.5,<2025.11.0)
|
|
45
|
+
Requires-Dist: colorama (>=0.4.6,<0.5.0) ; sys_platform == "win32"
|
|
46
|
+
Requires-Dist: colorclass (>=2.2,<2.3)
|
|
47
|
+
Requires-Dist: coloredlogs (>=15,<16)
|
|
48
|
+
Requires-Dist: colorhash (>=2.0,<2.1.0)
|
|
49
|
+
Requires-Dist: confluent-kafka (>=2.11.0,<3.0.0)
|
|
50
|
+
Requires-Dist: cryptography (>=45.0.6,<45.1.0)
|
|
51
|
+
Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0) ; extra == "full" or extra == "channels"
|
|
52
|
+
Requires-Dist: dask (>=2024.8.0,<2024.9.0)
|
|
53
|
+
Requires-Dist: demoji (>=1.1.0,<2.0.0)
|
|
54
|
+
Requires-Dist: diskcache (>=5.6.3,<5.7.0)
|
|
55
|
+
Requires-Dist: dnspython (==2.6.1)
|
|
56
|
+
Requires-Dist: faiss-cpu (>=1.11.0,<1.12.0)
|
|
57
|
+
Requires-Dist: fbmessenger (>=6.0.0,<6.1.0) ; extra == "full" or extra == "channels"
|
|
58
|
+
Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes"
|
|
59
|
+
Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
|
|
60
|
+
Requires-Dist: gliner (>=0.2.20,<0.3.0) ; extra == "full" or extra == "pii"
|
|
61
|
+
Requires-Dist: google-auth (>=2.40.3,<2.41.0)
|
|
62
|
+
Requires-Dist: google-cloud-storage (>=2.14.0,<2.15.0)
|
|
63
|
+
Requires-Dist: hvac (>=2.3.0,<2.4.0)
|
|
64
|
+
Requires-Dist: importlib-metadata (>=8.5.0,<8.6.0)
|
|
65
|
+
Requires-Dist: importlib-resources (>=6.5.2,<7.0.0)
|
|
66
|
+
Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full" or extra == "nlu"
|
|
67
|
+
Requires-Dist: jinja2 (>=3.1.6,<3.2.0)
|
|
68
|
+
Requires-Dist: jsonpatch (>=1.33,<2.0)
|
|
69
|
+
Requires-Dist: jsonpickle (>=3.3.0,<3.4)
|
|
70
|
+
Requires-Dist: jsonschema (>=4.22)
|
|
71
|
+
Requires-Dist: keras (>=3.11.0)
|
|
72
|
+
Requires-Dist: langchain (>=0.3.27,<0.4.0)
|
|
73
|
+
Requires-Dist: langchain-community (>=0.3.29,<0.4.0)
|
|
74
|
+
Requires-Dist: langcodes (>=3.5.0,<4.0.0)
|
|
75
|
+
Requires-Dist: litellm (>=1.69.0,<1.70.0)
|
|
76
|
+
Requires-Dist: matplotlib (>=3.9.4,<3.10.0)
|
|
77
|
+
Requires-Dist: mattermostwrapper (>=2.2,<2.3) ; extra == "full" or extra == "channels"
|
|
78
|
+
Requires-Dist: mcp (>=1.12.0,<1.13.0)
|
|
79
|
+
Requires-Dist: mitie (>=0.7.36,<0.8.0) ; extra == "full" or extra == "nlu"
|
|
80
|
+
Requires-Dist: networkx (>=3.1,<3.2)
|
|
81
|
+
Requires-Dist: numpy (>=2.1.3,<2.2.0)
|
|
82
|
+
Requires-Dist: onnxruntime (==1.22.1) ; extra == "full" or extra == "pii"
|
|
83
|
+
Requires-Dist: openai (>=1.68.2,<1.69.0)
|
|
84
|
+
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
|
|
85
|
+
Requires-Dist: opentelemetry-api (>=1.33.0,<1.34.0)
|
|
86
|
+
Requires-Dist: opentelemetry-exporter-otlp (>=1.33.0,<1.34.0)
|
|
87
|
+
Requires-Dist: opentelemetry-sdk (>=1.33.0,<1.34.0)
|
|
88
|
+
Requires-Dist: packaging (>=23.2,<23.3)
|
|
89
|
+
Requires-Dist: pep440-version-utils (>=1.2.0,<1.3.0)
|
|
90
|
+
Requires-Dist: pluggy (>=1.2.0,<2.0.0)
|
|
91
|
+
Requires-Dist: portalocker (>=2.7.0,<3.0.0)
|
|
92
|
+
Requires-Dist: prompt-toolkit (>=3.0.28,<3.0.29)
|
|
93
|
+
Requires-Dist: protobuf (>=5.29.5,<5.30.0)
|
|
94
|
+
Requires-Dist: psutil (>=5.9.5,<6.0.0)
|
|
95
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0)
|
|
96
|
+
Requires-Dist: pydot (>=1.4,<1.5)
|
|
97
|
+
Requires-Dist: pykwalify (>=1.8,<1.9)
|
|
98
|
+
Requires-Dist: pymilvus (>=2.6.1,<3.0.0)
|
|
99
|
+
Requires-Dist: pymongo (>=4.10.1,<4.11.0)
|
|
100
|
+
Requires-Dist: pypred (>=0.4.0,<0.5.0)
|
|
101
|
+
Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
|
|
102
|
+
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
|
103
|
+
Requires-Dist: python-engineio (>=4.12.2,<4.13.0)
|
|
104
|
+
Requires-Dist: python-keycloak (>=5.8.1,<5.9.0)
|
|
105
|
+
Requires-Dist: python-socketio (>=5.13,<6)
|
|
106
|
+
Requires-Dist: pytz (>=2022.7.1,<2023.0)
|
|
107
|
+
Requires-Dist: pyyaml (>=6.0.2,<6.1.0)
|
|
108
|
+
Requires-Dist: qdrant-client (>=1.9.1,<1.10.0)
|
|
109
|
+
Requires-Dist: questionary (>=2.1.1,<2.2.0)
|
|
110
|
+
Requires-Dist: randomname (>=0.2.1,<0.3.0)
|
|
111
|
+
Requires-Dist: rasa-sdk (==3.14.0)
|
|
112
|
+
Requires-Dist: redis (>=4.6.0,<6.0)
|
|
113
|
+
Requires-Dist: regex (>=2024.7.24,<2024.8.0)
|
|
114
|
+
Requires-Dist: requests (>=2.32.5,<2.33.0)
|
|
115
|
+
Requires-Dist: rich (>=14.1.0,<14.2.0)
|
|
116
|
+
Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0) ; extra == "full" or extra == "channels"
|
|
117
|
+
Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
|
|
118
|
+
Requires-Dist: safetensors (>=0.4.5,<0.5.0)
|
|
119
|
+
Requires-Dist: sanic (>=22.12,<22.13)
|
|
120
|
+
Requires-Dist: sanic-cors (>=2.2.0,<2.3.0)
|
|
121
|
+
Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
|
|
122
|
+
Requires-Dist: sanic-openapi (>=21.12.0,<22.0.0)
|
|
123
|
+
Requires-Dist: sanic-routing (>=22.8.0,<23.0.0)
|
|
124
|
+
Requires-Dist: scikit-learn (>=1.6.1,<1.7.0)
|
|
125
|
+
Requires-Dist: scipy (>=1.13.1,<1.14.0) ; python_version < "3.12"
|
|
126
|
+
Requires-Dist: scipy (>=1.14.0,<1.15.0) ; python_version >= "3.12"
|
|
127
|
+
Requires-Dist: sentencepiece (>=0.1.99,<0.2.0) ; (python_version < "3.12") and (extra == "transformers" or extra == "full" or extra == "full" or extra == "nlu")
|
|
128
|
+
Requires-Dist: sentry-sdk (>=2.8.0,<3)
|
|
129
|
+
Requires-Dist: setuptools (>=78.1.1,<78.2.0)
|
|
130
|
+
Requires-Dist: sklearn-crfsuite (>=0.5.0,<0.6.0) ; extra == "full" or extra == "nlu"
|
|
131
|
+
Requires-Dist: skops (>=0.13.0,<0.14.0) ; extra == "full" or extra == "nlu"
|
|
132
|
+
Requires-Dist: slack-sdk (>=3.36.0,<3.37.0) ; extra == "full" or extra == "channels"
|
|
133
|
+
Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full" or extra == "nlu"
|
|
134
|
+
Requires-Dist: structlog (>=25.4.0,<25.5.0)
|
|
135
|
+
Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
|
|
136
|
+
Requires-Dist: tarsafe (>=0.0.5,<0.0.6)
|
|
137
|
+
Requires-Dist: tenacity (>=8.4.1,<8.5.0)
|
|
138
|
+
Requires-Dist: tensorflow (>=2.19.0,<3.0.0) ; (sys_platform != "darwin" or platform_machine != "arm64" and python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
139
|
+
Requires-Dist: tensorflow-hub (>=0.16.0,<0.17.0) ; (python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
140
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.31) ; (sys_platform == "win32" and python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
141
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; (sys_platform == "darwin" and platform_machine != "arm64" and python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
142
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; (sys_platform == "linux" and python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
143
|
+
Requires-Dist: tensorflow-metal (>=1.2.0,<2.0.0) ; (sys_platform == "darwin" and platform_machine == "arm64" and python_version < "3.12") and (extra == "full" or extra == "metal" or extra == "nlu")
|
|
144
|
+
Requires-Dist: tensorflow-text (>=2.19.0,<3.0.0) ; (sys_platform != "win32" and platform_machine != "arm64" and platform_machine != "aarch64" and python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
145
|
+
Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
|
|
146
|
+
Requires-Dist: tf-keras (>=2.15.0,<3.0.0) ; (python_version < "3.12") and (extra == "full" or extra == "nlu")
|
|
147
|
+
Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
|
|
148
|
+
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
|
|
149
|
+
Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "transformers" or extra == "full" or extra == "nlu"
|
|
150
|
+
Requires-Dist: twilio (>=9.7.2,<9.8.0) ; extra == "full" or extra == "channels"
|
|
151
|
+
Requires-Dist: types-cachetools (>=6.2.0.20250827,<6.3.0.0)
|
|
152
|
+
Requires-Dist: types-protobuf (==4.25.0.20240417)
|
|
153
|
+
Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)
|
|
154
|
+
Requires-Dist: typing-utils (>=0.1.0,<0.2.0)
|
|
155
|
+
Requires-Dist: ujson (>=5.8,<6.0)
|
|
156
|
+
Requires-Dist: webexteamssdk (>=1.6.1,<1.7.0) ; extra == "full" or extra == "channels"
|
|
157
|
+
Requires-Dist: websockets (>=10.4,<11.0)
|
|
158
|
+
Requires-Dist: werkzeug (>=3.1.3,<4.0.0)
|
|
159
|
+
Requires-Dist: wheel (>=0.40.0)
|
|
160
|
+
Project-URL: Documentation, https://rasa.com/docs
|
|
161
|
+
Project-URL: Homepage, https://rasa.com
|
|
162
|
+
Project-URL: Repository, https://github.com/rasahq/rasa
|
|
163
|
+
Description-Content-Type: text/markdown
|
|
164
|
+
|
|
165
|
+
<h1 align="center">Rasa</h1>
|
|
166
|
+
|
|
167
|
+
<div align="center">
|
|
168
|
+
|
|
169
|
+
[](https://sonarcloud.io/summary/new_code?id=RasaHQ_rasa)
|
|
170
|
+
[](https://rasa.com/docs/docs/pro/intro)
|
|
171
|
+

|
|
172
|
+
|
|
173
|
+
</div>
|
|
174
|
+
|
|
175
|
+
<hr />
|
|
176
|
+
|
|
177
|
+
Rasa is a framework for building scalable, dynamic conversational AI assistants that integrate large language models (LLMs) to enable more contextually aware and agentic interactions. Whether you’re new to conversational AI or an experienced developer, Rasa offers enhanced flexibility, control, and performance for mission-critical applications.
|
|
178
|
+
|
|
179
|
+
**Key Features:**
|
|
180
|
+
|
|
181
|
+
- **Flows for Business Logic:** Easily define business logic through Flows, a simplified way to describe how your AI assistant should handle conversations. Flows help streamline the development process, focusing on key tasks and reducing the complexity involved in managing conversations.
|
|
182
|
+
- **Automatic Conversation Repair:** Ensure seamless interactions by automatically handling interruptions or unexpected inputs. Developers have full control to customize these repairs based on specific use cases.
|
|
183
|
+
- **Customizable and Open:** Fully customizable code that allows developers to modify Rasa to meet specific requirements, ensuring flexibility and adaptability to various conversational AI needs.
|
|
184
|
+
- **Robustness and Control:** Maintain strict adherence to business logic, preventing unwanted behaviors like prompt injection and hallucinations, leading to more reliable responses and secure interactions.
|
|
185
|
+
- **Built-in Security:** Safeguard sensitive data, control access, and ensure secure deployment, essential for production environments that demand high levels of security and compliance. Secrets are managed through Pulumi's built-in secrets management system and can be integrated with HashiCorp Vault for enterprise-grade secret management.
|
|
186
|
+
|
|
187
|
+
A [free developer license](https://rasa.com/docs/pro/intro/#who-rasa-pro-is-for) is available so you can explore and get to know Rasa. It allows you to take your assistant live in production a limited capacity. A paid license is required for larger-scale production use, but all code is visible and can be customized as needed.
|
|
188
|
+
|
|
189
|
+
To get started right now, you can
|
|
190
|
+
|
|
191
|
+
`pip install rasa-pro`
|
|
192
|
+
|
|
193
|
+
Check out our
|
|
194
|
+
|
|
195
|
+
- [Rasa Quickstart](https://rasa.com/docs/learn/quickstart/pro),
|
|
196
|
+
- [Conversational AI with Language Models (CALM) conceptual rundown](https://rasa.com/docs/learn/concepts/calm),
|
|
197
|
+
- [Rasa tutorial](https://rasa.com/docs/pro/tutorial), and
|
|
198
|
+
- [Changelog](https://rasa.com/docs/reference/changelogs/rasa-pro-changelog)
|
|
199
|
+
|
|
200
|
+
for more. Also feel free to reach out to us on the [Rasa forum](https://forum.rasa.com/).
|
|
201
|
+
|
|
202
|
+
## Secrets Management
|
|
203
|
+
|
|
204
|
+
This project uses a multi-layered approach to secrets management:
|
|
205
|
+
|
|
206
|
+
- **Pulumi Secrets**: Primary secrets management through Pulumi's built-in configuration system (`pulumi.Config()`)
|
|
207
|
+
- **Kubernetes Secrets**: Application secrets are stored as Kubernetes secrets in the cluster
|
|
208
|
+
- **Vault Integration**: Optional HashiCorp Vault support for enterprise-grade secret management
|
|
209
|
+
- **AWS Secrets Manager**: Used selectively for specific services (e.g., database credentials in integration tests)
|
|
210
|
+
|
|
211
|
+
For infrastructure deployment, secrets are managed through Pulumi configuration files and environment variables, providing secure and flexible secret management across different deployment environments.
|
|
212
|
+
|