rasa-pro 3.14.0.dev20250825__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/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 +226 -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 +234 -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 +1350 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/template_cache.py +69 -0
- rasa/builder/training_service.py +194 -0
- rasa/builder/validation_service.py +97 -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 +8 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +21 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +6 -0
- rasa/cli/project_templates/basic/data/general/help.yml +6 -0
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/basic/data/general/show_faqs.yml +6 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_cannot_handle.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/docs.md +5 -0
- rasa/cli/project_templates/basic/docs/template.txt +28 -0
- rasa/cli/project_templates/basic/domain/domain.md +11 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +9 -0
- rasa/cli/project_templates/basic/domain/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +21 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff.yml +32 -0
- rasa/cli/project_templates/basic/domain/general/show_faqs.yml +14 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_session_start.yml +19 -0
- rasa/cli/project_templates/basic/endpoints.yml +67 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/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 -0
- rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
- rasa/cli/project_templates/finance/actions/actions.md +15 -0
- rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/cards/check_that_card_exists.py +21 -0
- rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
- rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
- rasa/cli/project_templates/finance/actions/db.py +117 -0
- rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
- rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
- rasa/cli/project_templates/finance/config.yml +29 -0
- rasa/cli/project_templates/finance/credentials.yml +33 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
- rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
- rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +45 -0
- rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
- rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
- rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
- rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
- rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
- rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
- rasa/cli/project_templates/finance/data/data.md +14 -0
- rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +6 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
- rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
- rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +34 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
- rasa/cli/project_templates/finance/db/cards.json +18 -0
- rasa/cli/project_templates/finance/db/contacts.json +10 -0
- rasa/cli/project_templates/finance/db/my_account.json +6 -0
- rasa/cli/project_templates/finance/db/transactions.json +22 -0
- rasa/cli/project_templates/finance/docs/docs.md +8 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +15 -0
- rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
- rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
- rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +44 -0
- rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
- rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
- rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
- rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
- rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
- rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
- rasa/cli/project_templates/finance/domain/domain.md +18 -0
- rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
- rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +8 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +31 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +39 -0
- rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
- rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
- rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +221 -0
- rasa/cli/project_templates/finance/endpoints.yml +67 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/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/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions.md +12 -0
- rasa/cli/project_templates/telco/actions/billing/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/billing/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/telco/actions/network/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/network/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/network/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/network/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +29 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +19 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/billing/flow_understand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/data.md +11 -0
- rasa/cli/project_templates/telco/data/general/bot_challenge.yml +6 -0
- rasa/cli/project_templates/telco/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/telco/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/telco/data/general/hello.yml +6 -0
- rasa/cli/project_templates/telco/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/telco/data/general/patterns.yml +30 -0
- rasa/cli/project_templates/telco/data/network/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/network/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/network/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/docs/docs.md +8 -0
- rasa/cli/project_templates/telco/docs/network/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/network/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/network/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/billing/understand_bill.yml +102 -0
- rasa/cli/project_templates/telco/domain/domain.md +13 -0
- rasa/cli/project_templates/telco/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/telco/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/telco/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/telco/domain/general/hello.yml +5 -0
- rasa/cli/project_templates/telco/domain/general/human_handoff.yml +26 -0
- rasa/cli/project_templates/telco/domain/general/patterns.yml +33 -0
- rasa/cli/project_templates/telco/domain/network/reboot_router.yml +21 -0
- rasa/cli/project_templates/telco/domain/network/reset_router.yml +12 -0
- rasa/cli/project_templates/telco/domain/network/run_speed_test.yml +25 -0
- rasa/cli/project_templates/telco/domain/network/solve_internet_issue.yml +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/core/actions/action.py +0 -1
- 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-1ddec37b.js โ arc-35222594.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-18af387c.js โ blockDiagram-38ab4fdb-a0efbfd3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-250127a3.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-c3388b34.js โ classDiagram-70f12bd4-39f40dbe.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-9c893a82.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-c111213b.js โ createText-2e5e7dd3-b0f4f0fe.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-812a729d.js โ edges-e0da2a9e-9039bff9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-fd5051bc.js โ erDiagram-9861fffd-65c9b127.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-3287ac02.js โ flowDb-956e92f1-4f08b38e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-692fb0b2.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-008376f1.js โ flowchart-elk-definition-4a651766-703c3015.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-df330a69.js โ ganttDiagram-c361ad54-699328ea.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-e03676fb.js โ gitGraphDiagram-72cf32ee-04cf4b05.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-46fad2ba.js โ graph-ee94449e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-a484ac55.js โ index-3862675e-940162b4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-a003633f.js โ index-c941dcb3.js} +239 -238
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-3f9e6ec2.js โ infoDiagram-f8f76790-c79c2866.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-79f72383.js โ journeyDiagram-49397b02-84489d30.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-aad098e5.js โ layout-a9aa9858.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-219ab7ae.js โ line-eb73cf26.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-2cddbe62.js โ linear-b3399f9a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-1d41ed99.js โ mindmap-definition-fc14e90a-b095bf1a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-cc496ee8.js โ pieDiagram-8a3498a8-07644b66.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-84d32884.js โ quadrantDiagram-120e2f19-573a3f9c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-c0deb984.js โ requirementDiagram-deff3bca-d457e1e1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-b9d7fd62.js โ sankeyDiagram-04a897e0-9d26e1a2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-7d517565.js โ sequenceDiagram-704730f1-3a9cde10.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-98ef9b27.js โ stateDiagram-587899a1-4f3e8cec.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-cee70748.js โ stateDiagram-v2-d93cdb3a-e617e5bf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-3f9d1c96.js โ styles-6aaf32cf-eab30d2f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-67471923.js โ styles-9a916d00-09994be2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-bd093fb7.js โ styles-c10674c1-b7110364.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-675794e8.js โ svgDrawCommon-08f97a94-3ebc92ad.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-0ac67617.js โ timeline-definition-85554ec2-7d13d2f2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-c018dc37.js โ xychartDiagram-e933f94c-488385e1.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 +15 -42
- rasa/core/channels/inspector/src/components/Chat.tsx +2 -3
- 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/types.ts +32 -7
- rasa/core/channels/studio_chat.py +43 -43
- 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/enterprise_search_policy.py +4 -7
- rasa/core/policies/flows/flow_executor.py +9 -2
- 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/dialogue_understanding/generator/flow_retrieval.py +10 -9
- rasa/engine/graph.py +5 -1
- rasa/engine/loader.py +12 -0
- rasa/engine/storage/local_model_storage.py +83 -3
- rasa/model_manager/model_api.py +1 -2
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +1 -2
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +13 -3
- rasa/shared/core/constants.py +1 -0
- rasa/shared/core/domain.py +62 -15
- rasa/shared/core/events.py +2 -0
- rasa/shared/core/flows/flow.py +1 -1
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/steps/call.py +8 -1
- rasa/shared/core/flows/yaml_flows_io.py +16 -8
- rasa/shared/core/slots.py +4 -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/studio/upload.py +12 -46
- rasa/telemetry.py +97 -23
- 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/pypred.py +38 -0
- rasa/validator.py +19 -11
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev20250825.dist-info โ rasa_pro-3.14.0.dev20250922.dist-info}/METADATA +27 -25
- {rasa_pro-3.14.0.dev20250825.dist-info โ rasa_pro-3.14.0.dev20250922.dist-info}/RECORD +348 -109
- rasa/core/channels/inspector/dist/assets/channel-59f6d54b.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-26177ddb.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-29c03f5a.js +0 -1
- {rasa_pro-3.14.0.dev20250825.dist-info โ rasa_pro-3.14.0.dev20250922.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev20250825.dist-info โ rasa_pro-3.14.0.dev20250922.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev20250825.dist-info โ rasa_pro-3.14.0.dev20250922.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Text
|
|
2
|
+
|
|
3
|
+
from openai import AsyncOpenAI
|
|
4
|
+
from rasa_sdk import Action, Tracker
|
|
5
|
+
from rasa_sdk.events import BotUttered
|
|
6
|
+
from rasa_sdk.executor import CollectingDispatcher
|
|
7
|
+
from rasa_sdk.types import DomainDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ActionHumanHandoff(Action):
|
|
11
|
+
def __init__(self) -> None:
|
|
12
|
+
super().__init__()
|
|
13
|
+
self.client = AsyncOpenAI()
|
|
14
|
+
|
|
15
|
+
def name(self) -> Text:
|
|
16
|
+
return "action_human_handoff"
|
|
17
|
+
|
|
18
|
+
async def run(
|
|
19
|
+
self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
|
|
20
|
+
) -> List[Dict[Text, Any]]:
|
|
21
|
+
# Collect conversation
|
|
22
|
+
convo = []
|
|
23
|
+
for event in tracker.events:
|
|
24
|
+
if event.get("event") == "user":
|
|
25
|
+
user_text = "{}".format(event.get("text"))
|
|
26
|
+
user_text2 = "user - " + user_text
|
|
27
|
+
convo.append(user_text2)
|
|
28
|
+
if event.get("event") == "bot":
|
|
29
|
+
bot_text = "{}".format(event.get("text"))
|
|
30
|
+
bot_text2 = "bot - " + bot_text
|
|
31
|
+
# print(bot_text)
|
|
32
|
+
convo.append(bot_text2)
|
|
33
|
+
prompt = (
|
|
34
|
+
f"The following is a conversation between a bot and a human user, "
|
|
35
|
+
f"please summarise so that a human agent can easily understand "
|
|
36
|
+
f"the important context. Conversation: {convo}"
|
|
37
|
+
)
|
|
38
|
+
response = await self.client.chat.completions.create(
|
|
39
|
+
model="gpt-4", # or "gpt-3.5-turbo"
|
|
40
|
+
messages=[{"role": "user", "content": prompt}],
|
|
41
|
+
)
|
|
42
|
+
summarised_conversation = response.choices[0].message.content or ""
|
|
43
|
+
return [
|
|
44
|
+
BotUttered(
|
|
45
|
+
f"I will transfer the following summary of our conversation "
|
|
46
|
+
f"to the Callback Manager:\n"
|
|
47
|
+
f"{summarised_conversation}"
|
|
48
|
+
)
|
|
49
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import csv
|
|
2
|
+
from typing import Dict, List
|
|
3
|
+
|
|
4
|
+
from rasa_sdk import Action
|
|
5
|
+
from rasa_sdk.events import SlotSet
|
|
6
|
+
from rasa_sdk.executor import CollectingDispatcher
|
|
7
|
+
from rasa_sdk.interfaces import Tracker
|
|
8
|
+
from rasa_sdk.types import DomainDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ActionGetCustomerInfo(Action):
|
|
12
|
+
def name(self) -> str:
|
|
13
|
+
return "action_get_customer_info"
|
|
14
|
+
|
|
15
|
+
def run(
|
|
16
|
+
self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
|
|
17
|
+
) -> List[Dict]:
|
|
18
|
+
# Load CSV file
|
|
19
|
+
file_path = "csvs/customers.csv" # get information from your DBs
|
|
20
|
+
customer_id = tracker.get_slot("customer_id")
|
|
21
|
+
|
|
22
|
+
try:
|
|
23
|
+
with open(file_path, "r", newline="") as csvfile:
|
|
24
|
+
reader = csv.DictReader(csvfile)
|
|
25
|
+
|
|
26
|
+
# Filter data for the given customer ID
|
|
27
|
+
customer_info = None
|
|
28
|
+
for row in reader:
|
|
29
|
+
if row["customer_id"] == str(customer_id):
|
|
30
|
+
customer_info = row
|
|
31
|
+
break
|
|
32
|
+
|
|
33
|
+
if customer_info is None:
|
|
34
|
+
dispatcher.utter_message("No customer found with this ID.")
|
|
35
|
+
return []
|
|
36
|
+
|
|
37
|
+
# Extract customer details
|
|
38
|
+
first_name = customer_info["first_name"]
|
|
39
|
+
|
|
40
|
+
# Set the retrieved name in a slot
|
|
41
|
+
return [SlotSet("customer_first_name", first_name)]
|
|
42
|
+
|
|
43
|
+
except FileNotFoundError:
|
|
44
|
+
dispatcher.utter_message("Customer database file not found.")
|
|
45
|
+
return []
|
|
46
|
+
except Exception:
|
|
47
|
+
dispatcher.utter_message("Error retrieving customer information.")
|
|
48
|
+
return []
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import random
|
|
3
|
+
|
|
4
|
+
from rasa_sdk import Action
|
|
5
|
+
from rasa_sdk.events import EventType, SlotSet
|
|
6
|
+
from rasa_sdk.executor import CollectingDispatcher
|
|
7
|
+
from rasa_sdk.interfaces import Tracker
|
|
8
|
+
from rasa_sdk.types import DomainDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ActionSleepAndRespond(Action):
|
|
12
|
+
def name(self) -> str:
|
|
13
|
+
return "actions_run_speed_test"
|
|
14
|
+
|
|
15
|
+
async def run(
|
|
16
|
+
self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
|
|
17
|
+
) -> list[EventType]:
|
|
18
|
+
await asyncio.sleep(10)
|
|
19
|
+
dispatcher.utter_message(
|
|
20
|
+
text="Thank you for waiting... โ
"
|
|
21
|
+
) # Send to the user
|
|
22
|
+
|
|
23
|
+
random_number = random.randint(
|
|
24
|
+
50, 150
|
|
25
|
+
) # we will pick randomly the internet speed here
|
|
26
|
+
# for local testing purposes you can define the number
|
|
27
|
+
# for Production testing connect to the API to get this data
|
|
28
|
+
return [SlotSet("network_speed", random_number)]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from rasa_sdk import Action
|
|
4
|
+
from rasa_sdk.events import EventType
|
|
5
|
+
from rasa_sdk.executor import CollectingDispatcher
|
|
6
|
+
from rasa_sdk.interfaces import Tracker
|
|
7
|
+
from rasa_sdk.types import DomainDict
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ActionSleepAndRespond(Action):
|
|
11
|
+
def name(self) -> str:
|
|
12
|
+
return "action_sleep_few_sec"
|
|
13
|
+
|
|
14
|
+
async def run(
|
|
15
|
+
self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: DomainDict
|
|
16
|
+
) -> list[EventType]:
|
|
17
|
+
await asyncio.sleep(3)
|
|
18
|
+
return []
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Rasa Agent Configuration
|
|
2
|
+
# This file controls your agent's language, message processing pipeline, and conversation policies.
|
|
3
|
+
# For full documentation, see: https://rasa.com/docs/pro/build/configuring-assistant
|
|
4
|
+
recipe: default.v1
|
|
5
|
+
language: en
|
|
6
|
+
|
|
7
|
+
# The agent project unique identifier
|
|
8
|
+
# This default value must be replaced with a unique agent name within your deployment
|
|
9
|
+
assistant_id: placeholder_default
|
|
10
|
+
|
|
11
|
+
pipeline:
|
|
12
|
+
- name: SearchReadyLLMCommandGenerator
|
|
13
|
+
llm:
|
|
14
|
+
model_group: openai-gpt-4o
|
|
15
|
+
flow_retrieval:
|
|
16
|
+
active: false
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
policies:
|
|
20
|
+
- name: FlowPolicy
|
|
21
|
+
- name: EnterpriseSearchPolicy
|
|
22
|
+
vector_store:
|
|
23
|
+
type: "faiss"
|
|
24
|
+
source: "./docs"
|
|
25
|
+
llm:
|
|
26
|
+
model_group: openai-gpt-4o
|
|
27
|
+
embeddings:
|
|
28
|
+
model_group: openai-embeddings
|
|
29
|
+
check_relevancy: true
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# This file contains the credentials for the voice & chat platforms
|
|
2
|
+
# which your bot is using.
|
|
3
|
+
# https://rasa.com/docs/rasa-pro/connectors/messaging-and-voice-channels/
|
|
4
|
+
|
|
5
|
+
rest:
|
|
6
|
+
# # you don't need to provide anything here - this channel doesn't
|
|
7
|
+
# # require any credentials
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
#facebook:
|
|
11
|
+
# verify: "<verify>"
|
|
12
|
+
# secret: "<your secret>"
|
|
13
|
+
# page-access-token: "<your page access token>"
|
|
14
|
+
|
|
15
|
+
#slack:
|
|
16
|
+
# slack_token: "<your slack token>"
|
|
17
|
+
# slack_channel: "<the slack channel>"
|
|
18
|
+
# slack_signing_secret: "<your slack signing secret>"
|
|
19
|
+
|
|
20
|
+
#socketio:
|
|
21
|
+
# user_message_evt: <event name for user message>
|
|
22
|
+
# bot_message_evt: <event name for bot messages>
|
|
23
|
+
# session_persistence: <true/false>
|
|
24
|
+
|
|
25
|
+
#mattermost:
|
|
26
|
+
# url: "https://<mattermost instance>/api/v4"
|
|
27
|
+
# token: "<bot token>"
|
|
28
|
+
# webhook_url: "<callback URL>"
|
|
29
|
+
|
|
30
|
+
# This entry is needed if you are using Rasa Enterprise. The entry represents credentials
|
|
31
|
+
# for the Rasa Enterprise "channel", i.e. Talk to your bot and Share with guest testers.
|
|
32
|
+
rasa:
|
|
33
|
+
url: "http://localhost:5002/api"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
customer_id,date,amount,source
|
|
2
|
+
123,01/01/2025,150.50,Internet
|
|
3
|
+
123,01/02/2025,55.00,Internet
|
|
4
|
+
123,01/03/2025,60.00,Internet
|
|
5
|
+
123,01/04/2025,65.00,Internet
|
|
6
|
+
123,01/05/2025,70.00,Internet
|
|
7
|
+
123,01/06/2025,75.00,Internet
|
|
8
|
+
123,01/07/2025,80.00,Internet
|
|
9
|
+
123,01/08/2025,85.00,Internet
|
|
10
|
+
123,01/09/2025,90.00,Internet
|
|
11
|
+
123,01/10/2025,95.00,Internet
|
|
12
|
+
123,01/11/2025,100.00,Internet
|
|
13
|
+
123,01/12/2025,105.00,Internet
|
|
14
|
+
124,01/01/2025,53.00,TV
|
|
15
|
+
124,01/02/2025,53.00,TV
|
|
16
|
+
124,01/03/2025,53.00,TV
|
|
17
|
+
125,01/01/2025,89.75,Mobile
|
|
18
|
+
125,01/02/2025,89.75,Mobile
|
|
19
|
+
125,01/03/2025,89.75,Mobile
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
understand_bill:
|
|
3
|
+
if: slots.user_authenticated # the user has to be authenticated in order to access this flow
|
|
4
|
+
description: This flow allows users to check their bill and billing related details.
|
|
5
|
+
steps:
|
|
6
|
+
- collect: bill_month
|
|
7
|
+
ask_before_filling: False
|
|
8
|
+
- action: action_verify_bill_by_date
|
|
9
|
+
- collect: breakdown_cost
|
|
10
|
+
description: |
|
|
11
|
+
This slot is boolean variable. it holds one of two possible values: true or false
|
|
12
|
+
(breakdown_cost = True, breakdown_cost = False), and if the user says "yup," it should be considered True, while "nope" should be considered False
|
|
13
|
+
(e.g., breakdown_cost = True for "yup", breakdown_cost = False for "nope").
|
|
14
|
+
ask_before_filling: true # This can be useful some LLMs will prefill bool slots here we make it mandatory for the bot to ask the user
|
|
15
|
+
next:
|
|
16
|
+
- if: slots.breakdown_cost # it has to be 'slots' with an 's', this means breakdown_cost is True
|
|
17
|
+
then:
|
|
18
|
+
- action: action_recap_bill
|
|
19
|
+
- collect: more_bill_details
|
|
20
|
+
next:
|
|
21
|
+
- if: slots.more_bill_details
|
|
22
|
+
then:
|
|
23
|
+
- action: utter_provide_bill_sources
|
|
24
|
+
next: "END"
|
|
25
|
+
- else: issue_solved_section # this will call "issue_solved_section" section
|
|
26
|
+
|
|
27
|
+
- else: issue_solved_section
|
|
28
|
+
|
|
29
|
+
- id: issue_solved_section # This will help avoid re-writting the same piece of code, this way it can be re-used
|
|
30
|
+
collect: issue_solved
|
|
31
|
+
description: |
|
|
32
|
+
This slot is boolean variable. it holds one of two possible values: true or false
|
|
33
|
+
(issue_solved = True, issue_solved = False), and if the user says "yup" it should be considered True, while "nope" should be considered False
|
|
34
|
+
(e.g., issue_solved = True for "yup", issue_solved = False for "nope").
|
|
35
|
+
ask_before_filling: true
|
|
36
|
+
next:
|
|
37
|
+
- if: not slots.issue_solved # this means issue_solved is False
|
|
38
|
+
then:
|
|
39
|
+
- action: utter_connect_to_human
|
|
40
|
+
- action: action_sleep_few_sec
|
|
41
|
+
- link: human_handoff
|
|
42
|
+
|
|
43
|
+
- else:
|
|
44
|
+
- action: utter_end_conversation
|
|
45
|
+
next: "END"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## ๐ `data/` โ The Agent's Business Logic
|
|
2
|
+
|
|
3
|
+
This folder holds files that define your agentโs skills using "flows". [1](https://rasa.com/docs/pro/build/writing-flows) Each flow is a step-by-step conversation pattern (like a recipe) for handling a user goal (e.g., checking a balance, updating an address).
|
|
4
|
+
|
|
5
|
+
**What you'll find:**
|
|
6
|
+
- **billing/**: Billing and payment flows (bill inquiries, payment processing)
|
|
7
|
+
- **network/**: Network service flows (troubleshooting, diagnostics, service checks)
|
|
8
|
+
- **general/**: General telecom conversations (greetings, help, support)
|
|
9
|
+
|
|
10
|
+
**Edit YAML files in this folder** to add new telecom features, modify existing flows, or adjust what the agent asks customers.
|
|
11
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Simple thumbs up/down feedback flow
|
|
2
|
+
flows:
|
|
3
|
+
leave_feedback:
|
|
4
|
+
name: leaving feedback
|
|
5
|
+
description: This flow collects simple thumbs up or thumbs down feedback
|
|
6
|
+
if: False # Flow guard to prevent direct triggering
|
|
7
|
+
steps:
|
|
8
|
+
- collect: feedback_rating
|
|
9
|
+
description: Ask user for thumbs up or thumbs down feedback
|
|
10
|
+
- id: feedback_response
|
|
11
|
+
noop: true
|
|
12
|
+
next:
|
|
13
|
+
- if: slots.feedback_rating == "thumbs_up"
|
|
14
|
+
then: positive_response
|
|
15
|
+
- else: negative_response
|
|
16
|
+
- id: positive_response
|
|
17
|
+
action: utter_thankyou_positive
|
|
18
|
+
next: END
|
|
19
|
+
- id: negative_response
|
|
20
|
+
action: utter_thankyou_negative
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: "3.1"
|
|
2
|
+
flows:
|
|
3
|
+
human_handoff:
|
|
4
|
+
description: When you are unable to handle the request or the user is frustrated - offers to hand the user over to a live human agent.
|
|
5
|
+
steps:
|
|
6
|
+
- collect: confirm_human_handoff
|
|
7
|
+
ask_before_filling: True
|
|
8
|
+
next:
|
|
9
|
+
- if: slots.confirm_human_handoff
|
|
10
|
+
then:
|
|
11
|
+
- action: utter_transferring_to_human
|
|
12
|
+
- action: action_human_handoff
|
|
13
|
+
next: END
|
|
14
|
+
- else:
|
|
15
|
+
- action: utter_human_handoff_cancelled
|
|
16
|
+
next: END
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
pattern_completed:
|
|
3
|
+
description: A flow has been completed and there is nothing else to be done
|
|
4
|
+
if: False
|
|
5
|
+
steps:
|
|
6
|
+
- noop: true
|
|
7
|
+
next: END
|
|
8
|
+
|
|
9
|
+
pattern_correction:
|
|
10
|
+
description: Handle a correction of a slot value.
|
|
11
|
+
name: pattern correction
|
|
12
|
+
steps:
|
|
13
|
+
- action: action_correct_flow_slot
|
|
14
|
+
next: "END"
|
|
15
|
+
|
|
16
|
+
pattern_search:
|
|
17
|
+
description: Flow for handling knowledge-based questions
|
|
18
|
+
name: pattern search
|
|
19
|
+
steps:
|
|
20
|
+
- id: 0_action_trigger_search
|
|
21
|
+
next: END
|
|
22
|
+
action: action_trigger_search
|
|
23
|
+
|
|
24
|
+
pattern_session_start:
|
|
25
|
+
description: Flow for starting the conversation
|
|
26
|
+
name: pattern session start
|
|
27
|
+
nlu_trigger:
|
|
28
|
+
- intent: session_start
|
|
29
|
+
steps:
|
|
30
|
+
- action: utter_greeting
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
reboot_router: # only reboot/restart the router
|
|
3
|
+
if: False
|
|
4
|
+
description: Help user reboot and restart their router, the user will be doing this action
|
|
5
|
+
steps:
|
|
6
|
+
- action: utter_explain_reboot_router
|
|
7
|
+
- collect: reboot_router
|
|
8
|
+
reset_after_flow_ends: true
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
flows:
|
|
2
|
+
fix_internet_slow: # flow name mandatory โ this defines a conversational flow for running diagnostics.
|
|
3
|
+
description: Help users solve when internet is slow and provide solutions # description another madatory field this will be sent to CALM
|
|
4
|
+
steps:
|
|
5
|
+
- action: utter_acknowledge_issue # an utter a response that the agent will display to the end user.
|
|
6
|
+
- action: action_sleep_few_sec # Adding sleep time in a chatbot conversation makes interactions feel more natural,
|
|
7
|
+
#improves readability, and simulates processing delays for a better user experience.
|
|
8
|
+
- call: run_diagnostics # Call a flow, this flow can be re-used multiple times.
|
|
9
|
+
# fix_internet_slow will (parent flow) call run_diagnostics (child flow)
|
|
10
|
+
# when you call a flow, you go to the child flow and then be back to the parent flow
|
|
11
|
+
# first call
|
|
12
|
+
next:
|
|
13
|
+
- if: slots.network_speed < 100 # the syntax is important it has to be slots, this slot has to be float as well
|
|
14
|
+
then:
|
|
15
|
+
- action: utter_acknowledge_speed_test_not_good
|
|
16
|
+
- action: action_sleep_few_sec
|
|
17
|
+
- action: utter_propose_reboot_router_solution
|
|
18
|
+
- action: action_sleep_few_sec
|
|
19
|
+
- call: reboot_router
|
|
20
|
+
next:
|
|
21
|
+
- if: slots.reboot_router # this slot is boolean
|
|
22
|
+
then:
|
|
23
|
+
- call: run_diagnostics # Second call
|
|
24
|
+
next:
|
|
25
|
+
- if: slots.network_speed > 100
|
|
26
|
+
then:
|
|
27
|
+
- action: action_sleep_few_sec
|
|
28
|
+
- action: utter_speed_issue_resolved
|
|
29
|
+
next: "END" # this has to be added, either next END to explain the flow end or point to another section
|
|
30
|
+
- else:
|
|
31
|
+
- action: action_sleep_few_sec
|
|
32
|
+
- action: utter_speed_issue_not_resolved
|
|
33
|
+
- call: reset_router
|
|
34
|
+
- action: utter_final_diagnistics_run
|
|
35
|
+
- call: run_diagnostics # Third call
|
|
36
|
+
next:
|
|
37
|
+
- if: slots.network_speed < 100
|
|
38
|
+
then:
|
|
39
|
+
- action: utter_acknowledge_speed_test_not_good
|
|
40
|
+
- action: utter_fail_to_find_fix
|
|
41
|
+
- link: human_handoff # when you link a flow, you go to the child flow and then the flow ends there.
|
|
42
|
+
- else:
|
|
43
|
+
- action: action_sleep_few_sec
|
|
44
|
+
- action: utter_final_try_worked
|
|
45
|
+
- action: utter_speed_issue_resolved
|
|
46
|
+
next: "END"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
- else:
|
|
50
|
+
- link: human_handoff
|
|
51
|
+
- else:
|
|
52
|
+
- action: utter_speed_network_not_issue
|
|
53
|
+
- action: action_sleep_few_sec
|
|
54
|
+
- action: utter_propose_other_solutions
|
|
55
|
+
- action: action_sleep_few_sec
|
|
56
|
+
- collect: more_help_needed
|
|
57
|
+
next:
|
|
58
|
+
- if: slots.more_help_needed
|
|
59
|
+
then:
|
|
60
|
+
- link: human_handoff
|
|
61
|
+
- else:
|
|
62
|
+
- action: action_sleep_few_sec
|
|
63
|
+
- action: utter_final_help
|
|
64
|
+
next: "END"
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
run_diagnostics:
|
|
68
|
+
if: False # Conditional check โ this flow will not run unless this condition is verified.
|
|
69
|
+
#when it is False this means this flow will only be run if it is called by another flow, not the user.
|
|
70
|
+
description: run diagnostics to check the internet speed for the user
|
|
71
|
+
steps:
|
|
72
|
+
- action: utter_communicate_run_diagnosticss
|
|
73
|
+
- action: actions_run_speed_test
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## ๐ `docs/` โ The Agent's Knowledge Base (optional)
|
|
2
|
+
|
|
3
|
+
If your agent answers knowledge-based questions (FAQs, policies, etc.), you can put markdown, PDFs, or text files in this folder. Rasa can use this content for retrieval-augmented responses if set up with a vector store [2](https://rasa.com/docs/pro/build/retrieval-actions).
|
|
4
|
+
|
|
5
|
+
**What you'll find:**
|
|
6
|
+
- **network/**: Technical documentation for network troubleshooting and diagnostics
|
|
7
|
+
|
|
8
|
+
**Edit here** to update what your agent can retrieve and summarize for users.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Rebooting a router means simply turning it off and back on without changing any settings. This helps resolve temporary issues like slow speeds or dropped connections and is done by pressing the power button or unplugging the device for a few seconds before turning it back on. Resetting a router, on the other hand, restores it to factory settings, erasing all custom configurations such as the Wi-Fi name, password, and advanced settings. This is done by holding the reset button for about 10-30 seconds until the router restarts. While rebooting is a quick fix for minor issues, resetting should only be done as a last resort when troubleshooting persistent problems.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Here are concise summaries of how to turn your router on and off:
|
|
2
|
+
Using the Power Button: Press the power button to turn off the router, wait 30 seconds, then press it again to turn it back on.
|
|
3
|
+
Unplugging Method: Disconnect the power cable, wait 30 seconds, then plug it back in to restart the router.
|
|
4
|
+
Full Restart for Issues: Turn off the router, wait 1 minute, then turn it back on to refresh the connection.
|
|
5
|
+
|
|
6
|
+
To turn your router off, press the power button (if available) or unplug it from the power source. Wait about 30 seconds to 1 minute before turning it back on by pressing the power button again or plugging it back in. This helps refresh the connection and resolve minor network issues.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Speed test is run by a special software to check what is the current speed of your Internet when uploading or downloading files
|
|
2
|
+
You can use "Fast.com", "Speedtest.net", or Google "Internet speed test"
|
|
3
|
+
An internet speed test measures your connection's performance by evaluating download and upload speeds (Mbps), ping (latency in ms), and jitter.
|
|
4
|
+
It helps determine how fast data is sent and received, impacting streaming, gaming, and video calls.
|
|
5
|
+
Speed tests are useful for diagnosing slow connections and verifying ISP performance.
|
|
6
|
+
You can use our App for a speed test. Go to the Home menu, select WLAN speed test and run it.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
actions:
|
|
2
|
+
- action_get_customer_info
|
|
3
|
+
- action_verify_bill_by_date
|
|
4
|
+
- action_recap_bill
|
|
5
|
+
|
|
6
|
+
slots:
|
|
7
|
+
bill_month:
|
|
8
|
+
type: categorical
|
|
9
|
+
mappings:
|
|
10
|
+
- type: from_llm
|
|
11
|
+
values:
|
|
12
|
+
- January
|
|
13
|
+
- February
|
|
14
|
+
- March
|
|
15
|
+
- April
|
|
16
|
+
- May
|
|
17
|
+
- June
|
|
18
|
+
- July
|
|
19
|
+
- August
|
|
20
|
+
- September
|
|
21
|
+
- October
|
|
22
|
+
- November
|
|
23
|
+
- December
|
|
24
|
+
|
|
25
|
+
bill_amount:
|
|
26
|
+
type: float
|
|
27
|
+
mappings:
|
|
28
|
+
- type: controlled
|
|
29
|
+
|
|
30
|
+
user_authenticated:
|
|
31
|
+
type: bool
|
|
32
|
+
mappings:
|
|
33
|
+
- type: controlled
|
|
34
|
+
initial_value: True
|
|
35
|
+
|
|
36
|
+
average_bill:
|
|
37
|
+
type: float
|
|
38
|
+
mappings:
|
|
39
|
+
- type: controlled
|
|
40
|
+
|
|
41
|
+
difference:
|
|
42
|
+
type: float
|
|
43
|
+
mappings:
|
|
44
|
+
- type: controlled
|
|
45
|
+
|
|
46
|
+
breakdown_cost:
|
|
47
|
+
type: bool
|
|
48
|
+
mappings:
|
|
49
|
+
- type: from_llm
|
|
50
|
+
|
|
51
|
+
issue_solved:
|
|
52
|
+
type: bool
|
|
53
|
+
mappings:
|
|
54
|
+
- type: from_llm
|
|
55
|
+
|
|
56
|
+
more_bill_details:
|
|
57
|
+
type: bool
|
|
58
|
+
mappings:
|
|
59
|
+
- type: from_llm
|
|
60
|
+
|
|
61
|
+
responses:
|
|
62
|
+
utter_ask_customer_id:
|
|
63
|
+
- text: |
|
|
64
|
+
Can you please provide me your customer id?
|
|
65
|
+
|
|
66
|
+
utter_ask_bill_month:
|
|
67
|
+
- text: |
|
|
68
|
+
Alright. Could you please specify the month? ๐
|
|
69
|
+
|
|
70
|
+
utter_ask_breakdown_cost:
|
|
71
|
+
- text: |
|
|
72
|
+
Would you like to see the breakdown of the costs?
|
|
73
|
+
buttons:
|
|
74
|
+
- title: "Yes, please"
|
|
75
|
+
payload: "/SetSlots(breakdown_cost=True)"
|
|
76
|
+
- title: "No, all good"
|
|
77
|
+
payload: "/SetSlots(breakdown_cost=False)"
|
|
78
|
+
|
|
79
|
+
utter_ask_issue_solved:
|
|
80
|
+
- text: |
|
|
81
|
+
Did I manage to provide all the information you need?
|
|
82
|
+
buttons:
|
|
83
|
+
- title: "Yes, all good"
|
|
84
|
+
payload: "/SetSlots(issue_solved=True)"
|
|
85
|
+
- title: "No, I need further help"
|
|
86
|
+
payload: "/SetSlots(issue_solved=False)"
|
|
87
|
+
|
|
88
|
+
utter_ask_more_bill_details:
|
|
89
|
+
- text: |
|
|
90
|
+
You can see more details in your account.
|
|
91
|
+
Would you like a link to the overview that contains all your bills?
|
|
92
|
+
buttons:
|
|
93
|
+
- title: "Yes, please"
|
|
94
|
+
payload: "/SetSlots(more_bill_details=True)"
|
|
95
|
+
- title: "No, it's enough"
|
|
96
|
+
payload: "/SetSlots(more_bill_details=False)"
|
|
97
|
+
|
|
98
|
+
utter_provide_bill_sources:
|
|
99
|
+
- text: |
|
|
100
|
+
I've provided a quick summary of your bill โคต๏ธ
|
|
101
|
+
For full details, please log in to your account and check your billing history here:
|
|
102
|
+
https://companyName/account/your-bills ๐
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## ๐ `domain/` โ The Agent's Brain
|
|
2
|
+
|
|
3
|
+
This folder contains YAML files that define the telecom agent's:
|
|
4
|
+
- **Slots**: The agent's memory (e.g., customer account, service status, network diagnostics) [1](https://rasa.com/docs/reference/primitives/slots/).
|
|
5
|
+
- **Responses**: The messages your agent can say to customers (e.g., greetings, service confirmations, technical explanations) [2](https://rasa.com/docs/reference/primitives/responses).
|
|
6
|
+
- **Actions**: Custom logic your agent can run (e.g., running network diagnostics, checking service status) [3](https://rasa.com/docs/reference/primitives/custom-actions).
|
|
7
|
+
|
|
8
|
+
**What you'll find:**
|
|
9
|
+
- **billing/**: Domain configuration for billing and payment features
|
|
10
|
+
- **network/**: Domain setup for network diagnostics and troubleshooting
|
|
11
|
+
- **general/**: General telecom customer service domain elements
|
|
12
|
+
|
|
13
|
+
You can organize the domain as one big file or many small ones. Rasa will automatically merge everything during training [1](https://rasa.com/docs/reference/config/domain).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
slots:
|
|
2
|
+
feedback_rating:
|
|
3
|
+
type: categorical
|
|
4
|
+
values: [thumbs_up, thumbs_down]
|
|
5
|
+
mappings:
|
|
6
|
+
- type: from_llm
|
|
7
|
+
|
|
8
|
+
responses:
|
|
9
|
+
utter_ask_feedback_rating:
|
|
10
|
+
- text: "We'd love to hear about your experience! How are we doing?"
|
|
11
|
+
buttons:
|
|
12
|
+
- title: "๐ Great"
|
|
13
|
+
payload: "/SetSlots(feedback_rating=thumbs_up)"
|
|
14
|
+
- title: "๐ Could be better"
|
|
15
|
+
payload: "/SetSlots(feedback_rating=thumbs_down)"
|
|
16
|
+
|
|
17
|
+
utter_thankyou_positive:
|
|
18
|
+
- text: "That's wonderful to hear! We appreciate you taking the time to provide us with feedback. ๐"
|
|
19
|
+
- text: "So glad we could help! Thanks for the positive feedback! ๐"
|
|
20
|
+
- text: "Amazing! We're thrilled you had a great experience. Thank you for your feedback! ๐"
|
|
21
|
+
|
|
22
|
+
utter_thankyou_negative:
|
|
23
|
+
- text: "We appreciate you taking the time to provide us with feedback. We're always working to improve our service."
|
|
24
|
+
- text: "Thank you for your honest feedback. We'll use it to make our service better."
|
|
25
|
+
- text: "Thanks for letting us know. Your feedback helps us improve our agent."
|