rasa-pro 3.14.0.dev6__py3-none-any.whl → 3.14.0.dev8__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/agents/agent_manager.py +1 -1
- rasa/agents/constants.py +2 -2
- rasa/agents/exceptions.py +31 -1
- rasa/agents/protocol/a2a/a2a_agent.py +385 -227
- rasa/agents/protocol/mcp/mcp_base_agent.py +37 -19
- rasa/agents/protocol/mcp/mcp_open_agent.py +31 -8
- rasa/agents/protocol/mcp/mcp_task_agent.py +33 -10
- rasa/agents/schemas/agent_output.py +1 -1
- rasa/agents/utils.py +95 -1
- rasa/agents/validation.py +484 -0
- rasa/api.py +9 -6
- rasa/builder/README.md +120 -0
- rasa/builder/__init__.py +0 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +92 -0
- rasa/builder/copilot/__init__.py +0 -0
- rasa/builder/copilot/constants.py +31 -0
- rasa/builder/copilot/copilot.py +450 -0
- rasa/builder/copilot/copilot_response_handler.py +522 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
- rasa/builder/copilot/exceptions.py +32 -0
- rasa/builder/copilot/models.py +500 -0
- rasa/builder/copilot/prompts/__init__.py +0 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +766 -0
- rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
- rasa/builder/copilot/signing.py +305 -0
- rasa/builder/copilot/telemetry.py +210 -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 +38 -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/constants.py +9 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/lakera.py +206 -0
- rasa/builder/guardrails/models.py +231 -0
- rasa/builder/guardrails/store.py +238 -0
- rasa/builder/guardrails/utils.py +328 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +282 -0
- rasa/builder/llm_service.py +246 -0
- rasa/builder/logging_utils.py +265 -0
- rasa/builder/main.py +243 -0
- rasa/builder/models.py +216 -0
- rasa/builder/project_generator.py +458 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/scrape_rasa_docs.py +97 -0
- rasa/builder/service.py +1345 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/template_cache.py +244 -0
- rasa/builder/training_service.py +194 -0
- rasa/builder/validation_service.py +97 -0
- rasa/cli/arguments/train.py +2 -0
- rasa/cli/interactive.py +2 -0
- 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 +9 -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 +8 -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/default/config.yml +4 -0
- rasa/cli/project_templates/default/endpoints.yml +4 -0
- rasa/cli/project_templates/finance/README.md +25 -0
- rasa/cli/project_templates/finance/actions/__init__.py +46 -0
- rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
- rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
- rasa/cli/project_templates/finance/actions/actions.md +15 -0
- rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
- rasa/cli/project_templates/finance/actions/database.py +277 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
- rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
- rasa/cli/project_templates/finance/config.yml +23 -0
- rasa/cli/project_templates/finance/credentials.yml +32 -0
- rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
- rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
- rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
- rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
- rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
- rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
- rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
- rasa/cli/project_templates/finance/csvs/users.csv +4 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
- rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/data/data.md +11 -0
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
- rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
- rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
- rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
- rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
- rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
- rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
- rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
- rasa/cli/project_templates/finance/domain/domain.md +10 -0
- rasa/cli/project_templates/finance/domain/general/agent_details.yml +12 -0
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
- rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
- rasa/cli/project_templates/finance/endpoints.yml +66 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -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 +5 -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 +14 -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 +75 -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/billing/understand_bill.yml +67 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/feedback.yml +46 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/goodbye.yml +9 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/hello.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/general/patterns.yml +23 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/network/solve_internet_issue.yml +57 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/scaffold.py +46 -2
- rasa/cli/train.py +2 -0
- rasa/cli/utils.py +85 -1
- rasa/core/actions/action.py +2 -7
- rasa/core/available_agents.py +49 -26
- rasa/core/available_endpoints.py +17 -2
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +2 -22
- rasa/core/channels/inspector/README.md +26 -14
- rasa/core/channels/inspector/dist/assets/{arc-63212852.js → arc-edef10dd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-eecf6b13.js → blockDiagram-38ab4fdb-49f6762b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-8f798a9a.js → c4Diagram-3d4e48cf-313c08e6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-63aa27d1.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-df71a04c.js → classDiagram-70f12bd4-35e41ce9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9b275968.js → classDiagram-v2-f2320105-f346068d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-5566bae8.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-1c669cad.js → createText-2e5e7dd3-7a44bce8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b1553799.js → edges-e0da2a9e-d7cf78c7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-112388d6.js → erDiagram-9861fffd-9813e81c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-fdebec47.js → flowDb-956e92f1-d8ba0870.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-6280ede1.js → flowDiagram-66a62f08-51f0db4d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-32936074.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-e1dc03e5.js → flowchart-elk-definition-4a651766-ff9ea384.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-83f68c51.js → ganttDiagram-c361ad54-a8e13b6b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-22f8666f.js → gitGraphDiagram-72cf32ee-3b171c6d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-ca9e6217.js → graph-790ef78b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-c5ceb692.js → index-3862675e-ecdce073.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-d705da80.js +1352 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-faa9999b.js → infoDiagram-f8f76790-f5a422fe.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-c4dda8d9.js → journeyDiagram-49397b02-3185b7ac.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-d4307784.js → layout-837fd3aa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-0567aaa7.js → line-7e05afcb.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-c11b95cf.js → linear-162eb295.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-0c7d3ca9.js → mindmap-definition-fc14e90a-f4978aee.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-34b433fa.js → pieDiagram-8a3498a8-b25d0a52.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-4cab816e.js → quadrantDiagram-120e2f19-63db1afa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-8c22fa9e.js → requirementDiagram-deff3bca-1b486cc9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-70ce9e8e.js → sankeyDiagram-04a897e0-7e795291.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-fbcd7fc9.js → sequenceDiagram-704730f1-b8aba159.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-45f05ea6.js → stateDiagram-587899a1-41529fd5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-beab1ea6.js → stateDiagram-v2-d93cdb3a-b241043c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-2f29dbd5.js → styles-6aaf32cf-b5b53234.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-951eac83.js → styles-9a916d00-13d138e5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-897fbfdd.js → styles-c10674c1-94cbde3f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-d667fac1.js → svgDrawCommon-08f97a94-453ae764.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-e3205144.js → timeline-definition-85554ec2-8dcb88a4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-4abeb0e2.js → xychartDiagram-e933f94c-376af5f0.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +2 -2
- rasa/core/channels/inspector/index.html +1 -1
- rasa/core/channels/inspector/src/App.tsx +42 -44
- rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
- rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
- rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +8 -8
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +20 -3
- rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +63 -35
- rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +14 -0
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
- 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/types.ts +49 -7
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +59 -57
- 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 +3 -0
- rasa/core/channels/voice_stream/browser_audio.py +53 -3
- rasa/core/channels/voice_stream/genesys.py +2 -1
- rasa/core/channels/voice_stream/jambonz.py +9 -1
- rasa/core/channels/voice_stream/twilio_media_streams.py +16 -0
- rasa/core/channels/voice_stream/voice_channel.py +66 -3
- rasa/core/constants.py +6 -0
- rasa/core/iam_credentials_providers/__init__.py +0 -0
- rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +66 -0
- rasa/core/iam_credentials_providers/credentials_provider_protocol.py +89 -0
- rasa/core/policies/enterprise_search_policy.py +4 -7
- rasa/core/policies/flows/flow_executor.py +66 -36
- rasa/core/policies/ted_policy.py +7 -5
- rasa/core/processor.py +32 -0
- rasa/core/redis_connection_factory.py +411 -0
- rasa/core/run.py +13 -3
- rasa/core/tracker_stores/redis_tracker_store.py +32 -14
- rasa/core/tracker_stores/sql_tracker_store.py +57 -1
- rasa/dialogue_understanding/commands/cancel_flow_command.py +2 -81
- rasa/dialogue_understanding/commands/start_flow_command.py +18 -113
- rasa/dialogue_understanding/commands/utils.py +118 -0
- rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +10 -5
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +10 -5
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +20 -12
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +19 -12
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +6 -35
- rasa/dialogue_understanding/patterns/cancel.py +27 -6
- rasa/dialogue_understanding/patterns/clarify.py +3 -14
- rasa/dialogue_understanding/patterns/continue_interrupted.py +185 -114
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +18 -24
- rasa/dialogue_understanding/processor/command_processor.py +35 -0
- rasa/dialogue_understanding/stack/utils.py +43 -4
- rasa/dialogue_understanding/utils.py +24 -4
- rasa/engine/graph.py +5 -1
- rasa/engine/recipes/default_components.py +78 -10
- rasa/engine/recipes/default_recipe.py +41 -1
- rasa/engine/storage/local_model_storage.py +83 -3
- rasa/graph_components/validators/default_recipe_validator.py +153 -135
- rasa/model_manager/model_api.py +4 -5
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +20 -15
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +1 -1
- rasa/model_training.py +22 -6
- rasa/nlu/classifiers/diet_classifier.py +22 -6
- rasa/nlu/classifiers/logistic_regression_classifier.py +18 -0
- rasa/nlu/extractors/extractor.py +1 -2
- rasa/shared/agents/auth/__init__.py +0 -0
- rasa/shared/agents/auth/agent_auth_factory.py +74 -0
- rasa/shared/agents/auth/agent_auth_manager.py +86 -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 +159 -0
- rasa/shared/agents/auth/constants.py +11 -0
- rasa/shared/agents/auth/types.py +11 -0
- rasa/shared/constants.py +3 -0
- rasa/shared/core/constants.py +6 -6
- rasa/shared/core/domain.py +58 -11
- rasa/shared/core/events.py +2 -0
- rasa/shared/core/flows/constants.py +5 -0
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +6 -0
- rasa/shared/core/flows/steps/call.py +15 -12
- rasa/shared/core/flows/validation.py +238 -44
- rasa/shared/core/flows/yaml_flows_io.py +15 -6
- rasa/shared/core/slots.py +4 -0
- rasa/shared/exceptions.py +12 -0
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/utils.py +77 -1
- rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
- rasa/shared/providers/_utils.py +60 -44
- rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
- rasa/shared/providers/llm/_base_litellm_client.py +2 -2
- rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
- rasa/shared/providers/llm/llm_response.py +4 -4
- rasa/shared/utils/common.py +24 -0
- rasa/shared/utils/health_check/health_check.py +7 -3
- rasa/shared/utils/llm.py +2 -1
- rasa/shared/utils/mcp/server_connection.py +108 -27
- rasa/shared/utils/mcp/utils.py +20 -0
- rasa/studio/upload.py +16 -47
- rasa/telemetry.py +97 -23
- rasa/tracing/config.py +38 -12
- rasa/tracing/instrumentation/attribute_extractors.py +5 -1
- rasa/tracing/instrumentation/instrumentation.py +85 -8
- rasa/utils/common.py +1 -1
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/log_utils.py +5 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/tensorflow/__init__.py +29 -0
- rasa/utils/tensorflow/callback.py +1 -1
- rasa/utils/tensorflow/crf.py +1 -1
- rasa/utils/tensorflow/data_generator.py +21 -8
- rasa/utils/tensorflow/layers.py +11 -4
- rasa/utils/tensorflow/metrics.py +7 -3
- rasa/utils/tensorflow/models.py +41 -6
- rasa/utils/tensorflow/rasa_layers.py +6 -4
- rasa/utils/tensorflow/transformer.py +2 -3
- rasa/utils/train_utils.py +68 -38
- rasa/validator.py +18 -16
- rasa/version.py +1 -1
- rasa_pro-3.14.0.dev8.dist-info/METADATA +199 -0
- {rasa_pro-3.14.0.dev6.dist-info → rasa_pro-3.14.0.dev8.dist-info}/RECORD +486 -173
- rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-3e293924.js +0 -1353
- rasa_pro-3.14.0.dev6.dist-info/METADATA +0 -190
- {rasa_pro-3.14.0.dev6.dist-info → rasa_pro-3.14.0.dev8.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev6.dist-info → rasa_pro-3.14.0.dev8.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev6.dist-info → rasa_pro-3.14.0.dev8.dist-info}/entry_points.txt +0 -0
rasa/utils/tensorflow/metrics.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from typing import Any, Dict, Optional
|
|
2
2
|
|
|
3
3
|
import tensorflow as tf
|
|
4
|
-
from tensorflow.keras import backend as K
|
|
5
4
|
from tensorflow.types.experimental import TensorLike
|
|
6
5
|
|
|
7
6
|
# original code taken from
|
|
@@ -118,7 +117,7 @@ class FBetaScore(tf.keras.metrics.Metric):
|
|
|
118
117
|
|
|
119
118
|
def _zero_wt_init(name: Any) -> Any:
|
|
120
119
|
return self.add_weight(
|
|
121
|
-
name, shape=self.init_shape, initializer="zeros", dtype=self.dtype
|
|
120
|
+
name=name, shape=self.init_shape, initializer="zeros", dtype=self.dtype
|
|
122
121
|
)
|
|
123
122
|
|
|
124
123
|
self.true_positives = _zero_wt_init("true_positives")
|
|
@@ -197,7 +196,12 @@ class FBetaScore(tf.keras.metrics.Metric):
|
|
|
197
196
|
|
|
198
197
|
def reset_state(self) -> None:
|
|
199
198
|
reset_value = tf.zeros(self.init_shape, dtype=self.dtype)
|
|
200
|
-
|
|
199
|
+
# In Keras 3.x, self.variables contains string names, not variable objects,
|
|
200
|
+
# so each metric variable is reset using assign() instead of K.batch_set_value()
|
|
201
|
+
self.true_positives.assign(reset_value)
|
|
202
|
+
self.false_positives.assign(reset_value)
|
|
203
|
+
self.false_negatives.assign(reset_value)
|
|
204
|
+
self.weights_intermediate.assign(reset_value)
|
|
201
205
|
|
|
202
206
|
def reset_states(self) -> None:
|
|
203
207
|
# Backwards compatibility alias of `reset_state`. New classes should
|
rasa/utils/tensorflow/models.py
CHANGED
|
@@ -8,7 +8,6 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Tuple, Union
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import tensorflow as tf
|
|
10
10
|
from keras import Model
|
|
11
|
-
from keras.src.utils import tf_utils
|
|
12
11
|
|
|
13
12
|
import rasa.utils.train_utils
|
|
14
13
|
from rasa.shared.constants import DIAGNOSTIC_DATA
|
|
@@ -78,6 +77,7 @@ class RasaModel(Model):
|
|
|
78
77
|
|
|
79
78
|
Args:
|
|
80
79
|
random_seed: set the random seed to get reproducible results
|
|
80
|
+
**kwargs: Additional keyword arguments passed to the parent class
|
|
81
81
|
"""
|
|
82
82
|
# make sure that keras releases resources from previously trained model
|
|
83
83
|
tf.keras.backend.clear_session()
|
|
@@ -273,7 +273,8 @@ class RasaModel(Model):
|
|
|
273
273
|
if self._run_eagerly:
|
|
274
274
|
# Once we take advantage of TF's distributed training, this is where
|
|
275
275
|
# scheduled functions will be forced to execute and return actual values.
|
|
276
|
-
|
|
276
|
+
step_output = self.predict_step(batch_in)
|
|
277
|
+
outputs = self._convert_tensors_to_numpy(step_output)
|
|
277
278
|
if DIAGNOSTIC_DATA in outputs:
|
|
278
279
|
outputs[DIAGNOSTIC_DATA] = self._empty_lists_to_none_in_dict(
|
|
279
280
|
outputs[DIAGNOSTIC_DATA]
|
|
@@ -287,9 +288,8 @@ class RasaModel(Model):
|
|
|
287
288
|
|
|
288
289
|
# Once we take advantage of TF's distributed training, this is where
|
|
289
290
|
# scheduled functions will be forced to execute and return actual values.
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
)
|
|
291
|
+
step_output = self._tf_predict_step(list(batch_in))
|
|
292
|
+
outputs = self._convert_tensors_to_numpy(step_output)
|
|
293
293
|
if DIAGNOSTIC_DATA in outputs:
|
|
294
294
|
outputs[DIAGNOSTIC_DATA] = self._empty_lists_to_none_in_dict(
|
|
295
295
|
outputs[DIAGNOSTIC_DATA]
|
|
@@ -388,6 +388,23 @@ class RasaModel(Model):
|
|
|
388
388
|
|
|
389
389
|
return {k: _recurse(v) for k, v in input_dict.items()}
|
|
390
390
|
|
|
391
|
+
def _convert_tensors_to_numpy(
|
|
392
|
+
self, step_output: Dict[Text, Any]
|
|
393
|
+
) -> Dict[Text, Any]:
|
|
394
|
+
"""Convert TensorFlow tensors to numpy arrays for Keras 3.x compatibility.
|
|
395
|
+
|
|
396
|
+
Replaces the deprecated tf_utils.sync_to_numpy_or_python_type() function.
|
|
397
|
+
Converts tensors (objects with 'numpy' method) to numpy arrays,
|
|
398
|
+
leaves others unchanged.
|
|
399
|
+
"""
|
|
400
|
+
outputs = {}
|
|
401
|
+
for key, value in step_output.items():
|
|
402
|
+
if hasattr(value, "numpy"):
|
|
403
|
+
outputs[key] = value.numpy()
|
|
404
|
+
else:
|
|
405
|
+
outputs[key] = value
|
|
406
|
+
return outputs
|
|
407
|
+
|
|
391
408
|
def _get_metric_results(self, prefix: Optional[Text] = "") -> Dict[Text, float]:
|
|
392
409
|
return {
|
|
393
410
|
f"{prefix}{metric.name}": metric.result()
|
|
@@ -403,7 +420,18 @@ class RasaModel(Model):
|
|
|
403
420
|
overwrite: If 'True' an already existing model with the same file name will
|
|
404
421
|
be overwritten.
|
|
405
422
|
"""
|
|
406
|
-
|
|
423
|
+
# Ensure filename ends with .weights.h5 and model is built for Keras 3.x
|
|
424
|
+
# compatibility
|
|
425
|
+
model_file_name = str(model_file_name)
|
|
426
|
+
if not model_file_name.endswith(".weights.h5"):
|
|
427
|
+
model_file_name += ".weights.h5"
|
|
428
|
+
|
|
429
|
+
if not self.built:
|
|
430
|
+
import tensorflow as tf
|
|
431
|
+
|
|
432
|
+
_ = self(tf.zeros((1, 1)))
|
|
433
|
+
|
|
434
|
+
self.save_weights(model_file_name, overwrite=overwrite)
|
|
407
435
|
|
|
408
436
|
@classmethod
|
|
409
437
|
def load(
|
|
@@ -444,6 +472,13 @@ class RasaModel(Model):
|
|
|
444
472
|
)
|
|
445
473
|
data_generator = RasaBatchDataGenerator(model_data_example, batch_size=1)
|
|
446
474
|
model.fit(data_generator, verbose=False)
|
|
475
|
+
|
|
476
|
+
# Ensure model is built before loading weights (Keras 3 compatibility)
|
|
477
|
+
if not model.built:
|
|
478
|
+
# Build the model by calling it on sample data
|
|
479
|
+
sample_batch = next(iter(data_generator))
|
|
480
|
+
_ = model(sample_batch)
|
|
481
|
+
|
|
447
482
|
# load trained weights
|
|
448
483
|
model.load_weights(model_file_name)
|
|
449
484
|
|
|
@@ -301,12 +301,12 @@ class ConcatenateSparseDenseFeatures(RasaCustomLayer):
|
|
|
301
301
|
) -> tf.Tensor:
|
|
302
302
|
"""Turns sparse tensor into dense, possibly adds dropout before and/or after."""
|
|
303
303
|
if self.SPARSE_DROPOUT in self._tf_layers:
|
|
304
|
-
feature = self._tf_layers[self.SPARSE_DROPOUT](feature, training)
|
|
304
|
+
feature = self._tf_layers[self.SPARSE_DROPOUT](feature, training=training)
|
|
305
305
|
|
|
306
306
|
feature = self._tf_layers[self.SPARSE_TO_DENSE](feature)
|
|
307
307
|
|
|
308
308
|
if self.DENSE_DROPOUT in self._tf_layers:
|
|
309
|
-
feature = self._tf_layers[self.DENSE_DROPOUT](feature, training)
|
|
309
|
+
feature = self._tf_layers[self.DENSE_DROPOUT](feature, training=training)
|
|
310
310
|
|
|
311
311
|
return feature
|
|
312
312
|
|
|
@@ -1002,7 +1002,9 @@ class RasaSequenceLayer(RasaCustomLayer):
|
|
|
1002
1002
|
]((sequence_features, sentence_features, sequence_feature_lengths))
|
|
1003
1003
|
|
|
1004
1004
|
# Apply one or more dense layers.
|
|
1005
|
-
seq_sent_features = self._tf_layers[self.FFNN](
|
|
1005
|
+
seq_sent_features = self._tf_layers[self.FFNN](
|
|
1006
|
+
seq_sent_features, training=training
|
|
1007
|
+
)
|
|
1006
1008
|
|
|
1007
1009
|
# If using masked language modeling, mask the transformer inputs and get labels
|
|
1008
1010
|
# for the masked tokens and a boolean mask. Note that TED does not use MLM loss,
|
|
@@ -1031,7 +1033,7 @@ class RasaSequenceLayer(RasaCustomLayer):
|
|
|
1031
1033
|
if self._has_transformer:
|
|
1032
1034
|
mask_padding = 1 - mask_combined_sequence_sentence
|
|
1033
1035
|
outputs, attention_weights = self._tf_layers[self.TRANSFORMER](
|
|
1034
|
-
seq_sent_features_masked, mask_padding, training
|
|
1036
|
+
seq_sent_features_masked, mask_padding, training=training
|
|
1035
1037
|
)
|
|
1036
1038
|
outputs = tf.nn.gelu(outputs)
|
|
1037
1039
|
else:
|
|
@@ -2,10 +2,8 @@ from typing import Optional, Text, Tuple, Union
|
|
|
2
2
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
import tensorflow as tf
|
|
5
|
-
|
|
6
|
-
# TODO: The following is not (yet) available via tf.keras
|
|
7
|
-
from keras.src.utils.control_flow_util import smart_cond
|
|
8
5
|
from tensorflow.keras import backend as K
|
|
6
|
+
from tensorflow.python.keras.utils.control_flow_util import smart_cond
|
|
9
7
|
|
|
10
8
|
from rasa.utils.tensorflow.exceptions import TFLayerConfigException
|
|
11
9
|
from rasa.utils.tensorflow.layers import RandomlyConnectedDense
|
|
@@ -280,6 +278,7 @@ class MultiHeadAttention(tf.keras.layers.Layer):
|
|
|
280
278
|
value: A tensor with shape (..., length, depth).
|
|
281
279
|
pad_mask: Float tensor with shape broadcastable
|
|
282
280
|
to (..., length, length). Defaults to None.
|
|
281
|
+
training: A tensor
|
|
283
282
|
|
|
284
283
|
Returns:
|
|
285
284
|
output: A tensor with shape (..., length, depth).
|
rasa/utils/train_utils.py
CHANGED
|
@@ -11,29 +11,57 @@ from rasa.nlu.constants import NUMBER_OF_SUB_TOKENS
|
|
|
11
11
|
from rasa.shared.constants import NEXT_MAJOR_VERSION_FOR_DEPRECATIONS
|
|
12
12
|
from rasa.shared.exceptions import InvalidConfigException
|
|
13
13
|
from rasa.shared.nlu.constants import SPLIT_ENTITIES_BY_COMMA
|
|
14
|
-
from rasa.utils.tensorflow
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
14
|
+
from rasa.utils.tensorflow import TENSORFLOW_AVAILABLE
|
|
15
|
+
|
|
16
|
+
# Conditional imports for TensorFlow-dependent modules
|
|
17
|
+
if TENSORFLOW_AVAILABLE:
|
|
18
|
+
from rasa.utils.tensorflow.callback import RasaModelCheckpoint, RasaTrainingLogger
|
|
19
|
+
from rasa.utils.tensorflow.constants import (
|
|
20
|
+
AUTO,
|
|
21
|
+
CHECKPOINT_MODEL,
|
|
22
|
+
CONSTRAIN_SIMILARITIES,
|
|
23
|
+
COSINE,
|
|
24
|
+
CROSS_ENTROPY,
|
|
25
|
+
EPOCHS,
|
|
26
|
+
EVAL_NUM_EPOCHS,
|
|
27
|
+
EVAL_NUM_EXAMPLES,
|
|
28
|
+
INNER,
|
|
29
|
+
LOSS_TYPE,
|
|
30
|
+
MARGIN,
|
|
31
|
+
MODEL_CONFIDENCE,
|
|
32
|
+
RANKING_LENGTH,
|
|
33
|
+
RENORMALIZE_CONFIDENCES,
|
|
34
|
+
SEQUENCE,
|
|
35
|
+
SIMILARITY_TYPE,
|
|
36
|
+
SOFTMAX,
|
|
37
|
+
TOLERANCE,
|
|
38
|
+
)
|
|
39
|
+
from rasa.utils.tensorflow.data_generator import RasaBatchDataGenerator
|
|
40
|
+
from rasa.utils.tensorflow.model_data import RasaModelData
|
|
41
|
+
else:
|
|
42
|
+
# Placeholder values when TensorFlow is not available
|
|
43
|
+
RasaModelCheckpoint = None # type: ignore
|
|
44
|
+
RasaTrainingLogger = None # type: ignore
|
|
45
|
+
RasaBatchDataGenerator = None # type: ignore
|
|
46
|
+
RasaModelData = None # type: ignore
|
|
47
|
+
AUTO = "auto"
|
|
48
|
+
CHECKPOINT_MODEL = "checkpoint_model"
|
|
49
|
+
CONSTRAIN_SIMILARITIES = "constrain_similarities"
|
|
50
|
+
COSINE = "cosine"
|
|
51
|
+
CROSS_ENTROPY = "cross_entropy"
|
|
52
|
+
EPOCHS = "epochs"
|
|
53
|
+
EVAL_NUM_EPOCHS = "eval_num_epochs"
|
|
54
|
+
EVAL_NUM_EXAMPLES = "eval_num_examples"
|
|
55
|
+
INNER = "inner"
|
|
56
|
+
LOSS_TYPE = "loss_type"
|
|
57
|
+
MARGIN = "margin"
|
|
58
|
+
MODEL_CONFIDENCE = "model_confidence"
|
|
59
|
+
RANKING_LENGTH = "ranking_length"
|
|
60
|
+
RENORMALIZE_CONFIDENCES = "renormalize_confidences"
|
|
61
|
+
SEQUENCE = "sequence"
|
|
62
|
+
SIMILARITY_TYPE = "similarity_type"
|
|
63
|
+
SOFTMAX = "softmax"
|
|
64
|
+
TOLERANCE = "tolerance"
|
|
37
65
|
|
|
38
66
|
if TYPE_CHECKING:
|
|
39
67
|
from tensorflow.keras.callbacks import Callback
|
|
@@ -87,7 +115,9 @@ def rank_and_mask(
|
|
|
87
115
|
|
|
88
116
|
|
|
89
117
|
def update_similarity_type(config: Dict[Text, Any]) -> Dict[Text, Any]:
|
|
90
|
-
"""
|
|
118
|
+
"""Function to update the similarity type in the model configuration.
|
|
119
|
+
|
|
120
|
+
If SIMILARITY_TYPE is set to 'auto', update the SIMILARITY_TYPE depending
|
|
91
121
|
on the LOSS_TYPE.
|
|
92
122
|
|
|
93
123
|
Args:
|
|
@@ -371,20 +401,20 @@ def create_common_callbacks(
|
|
|
371
401
|
Returns:
|
|
372
402
|
A list of callbacks.
|
|
373
403
|
"""
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
callbacks = []
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
404
|
+
import tensorflow as tf
|
|
405
|
+
|
|
406
|
+
callbacks = [RasaTrainingLogger(epochs, silent=False)]
|
|
407
|
+
|
|
408
|
+
if tensorboard_log_dir:
|
|
409
|
+
callbacks.append(
|
|
410
|
+
tf.keras.callbacks.TensorBoard(
|
|
411
|
+
log_dir=tensorboard_log_dir,
|
|
412
|
+
update_freq=tensorboard_log_level,
|
|
413
|
+
write_graph=True,
|
|
414
|
+
write_images=True,
|
|
415
|
+
histogram_freq=10,
|
|
416
|
+
)
|
|
417
|
+
)
|
|
388
418
|
|
|
389
419
|
if checkpoint_dir:
|
|
390
420
|
callbacks.append(RasaModelCheckpoint(checkpoint_dir))
|
rasa/validator.py
CHANGED
|
@@ -9,7 +9,7 @@ from jinja2 import Template
|
|
|
9
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
14
|
import rasa.shared.utils.cli
|
|
15
15
|
import rasa.shared.utils.io
|
|
@@ -60,8 +60,7 @@ from rasa.shared.core.flows.utils import (
|
|
|
60
60
|
get_invalid_slot_persistence_config_error_message,
|
|
61
61
|
warn_deprecated_collect_step_config,
|
|
62
62
|
)
|
|
63
|
-
|
|
64
|
-
# from rasa.shared.core.generator import TrainingDataGenerator
|
|
63
|
+
from rasa.shared.core.generator import TrainingDataGenerator
|
|
65
64
|
from rasa.shared.core.slot_mappings import CoexistenceSystemType
|
|
66
65
|
from rasa.shared.core.slots import BooleanSlot, CategoricalSlot, ListSlot, Slot
|
|
67
66
|
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
@@ -447,18 +446,17 @@ class Validator:
|
|
|
447
446
|
event_info="Story structure validation...",
|
|
448
447
|
)
|
|
449
448
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
449
|
+
trackers = TrainingDataGenerator(
|
|
450
|
+
self.story_graph,
|
|
451
|
+
domain=self.domain,
|
|
452
|
+
remove_duplicates=False,
|
|
453
|
+
augmentation_factor=0,
|
|
454
|
+
).generate_story_trackers()
|
|
456
455
|
|
|
457
456
|
# Create a list of `StoryConflict` objects
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
conflicts = None
|
|
457
|
+
conflicts = rasa.core.training.story_conflict.find_story_conflicts(
|
|
458
|
+
trackers, self.domain, max_history
|
|
459
|
+
)
|
|
462
460
|
|
|
463
461
|
if not conflicts:
|
|
464
462
|
structlogger.info(
|
|
@@ -631,11 +629,14 @@ class Validator:
|
|
|
631
629
|
flow_id: str,
|
|
632
630
|
) -> bool:
|
|
633
631
|
"""Validates that a collect step can have either an action or an utterance.
|
|
632
|
+
|
|
634
633
|
Also logs an error if neither an action nor an utterance is defined.
|
|
635
634
|
|
|
636
635
|
Args:
|
|
637
636
|
collect: the name of the slot to collect
|
|
638
637
|
all_good: boolean value indicating the validation status
|
|
638
|
+
domain_slots: dictionary of domain slots
|
|
639
|
+
flow_id: the ID of the flow being validated
|
|
639
640
|
|
|
640
641
|
Returns:
|
|
641
642
|
False, if validation failed, true, otherwise
|
|
@@ -684,9 +685,10 @@ class Validator:
|
|
|
684
685
|
has_action_defined=has_action_defined,
|
|
685
686
|
flow=flow_id,
|
|
686
687
|
event_info=(
|
|
687
|
-
f"The collect step '{collect.collect}' has neither
|
|
688
|
-
f"nor an action defined,
|
|
689
|
-
f"You
|
|
688
|
+
f"The collect step '{collect.collect}' has neither a response "
|
|
689
|
+
f"nor an action defined, nor an initial value defined in the "
|
|
690
|
+
f"domain. You can fix this by adding a response named "
|
|
691
|
+
f"'{collect.utter}' used in the collect step."
|
|
690
692
|
),
|
|
691
693
|
)
|
|
692
694
|
all_good = False
|
rasa/version.py
CHANGED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: rasa-pro
|
|
3
|
+
Version: 3.14.0.dev8
|
|
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: agents
|
|
20
|
+
Provides-Extra: agents-a2a
|
|
21
|
+
Provides-Extra: agents-mcp
|
|
22
|
+
Provides-Extra: full
|
|
23
|
+
Provides-Extra: gh-release-notes
|
|
24
|
+
Provides-Extra: jieba
|
|
25
|
+
Provides-Extra: pii
|
|
26
|
+
Provides-Extra: psycopg2-binary
|
|
27
|
+
Provides-Extra: qdrant-client
|
|
28
|
+
Provides-Extra: redis
|
|
29
|
+
Provides-Extra: skops
|
|
30
|
+
Provides-Extra: spacy
|
|
31
|
+
Provides-Extra: tensorflow
|
|
32
|
+
Requires-Dist: CacheControl (>=0.14.2,<0.15.0)
|
|
33
|
+
Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
|
|
34
|
+
Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0) ; extra == "full"
|
|
35
|
+
Requires-Dist: a2a-sdk (>=0.3.4,<0.4.0) ; extra == "agents" or extra == "agents-a2a" or extra == "full"
|
|
36
|
+
Requires-Dist: absl-py (>=2.0,<2.1) ; extra == "full"
|
|
37
|
+
Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
|
|
38
|
+
Requires-Dist: aiogram (>=3.22.0,<4.0.0) ; extra == "full"
|
|
39
|
+
Requires-Dist: aiohttp (>=3.10,<3.11)
|
|
40
|
+
Requires-Dist: apscheduler (>=3.10,<3.11)
|
|
41
|
+
Requires-Dist: attrs (>=23.1,<25.0) ; extra == "full"
|
|
42
|
+
Requires-Dist: azure-identity (>=1.24.0,<1.25.0)
|
|
43
|
+
Requires-Dist: azure-storage-blob (>=12.26.0,<12.27.0) ; extra == "full"
|
|
44
|
+
Requires-Dist: boto3 (>=1.40.21,<1.41.0)
|
|
45
|
+
Requires-Dist: certifi (>=2024.07.04) ; extra == "full"
|
|
46
|
+
Requires-Dist: colorama (>=0.4.6,<0.5.0) ; sys_platform == "win32"
|
|
47
|
+
Requires-Dist: colorclass (>=2.2,<2.3) ; extra == "full"
|
|
48
|
+
Requires-Dist: coloredlogs (>=15,<16) ; extra == "full"
|
|
49
|
+
Requires-Dist: colorhash (>=2.0,<2.1.0) ; extra == "full"
|
|
50
|
+
Requires-Dist: confluent-kafka (>=2.11.0,<3.0.0) ; extra == "full"
|
|
51
|
+
Requires-Dist: cryptography (>=45.0.6,<45.1.0) ; extra == "full"
|
|
52
|
+
Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0)
|
|
53
|
+
Requires-Dist: dask (>=2024.8.0,<2024.9.0)
|
|
54
|
+
Requires-Dist: demoji (>=1.1.0,<2.0.0)
|
|
55
|
+
Requires-Dist: diskcache (>=5.6.3,<5.7.0)
|
|
56
|
+
Requires-Dist: dnspython (==2.6.1) ; extra == "full"
|
|
57
|
+
Requires-Dist: faiss-cpu (>=1.11.0,<1.12.0)
|
|
58
|
+
Requires-Dist: fbmessenger (>=6.0.0,<6.1.0)
|
|
59
|
+
Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes" or extra == "full"
|
|
60
|
+
Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
|
|
61
|
+
Requires-Dist: gliner (>=0.2.20,<0.3.0) ; extra == "pii" or extra == "full"
|
|
62
|
+
Requires-Dist: google-auth (>=2.40.3,<2.41.0)
|
|
63
|
+
Requires-Dist: google-cloud-storage (>=2.14.0,<2.15.0) ; extra == "full"
|
|
64
|
+
Requires-Dist: hvac (>=2.3.0,<2.4.0)
|
|
65
|
+
Requires-Dist: importlib-metadata (>=8.5.0,<8.6.0)
|
|
66
|
+
Requires-Dist: importlib-resources (>=6.5.2,<7.0.0)
|
|
67
|
+
Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full"
|
|
68
|
+
Requires-Dist: jinja2 (>=3.1.6,<3.2.0) ; extra == "full"
|
|
69
|
+
Requires-Dist: jsonpatch (>=1.33,<2.0) ; extra == "full"
|
|
70
|
+
Requires-Dist: jsonpickle (>=3.3.0,<3.4)
|
|
71
|
+
Requires-Dist: jsonschema (>=4.22)
|
|
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"
|
|
78
|
+
Requires-Dist: mcp (>=1.14.0,<1.15.0) ; extra == "agents" or extra == "agents-mcp" or extra == "full"
|
|
79
|
+
Requires-Dist: networkx (>=3.1,<3.2) ; extra == "full"
|
|
80
|
+
Requires-Dist: numpy (>=2.1.3,<2.2.0)
|
|
81
|
+
Requires-Dist: onnxruntime (==1.22.1) ; extra == "pii" or extra == "full"
|
|
82
|
+
Requires-Dist: openai (>=1.68.2,<1.69.0)
|
|
83
|
+
Requires-Dist: openpyxl (>=3.1.5,<4.0.0) ; extra == "full"
|
|
84
|
+
Requires-Dist: opentelemetry-api (>=1.33.0,<1.34.0) ; extra == "full"
|
|
85
|
+
Requires-Dist: opentelemetry-exporter-otlp (>=1.33.0,<1.34.0) ; extra == "full"
|
|
86
|
+
Requires-Dist: opentelemetry-sdk (>=1.33.0,<1.34.0) ; extra == "full"
|
|
87
|
+
Requires-Dist: packaging (>=23.2,<23.3) ; extra == "full"
|
|
88
|
+
Requires-Dist: pep440-version-utils (>=1.1.0,<1.2.0) ; (python_version < "3.13") and (extra == "full")
|
|
89
|
+
Requires-Dist: pluggy (>=1.2.0,<2.0.0) ; extra == "full"
|
|
90
|
+
Requires-Dist: portalocker (>=2.7.0,<3.0.0)
|
|
91
|
+
Requires-Dist: prompt-toolkit (>=3.0.28,<3.0.29) ; extra == "full"
|
|
92
|
+
Requires-Dist: protobuf (>=5.29.5,<5.30.0) ; extra == "full"
|
|
93
|
+
Requires-Dist: psutil (>=5.9.5,<6.0.0)
|
|
94
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0) ; extra == "psycopg2-binary" or extra == "full"
|
|
95
|
+
Requires-Dist: pydot (>=1.4,<1.5) ; extra == "full"
|
|
96
|
+
Requires-Dist: pykwalify (>=1.8,<1.9)
|
|
97
|
+
Requires-Dist: pymilvus (>=2.6.1,<3.0.0)
|
|
98
|
+
Requires-Dist: pymongo (>=4.10.1,<4.11.0)
|
|
99
|
+
Requires-Dist: pypred (>=0.4.0,<0.5.0)
|
|
100
|
+
Requires-Dist: python-dateutil (>=2.8.2,<2.9.0) ; extra == "full"
|
|
101
|
+
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
|
102
|
+
Requires-Dist: python-engineio (>=4.12.2,<4.13.0) ; extra == "full"
|
|
103
|
+
Requires-Dist: python-keycloak (>=5.8.1,<5.9.0)
|
|
104
|
+
Requires-Dist: python-socketio (>=5.13,<6)
|
|
105
|
+
Requires-Dist: pytz (>=2022.7.1,<2023.0) ; extra == "full"
|
|
106
|
+
Requires-Dist: pyyaml (>=6.0.2,<6.1.0) ; extra == "full"
|
|
107
|
+
Requires-Dist: qdrant-client (>=1.9.1,<1.10.0) ; extra == "qdrant-client" or extra == "full"
|
|
108
|
+
Requires-Dist: questionary (>=1.10.0,<2.1.0)
|
|
109
|
+
Requires-Dist: randomname (>=0.2.1,<0.3.0)
|
|
110
|
+
Requires-Dist: rasa-sdk (==3.14.0.dev5)
|
|
111
|
+
Requires-Dist: redis (>=4.6.0,<6.0) ; extra == "redis" or extra == "full"
|
|
112
|
+
Requires-Dist: regex (>=2024.7.24,<2024.8.0)
|
|
113
|
+
Requires-Dist: requests (>=2.32.5,<2.33.0) ; extra == "full"
|
|
114
|
+
Requires-Dist: rich (>=13.4.2,<14.0.0)
|
|
115
|
+
Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0) ; extra == "full"
|
|
116
|
+
Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22) ; extra == "full"
|
|
117
|
+
Requires-Dist: safetensors (>=0.4.5,<0.5.0)
|
|
118
|
+
Requires-Dist: sanic (>=22.12,<22.13) ; extra == "full"
|
|
119
|
+
Requires-Dist: sanic-cors (>=2.2.0,<2.3.0) ; extra == "full"
|
|
120
|
+
Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
|
|
121
|
+
Requires-Dist: sanic-openapi (>=21.12.0,<22.0.0) ; extra == "full"
|
|
122
|
+
Requires-Dist: sanic-routing (>=22.8.0,<23.0.0) ; extra == "full"
|
|
123
|
+
Requires-Dist: scikit-learn (>=1.6.1,<1.7.0) ; extra == "full"
|
|
124
|
+
Requires-Dist: scipy (>=1.13.1,<1.14.0) ; python_version < "3.12"
|
|
125
|
+
Requires-Dist: scipy (>=1.14.0,<1.15.0) ; python_version >= "3.12"
|
|
126
|
+
Requires-Dist: sentencepiece (>=0.1.99,<0.2.0) ; (python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
127
|
+
Requires-Dist: sentry-sdk (>=2.8.0,<3) ; extra == "full"
|
|
128
|
+
Requires-Dist: setuptools (>=78.1.1,<78.2.0) ; extra == "full"
|
|
129
|
+
Requires-Dist: sklearn-crfsuite (>=0.5.0,<0.6.0)
|
|
130
|
+
Requires-Dist: skops (>=0.13.0,<0.14.0) ; extra == "skops" or extra == "full"
|
|
131
|
+
Requires-Dist: slack-sdk (>=3.36.0,<3.37.0)
|
|
132
|
+
Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
|
|
133
|
+
Requires-Dist: structlog (>=25.4.0,<25.5.0)
|
|
134
|
+
Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
|
|
135
|
+
Requires-Dist: tarsafe (>=0.0.5,<0.0.6)
|
|
136
|
+
Requires-Dist: tenacity (>=8.4.1,<8.5.0) ; extra == "full"
|
|
137
|
+
Requires-Dist: tensorflow (>=2.19.0,<3.0.0) ; (python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
138
|
+
Requires-Dist: tensorflow-hub (>=0.13.0,<0.14.0) ; (python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
139
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.31) ; (sys_platform == "win32" and python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
140
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; (sys_platform == "darwin" and platform_machine != "arm64" and python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
141
|
+
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; (sys_platform == "linux" and python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
142
|
+
Requires-Dist: tensorflow-metal (>=1.2.0,<2.0.0) ; (sys_platform == "darwin" and platform_machine == "arm64" and python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
143
|
+
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 == "tensorflow" or extra == "full")
|
|
144
|
+
Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
|
|
145
|
+
Requires-Dist: tf-keras (>=2.15.0,<3.0.0) ; (python_version < "3.12") and (extra == "tensorflow" or extra == "full")
|
|
146
|
+
Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
|
|
147
|
+
Requires-Dist: tqdm (>=4.66.2,<5.0.0) ; extra == "full"
|
|
148
|
+
Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "tensorflow" or extra == "full"
|
|
149
|
+
Requires-Dist: twilio (>=9.7.2,<9.8.0)
|
|
150
|
+
Requires-Dist: types-protobuf (==4.25.0.20240417) ; extra == "full"
|
|
151
|
+
Requires-Dist: typing-extensions (>=4.7.1,<5.0.0) ; extra == "full"
|
|
152
|
+
Requires-Dist: typing-utils (>=0.1.0,<0.2.0)
|
|
153
|
+
Requires-Dist: ujson (>=5.8,<6.0) ; extra == "full"
|
|
154
|
+
Requires-Dist: webexteamssdk (>=1.6.1,<1.7.0)
|
|
155
|
+
Requires-Dist: websockets (>=10.4,<11.0) ; extra == "full"
|
|
156
|
+
Requires-Dist: werkzeug (>=3.0.0,<3.1.0)
|
|
157
|
+
Requires-Dist: wheel (>=0.40.0) ; extra == "full"
|
|
158
|
+
Project-URL: Documentation, https://rasa.com/docs
|
|
159
|
+
Project-URL: Homepage, https://rasa.com
|
|
160
|
+
Project-URL: Repository, https://github.com/rasahq/rasa
|
|
161
|
+
Description-Content-Type: text/markdown
|
|
162
|
+
|
|
163
|
+
<h1 align="center">Rasa</h1>
|
|
164
|
+
|
|
165
|
+
<div align="center">
|
|
166
|
+
|
|
167
|
+
[](https://sonarcloud.io/summary/new_code?id=RasaHQ_rasa)
|
|
168
|
+
[](https://rasa.com/docs/docs/pro/intro)
|
|
169
|
+

|
|
170
|
+
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
<hr />
|
|
174
|
+
|
|
175
|
+
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.
|
|
176
|
+
|
|
177
|
+
**Key Features:**
|
|
178
|
+
|
|
179
|
+
- **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.
|
|
180
|
+
- **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.
|
|
181
|
+
- **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.
|
|
182
|
+
- **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.
|
|
183
|
+
- **Built-in Security:** Safeguard sensitive data, control access, and ensure secure deployment, essential for production environments that demand high levels of security and compliance.
|
|
184
|
+
|
|
185
|
+
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.
|
|
186
|
+
|
|
187
|
+
To get started right now, you can
|
|
188
|
+
|
|
189
|
+
`pip install rasa-pro`
|
|
190
|
+
|
|
191
|
+
Check out our
|
|
192
|
+
|
|
193
|
+
- [Rasa Quickstart](https://rasa.com/docs/learn/quickstart/pro),
|
|
194
|
+
- [Conversational AI with Language Models (CALM) conceptual rundown](https://rasa.com/docs/learn/concepts/calm),
|
|
195
|
+
- [Rasa tutorial](https://rasa.com/docs/pro/tutorial), and
|
|
196
|
+
- [Changelog](https://rasa.com/docs/reference/changelogs/rasa-pro-changelog)
|
|
197
|
+
|
|
198
|
+
for more. Also feel free to reach out to us on the [Rasa forum](https://forum.rasa.com/).
|
|
199
|
+
|