rasa-pro 3.14.0.dev20250901__py3-none-any.whl → 3.14.0.dev20250922__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/builder/config.py +1 -0
- rasa/builder/copilot/constants.py +3 -0
- rasa/builder/copilot/copilot.py +128 -54
- rasa/builder/copilot/models.py +39 -3
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +183 -188
- rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +61 -0
- rasa/builder/copilot/telemetry.py +46 -20
- rasa/builder/document_retrieval/models.py +3 -3
- rasa/builder/download.py +1 -8
- rasa/builder/jobs.py +33 -21
- rasa/builder/main.py +38 -62
- rasa/builder/models.py +7 -7
- rasa/builder/project_generator.py +143 -147
- rasa/builder/service.py +42 -27
- rasa/builder/template_cache.py +69 -0
- rasa/builder/training_service.py +74 -4
- rasa/cli/project_templates/basic/README.md +23 -0
- rasa/cli/project_templates/basic/actions/actions.md +10 -0
- rasa/cli/project_templates/basic/config.yml +6 -4
- rasa/cli/project_templates/basic/data/data.md +5 -6
- rasa/cli/project_templates/basic/domain/domain.md +7 -5
- rasa/cli/project_templates/basic/domain/general/show_faqs.yml +1 -1
- rasa/cli/project_templates/basic/endpoints.yml +5 -1
- 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 +26 -0
- rasa/cli/project_templates/finance/actions/__init__.py +0 -46
- 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/{transfers/action_process_immediate_payment.py → cards/check_that_card_exists.py} +6 -3
- 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/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 +8 -0
- rasa/cli/project_templates/finance/credentials.yml +7 -6
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +3 -4
- 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 +37 -58
- 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/goodbye.yml +1 -1
- rasa/cli/project_templates/finance/data/general/hello.yml +1 -2
- rasa/cli/project_templates/finance/data/general/help.yml +2 -2
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +2 -2
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +1 -1
- 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 +29 -62
- 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 +9 -5
- 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 +33 -90
- 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 +5 -2
- rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -3
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +6 -6
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +10 -9
- rasa/cli/project_templates/finance/domain/general/welcome.yml +33 -2
- 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 +203 -61
- rasa/cli/project_templates/finance/endpoints.yml +8 -4
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +31 -12
- rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/accounts/download_statements.yml +43 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/cards/block_card.yml +55 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/feedback.yml +46 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/goodbye.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/hello.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/general/patterns.yml +22 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/transfers/transfer_money.yml +56 -0
- rasa/cli/project_templates/telco/README.md +25 -0
- rasa/cli/project_templates/telco/actions/actions.md +12 -0
- rasa/cli/project_templates/telco/config.yml +6 -4
- rasa/cli/project_templates/telco/data/data.md +11 -0
- rasa/cli/project_templates/telco/data/general/human_handoff.yml +1 -1
- rasa/cli/project_templates/telco/docs/docs.md +3 -0
- rasa/cli/project_templates/telco/domain/domain.md +13 -0
- rasa/cli/project_templates/telco/domain/general/human_handoff.yml +3 -6
- rasa/cli/project_templates/telco/endpoints.yml +5 -1
- rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +1 -1
- 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/core/actions/action_run_slot_rejections.py +1 -1
- rasa/core/actions/direct_custom_actions_executor.py +9 -2
- rasa/core/brokers/broker.py +1 -1
- rasa/core/brokers/kafka.py +52 -8
- rasa/core/channels/development_inspector.py +1 -21
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-35222594.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-a0efbfd3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-0584c0f2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-8e08bed9.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-39f40dbe.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-1ad755f3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-78c82dea.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-b0f4f0fe.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-9039bff9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-65c9b127.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-4f08b38e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-e95c362a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b08f601.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-703c3015.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-699328ea.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-04cf4b05.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-ee94449e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-940162b4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-4d4bdf3a.js → index-c941dcb3.js} +132 -131
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-c79c2866.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-84489d30.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-a9aa9858.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-eb73cf26.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-b3399f9a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-b095bf1a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-07644b66.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-573a3f9c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-d457e1e1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-9d26e1a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-3a9cde10.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-4f3e8cec.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-e617e5bf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-eab30d2f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-09994be2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-b7110364.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-3ebc92ad.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-7d13d2f2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-488385e1.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/src/App.tsx +5 -31
- rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +9 -1
- 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/types.ts +32 -7
- rasa/core/channels/studio_chat.py +23 -41
- 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 +55 -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 +61 -0
- rasa/core/concurrent_lock_store.py +66 -16
- rasa/core/constants.py +7 -0
- rasa/core/iam_credentials_providers/__init__.py +0 -0
- rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +226 -0
- rasa/core/iam_credentials_providers/credentials_provider_protocol.py +90 -0
- rasa/core/lock_store.py +46 -10
- rasa/core/nlg/generator.py +1 -1
- rasa/core/policies/flows/flow_executor.py +1 -1
- rasa/core/processor.py +32 -0
- rasa/core/redis_connection_factory.py +469 -0
- rasa/core/tracker_stores/redis_tracker_store.py +32 -14
- rasa/core/tracker_stores/sql_tracker_store.py +57 -1
- rasa/engine/graph.py +5 -1
- rasa/engine/loader.py +12 -0
- rasa/engine/storage/local_model_storage.py +41 -4
- rasa/model_manager/socket_bridge.py +1 -2
- rasa/model_manager/warm_rasa_process.py +13 -3
- rasa/shared/core/constants.py +1 -0
- rasa/shared/core/events.py +2 -0
- rasa/shared/core/flows/flow.py +1 -1
- rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
- rasa/utils/pypred.py +38 -0
- rasa/validator.py +12 -8
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/METADATA +19 -16
- {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/RECORD +231 -266
- rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +0 -47
- rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +0 -40
- rasa/cli/project_templates/finance/actions/action_session_start.py +0 -74
- rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +0 -48
- rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +0 -36
- rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +0 -54
- rasa/cli/project_templates/finance/actions/database.py +0 -277
- rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +0 -52
- rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +0 -51
- rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +0 -40
- rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +0 -40
- rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +0 -46
- rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +0 -49
- rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +0 -19
- rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +0 -36
- rasa/cli/project_templates/finance/csvs/accounts.csv +0 -8
- rasa/cli/project_templates/finance/csvs/advisors.csv +0 -7
- rasa/cli/project_templates/finance/csvs/appointments.csv +0 -211
- rasa/cli/project_templates/finance/csvs/branches.csv +0 -10
- rasa/cli/project_templates/finance/csvs/cards.csv +0 -11
- rasa/cli/project_templates/finance/csvs/payees.csv +0 -11
- rasa/cli/project_templates/finance/csvs/transactions.csv +0 -71
- rasa/cli/project_templates/finance/csvs/users.csv +0 -4
- rasa/cli/project_templates/finance/data/cards/select_card.yml +0 -12
- rasa/cli/project_templates/finance/data/general/bot_identity.yml +0 -6
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
- rasa/cli/project_templates/finance/data/system/source/accounts.json +0 -51
- rasa/cli/project_templates/finance/data/system/source/advisors.json +0 -44
- rasa/cli/project_templates/finance/data/system/source/appointments.json +0 -1474
- rasa/cli/project_templates/finance/data/system/source/branches.json +0 -47
- rasa/cli/project_templates/finance/data/system/source/cards.json +0 -72
- rasa/cli/project_templates/finance/data/system/source/payees.json +0 -74
- rasa/cli/project_templates/finance/data/system/source/transactions.json +0 -492
- rasa/cli/project_templates/finance/data/system/source/users.json +0 -29
- rasa/cli/project_templates/finance/data/transfers/add_payee.yml +0 -29
- rasa/cli/project_templates/finance/data/transfers/list_payees.yml +0 -5
- rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +0 -21
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +0 -7
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +0 -8
- rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +0 -8
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +0 -48
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +0 -47
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +0 -50
- rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +0 -47
- rasa/cli/project_templates/finance/domain/cards/select_card.yml +0 -12
- rasa/cli/project_templates/finance/domain/general/assistant_details.yml +0 -12
- rasa/cli/project_templates/finance/domain/general/bot_identity.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
- rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
- rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +0 -47
- rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +0 -4
- rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +0 -16
- rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +0 -1
- /rasa/cli/project_templates/telco/domain/billing/{domain_undertand_bill.yml → understand_bill.yml} +0 -0
- /rasa/cli/project_templates/telco/domain/network/{domain_reboot_router.yml → reboot_router.yml} +0 -0
- /rasa/cli/project_templates/telco/domain/network/{domain_reset_router.yml → reset_router.yml} +0 -0
- /rasa/cli/project_templates/telco/domain/network/{domain_run_speed_test.yml → run_speed_test.yml} +0 -0
- /rasa/cli/project_templates/telco/domain/network/{domain_solve_internet_issue.yml → solve_internet_issue.yml} +0 -0
- {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev20250901.dist-info → rasa_pro-3.14.0.dev20250922.dist-info}/entry_points.txt +0 -0
|
@@ -4,12 +4,19 @@ from datetime import datetime
|
|
|
4
4
|
from typing import Any, Dict, Iterable, Optional, Text
|
|
5
5
|
|
|
6
6
|
import structlog
|
|
7
|
+
from pydantic import ValidationError
|
|
7
8
|
|
|
8
9
|
import rasa.shared
|
|
9
10
|
from rasa.core.brokers.broker import EventBroker
|
|
11
|
+
from rasa.core.redis_connection_factory import (
|
|
12
|
+
DeploymentMode,
|
|
13
|
+
RedisConfig,
|
|
14
|
+
RedisConnectionFactory,
|
|
15
|
+
)
|
|
10
16
|
from rasa.core.tracker_stores.tracker_store import SerializedTrackerAsText, TrackerStore
|
|
11
17
|
from rasa.shared.core.domain import Domain
|
|
12
18
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
19
|
+
from rasa.shared.exceptions import RasaException
|
|
13
20
|
|
|
14
21
|
structlogger = structlog.get_logger(__name__)
|
|
15
22
|
|
|
@@ -35,23 +42,34 @@ class RedisTrackerStore(TrackerStore, SerializedTrackerAsText):
|
|
|
35
42
|
ssl_keyfile: Optional[Text] = None,
|
|
36
43
|
ssl_certfile: Optional[Text] = None,
|
|
37
44
|
ssl_ca_certs: Optional[Text] = None,
|
|
45
|
+
deployment_mode: Text = DeploymentMode.STANDARD.value,
|
|
46
|
+
endpoints: Optional[list] = None,
|
|
47
|
+
sentinel_service: Optional[Text] = None,
|
|
38
48
|
**kwargs: Dict[Text, Any],
|
|
39
49
|
) -> None:
|
|
40
50
|
"""Initializes the tracker store."""
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
|
|
52
|
+
# Create Redis connection using the factory directly
|
|
53
|
+
try:
|
|
54
|
+
config = RedisConfig(
|
|
55
|
+
host=host,
|
|
56
|
+
port=port,
|
|
57
|
+
db=db,
|
|
58
|
+
username=username,
|
|
59
|
+
password=password,
|
|
60
|
+
use_ssl=use_ssl,
|
|
61
|
+
ssl_keyfile=ssl_keyfile,
|
|
62
|
+
ssl_certfile=ssl_certfile,
|
|
63
|
+
ssl_ca_certs=ssl_ca_certs,
|
|
64
|
+
deployment_mode=deployment_mode,
|
|
65
|
+
endpoints=endpoints,
|
|
66
|
+
sentinel_service=sentinel_service,
|
|
67
|
+
decode_responses=True,
|
|
68
|
+
)
|
|
69
|
+
self.red = RedisConnectionFactory.create_connection(config)
|
|
70
|
+
except ValidationError as e:
|
|
71
|
+
raise RasaException(f"Invalid Redis configuration: {e}")
|
|
72
|
+
|
|
55
73
|
self.record_exp = record_exp
|
|
56
74
|
|
|
57
75
|
self.key_prefix = DEFAULT_REDIS_TRACKER_STORE_KEY_PREFIX
|
|
@@ -27,6 +27,13 @@ from rasa.core.constants import (
|
|
|
27
27
|
POSTGRESQL_MAX_OVERFLOW,
|
|
28
28
|
POSTGRESQL_POOL_SIZE,
|
|
29
29
|
POSTGRESQL_SCHEMA,
|
|
30
|
+
SQL_TRACKER_STORE_SSL_MODE_ENV_VAR_NAME,
|
|
31
|
+
SQL_TRACKER_STORE_SSL_ROOT_CERTIFICATE_ENV_VAR_NAME,
|
|
32
|
+
)
|
|
33
|
+
from rasa.core.iam_credentials_providers.credentials_provider_protocol import (
|
|
34
|
+
IAMCredentialsProviderInput,
|
|
35
|
+
SupportedServiceType,
|
|
36
|
+
create_iam_credentials_provider,
|
|
30
37
|
)
|
|
31
38
|
from rasa.core.tracker_stores.tracker_store import (
|
|
32
39
|
SerializedTrackerAsText,
|
|
@@ -85,6 +92,21 @@ def is_postgresql_url(url: Union[Text, "URL"]) -> bool:
|
|
|
85
92
|
return url.drivername == "postgresql"
|
|
86
93
|
|
|
87
94
|
|
|
95
|
+
def get_ssl_args() -> Dict[str, Any]:
|
|
96
|
+
"""Get SSL arguments for PostgreSQL connection from environment variables."""
|
|
97
|
+
ssl_mode = os.getenv(SQL_TRACKER_STORE_SSL_MODE_ENV_VAR_NAME)
|
|
98
|
+
ssl_root_cert = os.getenv(SQL_TRACKER_STORE_SSL_ROOT_CERTIFICATE_ENV_VAR_NAME)
|
|
99
|
+
ssl_args = {}
|
|
100
|
+
|
|
101
|
+
if ssl_mode:
|
|
102
|
+
ssl_args["sslmode"] = ssl_mode
|
|
103
|
+
|
|
104
|
+
if ssl_root_cert:
|
|
105
|
+
ssl_args["sslrootcert"] = ssl_root_cert
|
|
106
|
+
|
|
107
|
+
return ssl_args
|
|
108
|
+
|
|
109
|
+
|
|
88
110
|
def create_engine_kwargs(url: Union[Text, "URL"]) -> Dict[Text, Any]:
|
|
89
111
|
"""Get `sqlalchemy.create_engine()` kwargs.
|
|
90
112
|
|
|
@@ -119,6 +141,14 @@ def create_engine_kwargs(url: Union[Text, "URL"]) -> Dict[Text, Any]:
|
|
|
119
141
|
os.environ.get(POSTGRESQL_MAX_OVERFLOW, POSTGRESQL_DEFAULT_MAX_OVERFLOW)
|
|
120
142
|
)
|
|
121
143
|
|
|
144
|
+
ssl_args = get_ssl_args()
|
|
145
|
+
|
|
146
|
+
if ssl_args:
|
|
147
|
+
if "connect_args" in kwargs:
|
|
148
|
+
kwargs["connect_args"].update(ssl_args)
|
|
149
|
+
else:
|
|
150
|
+
kwargs["connect_args"] = ssl_args
|
|
151
|
+
|
|
122
152
|
return kwargs
|
|
123
153
|
|
|
124
154
|
|
|
@@ -197,6 +227,32 @@ class SQLTrackerStore(TrackerStore, SerializedTrackerAsText):
|
|
|
197
227
|
|
|
198
228
|
port = validate_port(port)
|
|
199
229
|
|
|
230
|
+
iam_credentials_provider = create_iam_credentials_provider(
|
|
231
|
+
IAMCredentialsProviderInput(
|
|
232
|
+
service_name=SupportedServiceType.TRACKER_STORE,
|
|
233
|
+
username=username,
|
|
234
|
+
host=host,
|
|
235
|
+
port=port,
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
if iam_credentials_provider is not None:
|
|
239
|
+
credentials = iam_credentials_provider.get_temporary_credentials()
|
|
240
|
+
if credentials.auth_token:
|
|
241
|
+
password = credentials.auth_token
|
|
242
|
+
structlogger.debug(
|
|
243
|
+
"sql_tracker_store.iam_credentials_provider",
|
|
244
|
+
event_info="Using temporary auth token from "
|
|
245
|
+
"IAM credentials provider.",
|
|
246
|
+
)
|
|
247
|
+
else:
|
|
248
|
+
structlogger.warning(
|
|
249
|
+
"sql_tracker_store.iam_credentials_provider.no_auth_token",
|
|
250
|
+
event_info=(
|
|
251
|
+
"IAM credentials provider did not return an auth token. "
|
|
252
|
+
"Falling back to provided password or no password."
|
|
253
|
+
),
|
|
254
|
+
)
|
|
255
|
+
|
|
200
256
|
engine_url = self.get_db_url(
|
|
201
257
|
dialect, host, port, db, username, password, login_db, query
|
|
202
258
|
)
|
|
@@ -272,7 +328,7 @@ class SQLTrackerStore(TrackerStore, SerializedTrackerAsText):
|
|
|
272
328
|
host: Database network host.
|
|
273
329
|
port: Database network port.
|
|
274
330
|
db: Database name.
|
|
275
|
-
username:
|
|
331
|
+
username: Username to use when connecting to the database.
|
|
276
332
|
password: Password for database user.
|
|
277
333
|
login_db: Alternative database name to which initially connect, and create
|
|
278
334
|
the database specified by `db` (PostgreSQL only).
|
rasa/engine/graph.py
CHANGED
|
@@ -69,6 +69,7 @@ class SchemaNode:
|
|
|
69
69
|
|
|
70
70
|
def matches_type(self, node_type: Type, include_subtypes: bool = True) -> bool:
|
|
71
71
|
"""Checks if schema node's 'uses' is of specified node type.
|
|
72
|
+
|
|
72
73
|
By default, it also checks for subtypes of the specified node type.
|
|
73
74
|
"""
|
|
74
75
|
return (self.uses is node_type) or (
|
|
@@ -171,6 +172,7 @@ class GraphSchema:
|
|
|
171
172
|
|
|
172
173
|
def has_node(self, node_type: Type, include_subtypes: bool = True) -> bool:
|
|
173
174
|
"""Checks if the graph schema contains a node of the specified node type.
|
|
175
|
+
|
|
174
176
|
By default, it also checks for subtypes of the specified node type.
|
|
175
177
|
"""
|
|
176
178
|
for node in self.nodes.values():
|
|
@@ -181,7 +183,7 @@ class GraphSchema:
|
|
|
181
183
|
def count_nodes_of_a_given_type(
|
|
182
184
|
self, node_type: Type, include_subtypes: bool = True
|
|
183
185
|
) -> int:
|
|
184
|
-
"""Counts the number of the nodes of specified class"""
|
|
186
|
+
"""Counts the number of the nodes of specified class."""
|
|
185
187
|
counter = 0
|
|
186
188
|
for node in self.nodes.values():
|
|
187
189
|
if (node.uses is node_type) or (
|
|
@@ -353,6 +355,7 @@ class ExecutionContext:
|
|
|
353
355
|
|
|
354
356
|
def has_node(self, node_type: Type, include_subtypes: bool = True) -> bool:
|
|
355
357
|
"""Checks if the graph node of the given type is present in the graph schema.
|
|
358
|
+
|
|
356
359
|
By default, it also checks for subtypes of the specified node type.
|
|
357
360
|
"""
|
|
358
361
|
return self.graph_schema.has_node(node_type, include_subtypes)
|
|
@@ -555,6 +558,7 @@ class GraphNode:
|
|
|
555
558
|
structlogger.error(
|
|
556
559
|
"graph.node.error_running_component",
|
|
557
560
|
node_name=self._node_name,
|
|
561
|
+
error=str(e),
|
|
558
562
|
)
|
|
559
563
|
raise
|
|
560
564
|
|
rasa/engine/loader.py
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
from typing import Tuple, Type
|
|
3
3
|
|
|
4
|
+
import structlog
|
|
5
|
+
|
|
4
6
|
from rasa.engine.graph import ExecutionContext
|
|
5
7
|
from rasa.engine.runner.interface import GraphRunner
|
|
6
8
|
from rasa.engine.storage.storage import ModelMetadata, ModelStorage
|
|
@@ -9,6 +11,8 @@ from rasa.engine.validation import (
|
|
|
9
11
|
validate_model_group_configuration_setup,
|
|
10
12
|
)
|
|
11
13
|
|
|
14
|
+
structlogger = structlog.get_logger()
|
|
15
|
+
|
|
12
16
|
|
|
13
17
|
def load_predict_graph_runner(
|
|
14
18
|
storage_path: Path,
|
|
@@ -30,6 +34,10 @@ def load_predict_graph_runner(
|
|
|
30
34
|
model_storage, model_metadata = model_storage_class.from_model_archive(
|
|
31
35
|
storage_path=storage_path, model_archive_path=model_archive_path
|
|
32
36
|
)
|
|
37
|
+
structlogger.debug(
|
|
38
|
+
"engine.loader.load_predict_graph_runner.success",
|
|
39
|
+
model_id=model_metadata.model_id,
|
|
40
|
+
)
|
|
33
41
|
|
|
34
42
|
# Components using LLMs or embeddings can reference model groups defined in
|
|
35
43
|
# the endpoints.yml file for their client configurations. To ensure they will work
|
|
@@ -38,6 +46,10 @@ def load_predict_graph_runner(
|
|
|
38
46
|
validate_model_group_configuration_setup()
|
|
39
47
|
validate_model_client_configuration_setup_during_inference_time(model_metadata)
|
|
40
48
|
|
|
49
|
+
structlogger.debug(
|
|
50
|
+
"engine.loader.config.validation.success",
|
|
51
|
+
model_id=model_metadata.model_id,
|
|
52
|
+
)
|
|
41
53
|
runner = graph_runner_class.create(
|
|
42
54
|
graph_schema=model_metadata.predict_schema,
|
|
43
55
|
model_storage=model_storage,
|
|
@@ -10,7 +10,7 @@ import uuid
|
|
|
10
10
|
from contextlib import contextmanager
|
|
11
11
|
from datetime import datetime
|
|
12
12
|
from pathlib import Path
|
|
13
|
-
from typing import Callable, Generator, Optional, Text, Tuple, Union
|
|
13
|
+
from typing import Callable, Generator, List, Optional, Text, Tuple, Union
|
|
14
14
|
|
|
15
15
|
from tarsafe import TarSafe
|
|
16
16
|
|
|
@@ -158,16 +158,24 @@ class LocalModelStorage(ModelStorage):
|
|
|
158
158
|
# before trying the \\?\ prefix approach first
|
|
159
159
|
prev_filter = getattr(tar, "extraction_filter", None)
|
|
160
160
|
tar.extraction_filter = create_combined_filter(prev_filter)
|
|
161
|
-
tar.extractall(
|
|
161
|
+
tar.extractall(
|
|
162
|
+
f"\\\\?\\{temporary_directory}",
|
|
163
|
+
members=yield_safe_members(tar.getmembers()),
|
|
164
|
+
)
|
|
162
165
|
except Exception:
|
|
163
166
|
# Fallback for Python versions with tarfile security fix
|
|
164
167
|
logger.warning(
|
|
165
168
|
"Failed to extract model archive with long path support. "
|
|
166
169
|
"Falling back to regular extraction."
|
|
167
170
|
)
|
|
168
|
-
tar.extractall(
|
|
171
|
+
tar.extractall(
|
|
172
|
+
temporary_directory,
|
|
173
|
+
members=yield_safe_members(tar.getmembers()),
|
|
174
|
+
)
|
|
169
175
|
else:
|
|
170
|
-
tar.extractall(
|
|
176
|
+
tar.extractall(
|
|
177
|
+
temporary_directory, members=yield_safe_members(tar.getmembers())
|
|
178
|
+
)
|
|
171
179
|
LocalModelStorage._assert_not_rasa2_archive(temporary_directory)
|
|
172
180
|
|
|
173
181
|
@staticmethod
|
|
@@ -287,3 +295,32 @@ class LocalModelStorage(ModelStorage):
|
|
|
287
295
|
core_target=model_configuration.core_target,
|
|
288
296
|
nlu_target=model_configuration.nlu_target,
|
|
289
297
|
)
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
def yield_safe_members(
|
|
301
|
+
members: List[tarfile.TarInfo],
|
|
302
|
+
) -> Generator[tarfile.TarInfo, None, None]:
|
|
303
|
+
"""
|
|
304
|
+
Filter function for tar.extractall members parameter.
|
|
305
|
+
Validates each member and yields only safe ones.
|
|
306
|
+
|
|
307
|
+
Args:
|
|
308
|
+
members: Iterator of TarInfo objects from tar.getmembers()
|
|
309
|
+
|
|
310
|
+
Yields:
|
|
311
|
+
TarInfo: Safe members to extract
|
|
312
|
+
"""
|
|
313
|
+
for member in members:
|
|
314
|
+
# Skip absolute paths
|
|
315
|
+
if Path(member.name).is_absolute():
|
|
316
|
+
continue
|
|
317
|
+
|
|
318
|
+
# Skip paths with directory traversal sequences
|
|
319
|
+
if ".." in member.name or "\\.." in member.name:
|
|
320
|
+
continue
|
|
321
|
+
|
|
322
|
+
# Skip special file types unless you need them
|
|
323
|
+
if member.isdev() or member.issym():
|
|
324
|
+
continue
|
|
325
|
+
|
|
326
|
+
yield member
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import json
|
|
2
1
|
from typing import Any, Dict, Optional
|
|
3
2
|
|
|
4
3
|
import structlog
|
|
@@ -145,7 +144,7 @@ async def create_bridge_client(
|
|
|
145
144
|
|
|
146
145
|
@client.event # type: ignore[misc]
|
|
147
146
|
async def tracker(data: Dict[str, Any]) -> None:
|
|
148
|
-
await sio_server.emit("tracker",
|
|
147
|
+
await sio_server.emit("tracker", data, room=sid)
|
|
149
148
|
|
|
150
149
|
@client.event # type: ignore[misc]
|
|
151
150
|
async def disconnect() -> None:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import shlex
|
|
3
3
|
import subprocess
|
|
4
|
+
import time
|
|
4
5
|
import uuid
|
|
5
6
|
from dataclasses import dataclass
|
|
6
7
|
from typing import List
|
|
@@ -149,19 +150,28 @@ def warmup() -> None:
|
|
|
149
150
|
We import them now, so that the training / deployment can later
|
|
150
151
|
directly start.
|
|
151
152
|
"""
|
|
153
|
+
start_time = time.time()
|
|
152
154
|
try:
|
|
153
155
|
import langchain # noqa: F401
|
|
154
156
|
import litellm # noqa: F401
|
|
155
157
|
import matplotlib # noqa: F401
|
|
156
158
|
import numpy # noqa: F401
|
|
157
159
|
import pandas # noqa: F401
|
|
158
|
-
import presidio_analyzer # noqa: F401
|
|
159
|
-
import spacy # noqa: F401
|
|
160
160
|
import tensorflow # noqa: F401
|
|
161
161
|
|
|
162
162
|
import rasa.validator # noqa: F401
|
|
163
|
-
except ImportError:
|
|
163
|
+
except ImportError as e:
|
|
164
|
+
structlogger.warning(
|
|
165
|
+
"model_trainer.warmup_error",
|
|
166
|
+
error=str(e),
|
|
167
|
+
)
|
|
164
168
|
pass
|
|
169
|
+
finally:
|
|
170
|
+
end_time = time.time()
|
|
171
|
+
structlogger.debug(
|
|
172
|
+
"model_trainer.warmup_time",
|
|
173
|
+
time_in_seconds=end_time - start_time,
|
|
174
|
+
)
|
|
165
175
|
|
|
166
176
|
|
|
167
177
|
def warm_rasa_main() -> None:
|
rasa/shared/core/constants.py
CHANGED
|
@@ -55,6 +55,7 @@ ACTION_REPEAT_BOT_MESSAGES = "action_repeat_bot_messages"
|
|
|
55
55
|
|
|
56
56
|
ACTION_METADATA_EXECUTION_SUCCESS = "execution_success"
|
|
57
57
|
ACTION_METADATA_EXECUTION_ERROR_MESSAGE = "execution_error_message"
|
|
58
|
+
ACTION_METADATA_EXECUTION_TIME = "execution_times"
|
|
58
59
|
|
|
59
60
|
|
|
60
61
|
DEFAULT_ACTION_NAMES = [
|
rasa/shared/core/events.py
CHANGED
|
@@ -35,6 +35,7 @@ from rasa.shared.core.constants import (
|
|
|
35
35
|
ACTION_LISTEN_NAME,
|
|
36
36
|
ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
|
|
37
37
|
ACTION_METADATA_EXECUTION_SUCCESS,
|
|
38
|
+
ACTION_METADATA_EXECUTION_TIME,
|
|
38
39
|
ACTION_NAME_SENDER_ID_CONNECTOR_STR,
|
|
39
40
|
ACTION_SESSION_START_NAME,
|
|
40
41
|
ENTITY_LABEL_SEPARATOR,
|
|
@@ -1815,6 +1816,7 @@ class ActionExecuted(Event):
|
|
|
1815
1816
|
items_to_ignore = [
|
|
1816
1817
|
ACTION_METADATA_EXECUTION_SUCCESS,
|
|
1817
1818
|
ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
|
|
1819
|
+
ACTION_METADATA_EXECUTION_TIME,
|
|
1818
1820
|
]
|
|
1819
1821
|
meta_no_nones = {
|
|
1820
1822
|
k: v
|
rasa/shared/core/flows/flow.py
CHANGED
|
@@ -8,7 +8,6 @@ from typing import Any, Dict, List, Optional, Set, Text, Tuple, Union
|
|
|
8
8
|
|
|
9
9
|
import structlog
|
|
10
10
|
from pydantic import BaseModel
|
|
11
|
-
from pypred import Predicate
|
|
12
11
|
|
|
13
12
|
import rasa.shared.utils.io
|
|
14
13
|
from rasa.engine.language import Language
|
|
@@ -53,6 +52,7 @@ from rasa.shared.core.flows.steps.constants import (
|
|
|
53
52
|
)
|
|
54
53
|
from rasa.shared.core.flows.steps.continuation import ContinueFlowStep
|
|
55
54
|
from rasa.shared.core.slots import Slot
|
|
55
|
+
from rasa.utils.pypred import Predicate
|
|
56
56
|
|
|
57
57
|
structlogger = structlog.get_logger()
|
|
58
58
|
|
rasa/utils/pypred.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Wrapper module for pypred that provides a fixed Predicate class.
|
|
2
|
+
|
|
3
|
+
This module should be used instead of importing directly from pypred.
|
|
4
|
+
|
|
5
|
+
This patch fixes an issue where pypred creates excessive logs of being unable
|
|
6
|
+
to write a file when run in an environment with no write access is given.
|
|
7
|
+
|
|
8
|
+
https://rasahq.atlassian.net/browse/ATO-1925
|
|
9
|
+
|
|
10
|
+
The solution is based on https://github.com/FreeCAD/FreeCAD/issues/6315
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
import ply.yacc
|
|
16
|
+
import pypred.parser
|
|
17
|
+
from pypred import Predicate as OriginalPredicate # noqa: TID251
|
|
18
|
+
|
|
19
|
+
# Store the original yacc function
|
|
20
|
+
_original_yacc = ply.yacc.yacc
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def patched_yacc(*args: Any, **kwargs: Any) -> Any:
|
|
24
|
+
# Disable generation of debug ('parser.out') and table
|
|
25
|
+
# cache ('parsetab.py'), as it requires a writable location.
|
|
26
|
+
kwargs["write_tables"] = False
|
|
27
|
+
kwargs["module"] = pypred.parser
|
|
28
|
+
return _original_yacc(*args, **kwargs)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Apply the patch
|
|
32
|
+
ply.yacc.yacc = patched_yacc
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Predicate(OriginalPredicate):
|
|
36
|
+
"""Fixed version of pypred.Predicate that uses the patched yacc parser."""
|
|
37
|
+
|
|
38
|
+
pass
|
rasa/validator.py
CHANGED
|
@@ -6,7 +6,6 @@ from typing import Any, Dict, List, Optional, Set, Text, Tuple
|
|
|
6
6
|
|
|
7
7
|
import structlog
|
|
8
8
|
from jinja2 import Template
|
|
9
|
-
from pypred import Predicate
|
|
10
9
|
from pypred.ast import CompareOperator, Literal, NegateOperator
|
|
11
10
|
|
|
12
11
|
import rasa.core.training.story_conflict
|
|
@@ -74,6 +73,7 @@ from rasa.shared.nlu.constants import COMMANDS
|
|
|
74
73
|
from rasa.shared.nlu.training_data.message import Message
|
|
75
74
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
76
75
|
from rasa.telemetry import track_validation_error_log
|
|
76
|
+
from rasa.utils.pypred import Predicate
|
|
77
77
|
|
|
78
78
|
logger = logging.getLogger(__name__)
|
|
79
79
|
|
|
@@ -1183,23 +1183,27 @@ class Validator:
|
|
|
1183
1183
|
)
|
|
1184
1184
|
|
|
1185
1185
|
if isinstance(step, CollectInformationFlowStep):
|
|
1186
|
-
|
|
1187
|
-
for
|
|
1186
|
+
dumped_predicates = [predicate.if_ for predicate in step.rejections]
|
|
1187
|
+
for dumped_predicate in dumped_predicates:
|
|
1188
1188
|
all_good = self._verify_namespaces(
|
|
1189
|
-
|
|
1189
|
+
dumped_predicate, step.id, flow.id, all_good
|
|
1190
1190
|
)
|
|
1191
1191
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1192
|
+
predicate, all_good = self._construct_predicate(
|
|
1193
|
+
dumped_predicate,
|
|
1194
|
+
step.id,
|
|
1195
|
+
context,
|
|
1196
|
+
is_step=True,
|
|
1197
|
+
all_good=all_good,
|
|
1194
1198
|
)
|
|
1195
|
-
if
|
|
1199
|
+
if predicate and not predicate.is_valid():
|
|
1196
1200
|
structlogger.error(
|
|
1197
1201
|
"validator.verify_predicates.invalid_rejection",
|
|
1198
1202
|
step=step.id,
|
|
1199
1203
|
rejection=predicate,
|
|
1200
1204
|
flow=flow.id,
|
|
1201
1205
|
event_info=(
|
|
1202
|
-
f"Detected invalid rejection '{
|
|
1206
|
+
f"Detected invalid rejection '{dumped_predicate}' "
|
|
1203
1207
|
f"at `collect` step '{step.id}' "
|
|
1204
1208
|
f"for flow id '{flow.id}'. "
|
|
1205
1209
|
f"Please make sure that all conditions are valid."
|
rasa/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.14.0.
|
|
3
|
+
Version: 3.14.0.dev20250922
|
|
4
4
|
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
5
|
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
6
6
|
Author: Rasa Technologies GmbH
|
|
@@ -26,20 +26,22 @@ Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
|
|
|
26
26
|
Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0)
|
|
27
27
|
Requires-Dist: absl-py (>=2.0,<2.1)
|
|
28
28
|
Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
|
|
29
|
-
Requires-Dist: aiogram (>=3.
|
|
29
|
+
Requires-Dist: aiogram (>=3.22.0,<3.23.0)
|
|
30
30
|
Requires-Dist: aiohttp (>=3.10,<3.11)
|
|
31
|
+
Requires-Dist: aioshutil (>=1.5,<1.6)
|
|
31
32
|
Requires-Dist: apscheduler (>=3.10,<3.11)
|
|
32
33
|
Requires-Dist: attrs (>=23.1,<23.2)
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist: azure-
|
|
35
|
-
Requires-Dist:
|
|
34
|
+
Requires-Dist: aws-msk-iam-sasl-signer-python (>=1.0.2,<1.1.0)
|
|
35
|
+
Requires-Dist: azure-identity (>=1.24.0,<1.25.0)
|
|
36
|
+
Requires-Dist: azure-storage-blob (>=12.26.0,<12.27.0)
|
|
37
|
+
Requires-Dist: boto3 (>=1.40.21,<1.41.0)
|
|
36
38
|
Requires-Dist: certifi (>=2024.07.04)
|
|
37
39
|
Requires-Dist: colorama (>=0.4.6,<0.5.0) ; sys_platform == "win32"
|
|
38
40
|
Requires-Dist: colorclass (>=2.2,<2.3)
|
|
39
41
|
Requires-Dist: coloredlogs (>=15,<16)
|
|
40
42
|
Requires-Dist: colorhash (>=2.0,<2.1.0)
|
|
41
43
|
Requires-Dist: confluent-kafka (>=2.11.0,<3.0.0)
|
|
42
|
-
Requires-Dist: cryptography (>=
|
|
44
|
+
Requires-Dist: cryptography (>=45.0.6,<45.1.0)
|
|
43
45
|
Requires-Dist: cvg-python-sdk (>=0.5.1,<0.6.0)
|
|
44
46
|
Requires-Dist: dask (>=2024.8.0,<2024.9.0)
|
|
45
47
|
Requires-Dist: demoji (>=1.1.0,<2.0.0)
|
|
@@ -50,9 +52,9 @@ Requires-Dist: fbmessenger (>=6.0.0,<6.1.0)
|
|
|
50
52
|
Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes"
|
|
51
53
|
Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
|
|
52
54
|
Requires-Dist: gliner (>=0.2.20,<0.3.0) ; extra == "pii"
|
|
53
|
-
Requires-Dist: google-auth (>=2.
|
|
55
|
+
Requires-Dist: google-auth (>=2.40.3,<2.41.0)
|
|
54
56
|
Requires-Dist: google-cloud-storage (>=2.14.0,<2.15.0)
|
|
55
|
-
Requires-Dist: hvac (>=
|
|
57
|
+
Requires-Dist: hvac (>=2.3.0,<2.4.0)
|
|
56
58
|
Requires-Dist: importlib-metadata (>=8.5.0,<8.6.0)
|
|
57
59
|
Requires-Dist: importlib-resources (==6.1.3)
|
|
58
60
|
Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full"
|
|
@@ -61,8 +63,8 @@ Requires-Dist: jsonpatch (>=1.33,<2.0)
|
|
|
61
63
|
Requires-Dist: jsonpickle (>=3.3.0,<3.4)
|
|
62
64
|
Requires-Dist: jsonschema (>=4.22)
|
|
63
65
|
Requires-Dist: keras (==2.14.0)
|
|
64
|
-
Requires-Dist: langchain (>=0.
|
|
65
|
-
Requires-Dist: langchain-community (>=0.
|
|
66
|
+
Requires-Dist: langchain (>=0.3.27,<0.4.0)
|
|
67
|
+
Requires-Dist: langchain-community (>=0.3.29,<0.4.0)
|
|
66
68
|
Requires-Dist: langcodes (>=3.5.0,<4.0.0)
|
|
67
69
|
Requires-Dist: litellm (>=1.69.0,<1.70.0)
|
|
68
70
|
Requires-Dist: matplotlib (>=3.9.4,<3.10.0)
|
|
@@ -92,17 +94,17 @@ Requires-Dist: pypred (>=0.4.0,<0.5.0)
|
|
|
92
94
|
Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
|
|
93
95
|
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
|
94
96
|
Requires-Dist: python-engineio (>=4.12.2,<4.13.0)
|
|
95
|
-
Requires-Dist: python-keycloak (>=
|
|
97
|
+
Requires-Dist: python-keycloak (>=5.8.1,<5.9.0)
|
|
96
98
|
Requires-Dist: python-socketio (>=5.13,<6)
|
|
97
99
|
Requires-Dist: pytz (>=2022.7.1,<2023.0)
|
|
98
100
|
Requires-Dist: pyyaml (>=6.0.2,<6.1.0)
|
|
99
101
|
Requires-Dist: qdrant-client (>=1.9.1,<1.10.0)
|
|
100
102
|
Requires-Dist: questionary (>=1.10.0,<2.1.0)
|
|
101
103
|
Requires-Dist: randomname (>=0.2.1,<0.3.0)
|
|
102
|
-
Requires-Dist: rasa-sdk (==3.14.
|
|
104
|
+
Requires-Dist: rasa-sdk (==3.14.0a1)
|
|
103
105
|
Requires-Dist: redis (>=4.6.0,<6.0)
|
|
104
106
|
Requires-Dist: regex (>=2024.7.24,<2024.8.0)
|
|
105
|
-
Requires-Dist: requests (>=2.32.
|
|
107
|
+
Requires-Dist: requests (>=2.32.5,<2.33.0)
|
|
106
108
|
Requires-Dist: rich (>=13.4.2,<14.0.0)
|
|
107
109
|
Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0)
|
|
108
110
|
Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
|
|
@@ -118,8 +120,8 @@ Requires-Dist: sentencepiece[sentencepiece] (>=0.1.99,<0.2.0) ; extra == "transf
|
|
|
118
120
|
Requires-Dist: sentry-sdk (>=2.8.0,<3)
|
|
119
121
|
Requires-Dist: setuptools (>=78.1.1,<78.2.0)
|
|
120
122
|
Requires-Dist: sklearn-crfsuite (>=0.5.0,<0.6.0)
|
|
121
|
-
Requires-Dist: skops (>=0.
|
|
122
|
-
Requires-Dist: slack-sdk (>=3.
|
|
123
|
+
Requires-Dist: skops (>=0.13.0,<0.14.0)
|
|
124
|
+
Requires-Dist: slack-sdk (>=3.36.0,<3.37.0)
|
|
123
125
|
Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
|
|
124
126
|
Requires-Dist: structlog (>=25.4.0,<25.5.0)
|
|
125
127
|
Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
|
|
@@ -139,7 +141,8 @@ Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
|
|
|
139
141
|
Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
|
|
140
142
|
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
|
|
141
143
|
Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "transformers" or extra == "full"
|
|
142
|
-
Requires-Dist: twilio (>=
|
|
144
|
+
Requires-Dist: twilio (>=9.7.2,<9.8.0)
|
|
145
|
+
Requires-Dist: types-cachetools (>=6.2.0.20250827,<6.3.0.0)
|
|
143
146
|
Requires-Dist: types-protobuf (==4.25.0.20240417)
|
|
144
147
|
Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)
|
|
145
148
|
Requires-Dist: typing-utils (>=0.1.0,<0.2.0)
|