rasa-pro 3.14.0.dev5__py3-none-any.whl → 3.14.0.dev6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rasa-pro might be problematic. Click here for more details.
- rasa/agents/agent_factory.py +122 -0
- rasa/agents/agent_manager.py +163 -0
- rasa/agents/constants.py +40 -0
- rasa/agents/core/agent_protocol.py +107 -0
- rasa/agents/core/types.py +70 -0
- rasa/agents/exceptions.py +8 -0
- rasa/agents/protocol/__init__.py +5 -0
- rasa/agents/protocol/a2a/a2a_agent.py +662 -0
- rasa/agents/protocol/mcp/mcp_base_agent.py +684 -0
- rasa/agents/protocol/mcp/mcp_open_agent.py +290 -0
- rasa/agents/protocol/mcp/mcp_task_agent.py +484 -0
- rasa/agents/schemas/__init__.py +12 -0
- rasa/agents/schemas/agent_input.py +38 -0
- rasa/agents/schemas/agent_output.py +26 -0
- rasa/agents/schemas/agent_tool_result.py +67 -0
- rasa/agents/schemas/agent_tool_schema.py +134 -0
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +15 -0
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +17 -0
- rasa/agents/utils.py +72 -0
- rasa/api.py +5 -0
- rasa/cli/arguments/default_arguments.py +12 -0
- rasa/cli/arguments/run.py +2 -0
- rasa/cli/dialogue_understanding_test.py +4 -0
- rasa/cli/e2e_test.py +4 -0
- rasa/cli/inspect.py +3 -0
- rasa/cli/llm_fine_tuning.py +5 -0
- rasa/cli/project_templates/tutorial/config.yml +1 -2
- rasa/cli/run.py +4 -0
- rasa/cli/scaffold.py +2 -46
- rasa/cli/shell.py +3 -0
- rasa/constants.py +6 -0
- rasa/core/actions/action.py +56 -10
- rasa/core/agent.py +19 -1
- rasa/core/available_agents.py +199 -0
- rasa/core/available_endpoints.py +30 -0
- rasa/core/channels/channel.py +3 -4
- rasa/core/channels/development_inspector.py +4 -4
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/dist/assets/{arc-18042c22.js → arc-63212852.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-eecf6b13.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-8f798a9a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-0cd70adf.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-df71a04c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-9b275968.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-a0f9c4ed.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-1c669cad.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-b1553799.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-112388d6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-fdebec47.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-6280ede1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-de9cc4aa.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-e1dc03e5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-83f68c51.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-22f8666f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-ca9e6217.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-c5ceb692.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-3e293924.js +1353 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-faa9999b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-c4dda8d9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-d4307784.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-0567aaa7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-c11b95cf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-0c7d3ca9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-34b433fa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-4cab816e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-8c22fa9e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-70ce9e8e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-fbcd7fc9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-45f05ea6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-beab1ea6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-2f29dbd5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-951eac83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-897fbfdd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-d667fac1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-e3205144.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-4abeb0e2.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 +11 -10
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +3 -12
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +6 -4
- rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
- rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
- rasa/core/channels/inspector/src/types.ts +4 -0
- rasa/core/channels/socketio.py +51 -212
- rasa/core/channels/studio_chat.py +29 -49
- rasa/core/channels/voice_stream/genesys.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +3 -5
- rasa/core/constants.py +4 -0
- rasa/core/policies/enterprise_search_policy.py +11 -6
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/flow_executor.py +470 -45
- rasa/core/policies/flows/mcp_tool_executor.py +277 -0
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/unexpected_intent_policy.py +1 -0
- rasa/core/processor.py +18 -15
- rasa/core/run.py +11 -14
- rasa/core/tracker_stores/tracker_store.py +3 -7
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +16 -16
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +21 -1
- rasa/dialogue_understanding/commands/__init__.py +8 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +97 -4
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +11 -0
- rasa/dialogue_understanding/commands/clarify_command.py +10 -0
- rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +11 -0
- rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
- rasa/dialogue_understanding/commands/start_flow_command.py +164 -8
- rasa/dialogue_understanding/commands/utils.py +6 -2
- rasa/dialogue_understanding/generator/command_parser.py +4 -0
- rasa/dialogue_understanding/generator/flow_retrieval.py +9 -10
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +50 -12
- rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +61 -0
- rasa/{cli/project_templates/telco/prompts/command-generator.jinja2 → dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2} +7 -3
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +81 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +81 -0
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +7 -6
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +7 -6
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +41 -2
- rasa/dialogue_understanding/patterns/continue_interrupted.py +163 -1
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +52 -8
- rasa/dialogue_understanding/processor/command_processor.py +31 -15
- rasa/dialogue_understanding/stack/dialogue_stack.py +123 -2
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
- rasa/dialogue_understanding/stack/utils.py +17 -2
- rasa/dialogue_understanding_test/du_test_runner.py +7 -2
- rasa/e2e_test/e2e_test_runner.py +12 -2
- rasa/engine/caching.py +2 -2
- rasa/engine/recipes/default_components.py +10 -18
- rasa/engine/storage/local_model_storage.py +2 -45
- rasa/graph_components/validators/default_recipe_validator.py +134 -134
- rasa/hooks.py +5 -5
- rasa/llm_fine_tuning/utils.py +2 -2
- rasa/model_manager/model_api.py +5 -4
- rasa/model_manager/runner_service.py +1 -1
- rasa/model_manager/socket_bridge.py +14 -20
- rasa/model_manager/trainer_service.py +9 -12
- rasa/model_manager/utils.py +29 -1
- rasa/model_manager/warm_rasa_process.py +1 -1
- rasa/nlu/extractors/extractor.py +2 -1
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_manager.py +11 -2
- rasa/server.py +14 -2
- rasa/shared/agents/utils.py +35 -0
- rasa/shared/constants.py +5 -0
- rasa/shared/core/constants.py +12 -1
- rasa/shared/core/domain.py +11 -58
- rasa/shared/core/events.py +327 -0
- rasa/shared/core/flows/flow_step.py +1 -7
- rasa/shared/core/flows/flows_list.py +15 -5
- rasa/shared/core/flows/flows_yaml_schema.json +112 -186
- rasa/shared/core/flows/steps/call.py +53 -5
- rasa/shared/core/flows/validation.py +177 -7
- rasa/shared/core/flows/yaml_flows_io.py +9 -17
- rasa/shared/core/slots.py +2 -6
- rasa/shared/core/trackers.py +5 -2
- rasa/shared/exceptions.py +4 -0
- rasa/shared/importers/importer.py +0 -6
- rasa/shared/importers/rasa.py +1 -1
- rasa/shared/importers/utils.py +10 -80
- rasa/shared/providers/_utils.py +44 -60
- rasa/shared/providers/embedding/default_litellm_embedding_client.py +0 -2
- rasa/shared/providers/llm/_base_litellm_client.py +39 -7
- rasa/shared/providers/llm/default_litellm_llm_client.py +0 -2
- rasa/shared/providers/llm/litellm_router_llm_client.py +8 -4
- rasa/shared/providers/llm/llm_client.py +7 -3
- rasa/shared/providers/llm/llm_response.py +66 -0
- rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
- rasa/shared/utils/llm.py +28 -5
- rasa/shared/utils/mcp/server_connection.py +166 -0
- rasa/shared/utils/schemas/events.py +42 -0
- rasa/shared/utils/yaml.py +3 -1
- rasa/studio/upload.py +47 -16
- rasa/telemetry.py +23 -97
- rasa/tracing/instrumentation/instrumentation.py +14 -10
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/utils/common.py +79 -0
- rasa/utils/io.py +9 -27
- rasa/utils/json_utils.py +1 -6
- rasa/utils/log_utils.py +2 -6
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/tensorflow/rasa_layers.py +1 -1
- rasa/utils/train_utils.py +15 -15
- rasa/validator.py +19 -21
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/METADATA +14 -17
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/RECORD +201 -432
- rasa/builder/README.md +0 -120
- rasa/builder/auth.py +0 -176
- rasa/builder/config.py +0 -115
- rasa/builder/copilot/constants.py +0 -25
- rasa/builder/copilot/copilot.py +0 -372
- rasa/builder/copilot/copilot_response_handler.py +0 -487
- rasa/builder/copilot/copilot_templated_message_provider.py +0 -58
- rasa/builder/copilot/exceptions.py +0 -20
- rasa/builder/copilot/models.py +0 -431
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +0 -726
- rasa/builder/copilot/telemetry.py +0 -195
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +0 -16
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +0 -26
- rasa/builder/document_retrieval/constants.py +0 -15
- rasa/builder/document_retrieval/inkeep-rag-response-schema.json +0 -64
- rasa/builder/document_retrieval/inkeep_document_retrieval.py +0 -238
- rasa/builder/document_retrieval/models.py +0 -62
- rasa/builder/download.py +0 -140
- rasa/builder/exceptions.py +0 -55
- rasa/builder/guardrails/__init__.py +0 -1
- rasa/builder/guardrails/constants.py +0 -3
- rasa/builder/guardrails/exceptions.py +0 -4
- rasa/builder/guardrails/lakera.py +0 -206
- rasa/builder/guardrails/models.py +0 -199
- rasa/builder/guardrails/utils.py +0 -305
- rasa/builder/job_manager.py +0 -87
- rasa/builder/jobs.py +0 -234
- rasa/builder/llm_service.py +0 -246
- rasa/builder/logging_utils.py +0 -209
- rasa/builder/main.py +0 -174
- rasa/builder/models.py +0 -197
- rasa/builder/project_generator.py +0 -450
- rasa/builder/project_info.py +0 -72
- rasa/builder/scrape_rasa_docs.py +0 -97
- rasa/builder/service.py +0 -1142
- rasa/builder/shared/tracker_context.py +0 -212
- rasa/builder/skill_to_bot_prompt.jinja2 +0 -164
- rasa/builder/training_service.py +0 -132
- rasa/builder/validation_service.py +0 -93
- rasa/cli/project_templates/basic/actions/action_api.py +0 -15
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +0 -44
- rasa/cli/project_templates/basic/config.yml +0 -23
- rasa/cli/project_templates/basic/credentials.yml +0 -34
- rasa/cli/project_templates/basic/data/general/feedback.yml +0 -20
- rasa/cli/project_templates/basic/data/general/goodbye.yml +0 -6
- rasa/cli/project_templates/basic/data/general/hello.yml +0 -7
- rasa/cli/project_templates/basic/data/general/help.yml +0 -6
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +0 -16
- rasa/cli/project_templates/basic/data/general/welcome.yml +0 -9
- rasa/cli/project_templates/basic/data/system/pattern_completed.yml +0 -7
- rasa/cli/project_templates/basic/data/system/pattern_correction.yml +0 -7
- rasa/cli/project_templates/basic/data/system/pattern_search.yml +0 -8
- rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +0 -8
- rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +0 -65
- rasa/cli/project_templates/basic/docs/template.txt +0 -7
- rasa/cli/project_templates/basic/domain/general/assistant_details.yml +0 -12
- rasa/cli/project_templates/basic/domain/general/bot_identity.yml +0 -5
- rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +0 -5
- rasa/cli/project_templates/basic/domain/general/feedback.yml +0 -28
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +0 -7
- rasa/cli/project_templates/basic/domain/general/help.yml +0 -5
- rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +0 -35
- rasa/cli/project_templates/basic/domain/general/utils.yml +0 -13
- rasa/cli/project_templates/basic/domain/general/welcome.yml +0 -7
- rasa/cli/project_templates/basic/endpoints.yml +0 -73
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
- rasa/cli/project_templates/finance/actions/__init__.py +0 -46
- 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/__init__.py +0 -0
- 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_process_immediate_payment.py +0 -18
- 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/config.yml +0 -21
- rasa/cli/project_templates/finance/credentials.yml +0 -32
- 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/accounts/check_balance.yml +0 -10
- rasa/cli/project_templates/finance/data/cards/block_card.yml +0 -66
- 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/general/feedback.yml +0 -20
- rasa/cli/project_templates/finance/data/general/goodbye.yml +0 -6
- rasa/cli/project_templates/finance/data/general/hello.yml +0 -7
- rasa/cli/project_templates/finance/data/general/help.yml +0 -9
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +0 -16
- rasa/cli/project_templates/finance/data/general/welcome.yml +0 -9
- rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +0 -5
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +0 -7
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +0 -7
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +0 -8
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +0 -8
- 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/data/transfers/transfer_money.yml +0 -67
- 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/accounts/check_balance.yml +0 -11
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +0 -101
- 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/cannot_handle.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/defaults.yml +0 -24
- rasa/cli/project_templates/finance/domain/general/feedback.yml +0 -28
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +0 -7
- rasa/cli/project_templates/finance/domain/general/help.yml +0 -5
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +0 -30
- rasa/cli/project_templates/finance/domain/general/utils.yml +0 -13
- rasa/cli/project_templates/finance/domain/general/welcome.yml +0 -8
- 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/cli/project_templates/finance/domain/transfers/transfer_money.yml +0 -79
- rasa/cli/project_templates/finance/endpoints.yml +0 -63
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +0 -19
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions_billing.py +0 -204
- rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +0 -48
- rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +0 -28
- rasa/cli/project_templates/telco/actions/actions_session_start.py +0 -18
- rasa/cli/project_templates/telco/config.yml +0 -25
- rasa/cli/project_templates/telco/credentials.yml +0 -33
- rasa/cli/project_templates/telco/csvs/billing.csv +0 -10
- rasa/cli/project_templates/telco/csvs/customers.csv +0 -5
- rasa/cli/project_templates/telco/data/flows/flow_global.yml +0 -5
- rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +0 -8
- rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +0 -7
- rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +0 -73
- rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +0 -45
- rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +0 -7
- rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +0 -6
- rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +0 -7
- rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +0 -9
- rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +0 -1
- rasa/cli/project_templates/telco/docs/restart_router.txt +0 -6
- rasa/cli/project_templates/telco/docs/run_speed_test.txt +0 -6
- rasa/cli/project_templates/telco/domain/domain_global.yml +0 -29
- rasa/cli/project_templates/telco/domain/domain_patterns.yml +0 -17
- rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +0 -20
- rasa/cli/project_templates/telco/domain/domain_reset_router.yml +0 -11
- rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +0 -24
- rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +0 -74
- rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +0 -102
- rasa/cli/project_templates/telco/endpoints.yml +0 -60
- rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +0 -62
- rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +0 -130
- rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +0 -68
- rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +0 -13
- rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +0 -47
- rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +0 -21
- rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +0 -15
- rasa/core/channels/constants.py +0 -3
- 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/core/channels/inspector/dist/assets/index-4d4bdf3a.js +0 -1335
- rasa/utils/openapi.py +0 -144
- /rasa/{builder → agents}/__init__.py +0 -0
- /rasa/{builder/copilot → agents/core}/__init__.py +0 -0
- /rasa/{builder/copilot/prompts → agents/protocol/a2a}/__init__.py +0 -0
- /rasa/{builder/copilot/templated_messages → agents/protocol/mcp}/__init__.py +0 -0
- /rasa/{builder/document_retrieval → agents/templates}/__init__.py +0 -0
- /rasa/{cli/project_templates/finance/actions/accounts → shared/agents}/__init__.py +0 -0
- /rasa/{cli/project_templates/finance/actions/cards → shared/utils/mcp}/__init__.py +0 -0
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev6.dist-info}/entry_points.txt +0 -0
|
@@ -17,9 +17,9 @@ from typing import (
|
|
|
17
17
|
Optional,
|
|
18
18
|
Text,
|
|
19
19
|
Tuple,
|
|
20
|
-
Union,
|
|
21
20
|
)
|
|
22
21
|
|
|
22
|
+
import orjson
|
|
23
23
|
import structlog
|
|
24
24
|
|
|
25
25
|
from rasa.core.channels import UserMessage
|
|
@@ -47,6 +47,7 @@ if TYPE_CHECKING:
|
|
|
47
47
|
from sanic import Sanic, Websocket # type: ignore[attr-defined]
|
|
48
48
|
from socketio import AsyncServer
|
|
49
49
|
|
|
50
|
+
from rasa.core.channels.channel import UserMessage
|
|
50
51
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
51
52
|
|
|
52
53
|
|
|
@@ -55,7 +56,7 @@ structlogger = structlog.get_logger()
|
|
|
55
56
|
|
|
56
57
|
def tracker_as_dump(
|
|
57
58
|
tracker: "DialogueStateTracker", latency: Optional[float] = None
|
|
58
|
-
) ->
|
|
59
|
+
) -> str:
|
|
59
60
|
"""Create a dump of the tracker state."""
|
|
60
61
|
from rasa.shared.core.trackers import get_trackers_for_conversation_sessions
|
|
61
62
|
|
|
@@ -66,14 +67,11 @@ def tracker_as_dump(
|
|
|
66
67
|
else:
|
|
67
68
|
last_tracker = multiple_tracker_sessions[-1]
|
|
68
69
|
|
|
69
|
-
# TODO: this is a bug: the bridge converts this back to json, but it
|
|
70
|
-
# should be json in the first place
|
|
71
70
|
state = last_tracker.current_state(EventVerbosity.AFTER_RESTART)
|
|
72
71
|
|
|
73
72
|
if latency is not None:
|
|
74
73
|
state["latency"] = {"rasa_processing_latency_ms": latency}
|
|
75
|
-
|
|
76
|
-
return state
|
|
74
|
+
return orjson.dumps(state, option=orjson.OPT_SERIALIZE_NUMPY).decode("utf-8")
|
|
77
75
|
|
|
78
76
|
|
|
79
77
|
def does_need_action_prediction(tracker: "DialogueStateTracker") -> bool:
|
|
@@ -102,12 +100,12 @@ class StudioTrackerUpdatePlugin:
|
|
|
102
100
|
"""Remove tasks that have already completed."""
|
|
103
101
|
self.tasks = [task for task in self.tasks if not task.done()]
|
|
104
102
|
|
|
105
|
-
@hookimpl
|
|
103
|
+
@hookimpl
|
|
106
104
|
def after_new_user_message(self, tracker: "DialogueStateTracker") -> None:
|
|
107
105
|
"""Triggers a tracker update notification after a new user message."""
|
|
108
106
|
self.handle_tracker_update(tracker)
|
|
109
107
|
|
|
110
|
-
@hookimpl
|
|
108
|
+
@hookimpl
|
|
111
109
|
def after_action_executed(self, tracker: "DialogueStateTracker") -> None:
|
|
112
110
|
"""Triggers a tracker update notification after an action is executed."""
|
|
113
111
|
self.handle_tracker_update(tracker)
|
|
@@ -127,7 +125,7 @@ class StudioTrackerUpdatePlugin:
|
|
|
127
125
|
self.tasks.append(task)
|
|
128
126
|
self._cleanup_tasks()
|
|
129
127
|
|
|
130
|
-
@hookimpl
|
|
128
|
+
@hookimpl
|
|
131
129
|
def after_server_stop(self) -> None:
|
|
132
130
|
"""Cancels all remaining tasks when the server stops."""
|
|
133
131
|
self._cancel_tasks()
|
|
@@ -155,7 +153,6 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
155
153
|
jwt_key: Optional[Text] = None,
|
|
156
154
|
jwt_method: Optional[Text] = "HS256",
|
|
157
155
|
metadata_key: Optional[Text] = "metadata",
|
|
158
|
-
enable_silence_timeout: bool = False,
|
|
159
156
|
) -> None:
|
|
160
157
|
"""Creates a `StudioChatInput` object."""
|
|
161
158
|
from rasa.core.agent import Agent
|
|
@@ -173,7 +170,6 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
173
170
|
jwt_key=jwt_key,
|
|
174
171
|
jwt_method=jwt_method,
|
|
175
172
|
metadata_key=metadata_key,
|
|
176
|
-
enable_silence_timeout=enable_silence_timeout,
|
|
177
173
|
)
|
|
178
174
|
|
|
179
175
|
# Initialize the Voice Input Channel
|
|
@@ -214,15 +210,14 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
214
210
|
jwt_key=credentials.get("jwt_key"),
|
|
215
211
|
jwt_method=credentials.get("jwt_method", "HS256"),
|
|
216
212
|
metadata_key=credentials.get("metadata_key", "metadata"),
|
|
217
|
-
enable_silence_timeout=credentials.get("enable_silence_timeout", False),
|
|
218
213
|
)
|
|
219
214
|
|
|
220
|
-
async def emit(self, event: str, data:
|
|
215
|
+
async def emit(self, event: str, data: str, room: str) -> None:
|
|
221
216
|
"""Emits an event to the websocket."""
|
|
222
|
-
if not self.
|
|
217
|
+
if not self.sio:
|
|
223
218
|
structlogger.error("studio_chat.emit.sio_not_initialized")
|
|
224
219
|
return
|
|
225
|
-
await self.
|
|
220
|
+
await self.sio.emit(event, data, room=room)
|
|
226
221
|
|
|
227
222
|
def _register_tracker_update_hook(self) -> None:
|
|
228
223
|
plugin_manager().register(StudioTrackerUpdatePlugin(self))
|
|
@@ -255,22 +250,15 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
255
250
|
|
|
256
251
|
async def on_message_proxy(
|
|
257
252
|
self,
|
|
258
|
-
on_new_message: Callable[[UserMessage], Awaitable[Any]],
|
|
259
|
-
message: UserMessage,
|
|
253
|
+
on_new_message: Callable[["UserMessage"], Awaitable[Any]],
|
|
254
|
+
message: "UserMessage",
|
|
260
255
|
) -> None:
|
|
261
256
|
"""Proxies the on_new_message call to the underlying channel.
|
|
262
257
|
|
|
263
258
|
Triggers a tracker update notification after processing the message.
|
|
264
259
|
"""
|
|
265
260
|
self._record_turn_start_time(message.sender_id)
|
|
266
|
-
|
|
267
|
-
await on_new_message(message)
|
|
268
|
-
except Exception as e:
|
|
269
|
-
structlogger.exception(
|
|
270
|
-
"studio_chat.on_new_message.error",
|
|
271
|
-
error=str(e),
|
|
272
|
-
sender_id=message.sender_id,
|
|
273
|
-
)
|
|
261
|
+
await on_new_message(message)
|
|
274
262
|
|
|
275
263
|
if not self.agent or not self.agent.is_ready():
|
|
276
264
|
structlogger.error("studio_chat.on_message_proxy.agent_not_initialized")
|
|
@@ -389,7 +377,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
389
377
|
call_state.is_bot_speaking = True
|
|
390
378
|
return ContinueConversationAction()
|
|
391
379
|
|
|
392
|
-
def
|
|
380
|
+
def create_output_channel(
|
|
393
381
|
self, voice_websocket: "Websocket", tts_engine: TTSEngine
|
|
394
382
|
) -> VoiceOutputChannel:
|
|
395
383
|
"""Create a voice output channel."""
|
|
@@ -419,7 +407,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
419
407
|
|
|
420
408
|
# Create a websocket adapter for this connection
|
|
421
409
|
ws_adapter = SocketIOVoiceWebsocketAdapter(
|
|
422
|
-
|
|
410
|
+
sio=self.sio,
|
|
423
411
|
session_id=session_id,
|
|
424
412
|
sid=sid,
|
|
425
413
|
bot_message_evt=self.bot_message_evt,
|
|
@@ -458,7 +446,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
458
446
|
if sid in self.active_connections:
|
|
459
447
|
del self.active_connections[sid]
|
|
460
448
|
|
|
461
|
-
@hookimpl
|
|
449
|
+
@hookimpl
|
|
462
450
|
def after_server_stop(self) -> None:
|
|
463
451
|
"""Cleanup background tasks and active connections when the server stops."""
|
|
464
452
|
structlogger.info("studio_chat.after_server_stop.cleanup")
|
|
@@ -467,12 +455,12 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
467
455
|
task.cancel()
|
|
468
456
|
|
|
469
457
|
def blueprint(
|
|
470
|
-
self, on_new_message: Callable[[UserMessage], Awaitable[Any]]
|
|
458
|
+
self, on_new_message: Callable[["UserMessage"], Awaitable[Any]]
|
|
471
459
|
) -> SocketBlueprint:
|
|
472
460
|
proxied_on_message = partial(self.on_message_proxy, on_new_message)
|
|
473
461
|
socket_blueprint = super().blueprint(proxied_on_message)
|
|
474
462
|
|
|
475
|
-
if not self.
|
|
463
|
+
if not self.sio:
|
|
476
464
|
structlogger.error("studio_chat.blueprint.sio_not_initialized")
|
|
477
465
|
return socket_blueprint
|
|
478
466
|
|
|
@@ -482,12 +470,12 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
482
470
|
) -> None:
|
|
483
471
|
self.agent = app.ctx.agent
|
|
484
472
|
|
|
485
|
-
@self.
|
|
473
|
+
@self.sio.on("disconnect", namespace=self.namespace)
|
|
486
474
|
async def disconnect(sid: Text) -> None:
|
|
487
475
|
structlogger.debug("studio_chat.sio.disconnect", sid=sid)
|
|
488
476
|
self._cleanup_tasks_for_sid(sid)
|
|
489
477
|
|
|
490
|
-
@self.
|
|
478
|
+
@self.sio.on("session_request", namespace=self.namespace)
|
|
491
479
|
async def session_request(sid: Text, data: Optional[Dict]) -> None:
|
|
492
480
|
"""Overrides the base SocketIOInput session_request handler.
|
|
493
481
|
|
|
@@ -507,7 +495,7 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
507
495
|
if data and data.get("is_voice", False):
|
|
508
496
|
self._start_voice_session(data["session_id"], sid, proxied_on_message)
|
|
509
497
|
|
|
510
|
-
@self.
|
|
498
|
+
@self.sio.on(self.user_message_evt, namespace=self.namespace)
|
|
511
499
|
async def handle_message(sid: Text, data: Dict) -> None:
|
|
512
500
|
"""Overrides the base SocketIOInput handle_message handler."""
|
|
513
501
|
# Handle voice messages
|
|
@@ -518,18 +506,10 @@ class StudioChatInput(SocketIOInput, VoiceInputChannel):
|
|
|
518
506
|
ws.put_message(data)
|
|
519
507
|
return
|
|
520
508
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
await self.handle_user_message(sid, data, proxied_on_message)
|
|
524
|
-
except Exception as e:
|
|
525
|
-
structlogger.exception(
|
|
526
|
-
"studio_chat.sio.handle_message.error",
|
|
527
|
-
error=str(e),
|
|
528
|
-
sid=sid,
|
|
529
|
-
)
|
|
530
|
-
await self.emit("error", str(e), room=sid)
|
|
509
|
+
# Handle text messages
|
|
510
|
+
await self.handle_user_message(sid, data, proxied_on_message)
|
|
531
511
|
|
|
532
|
-
@self.
|
|
512
|
+
@self.sio.on("update_tracker", namespace=self.namespace)
|
|
533
513
|
async def on_update_tracker(sid: Text, data: Dict) -> None:
|
|
534
514
|
await self.handle_tracker_update(sid, data)
|
|
535
515
|
|
|
@@ -551,7 +531,7 @@ class StudioVoiceOutputChannel(VoiceOutputChannel):
|
|
|
551
531
|
|
|
552
532
|
def create_marker_message(self, recipient_id: str) -> Tuple[str, str]:
|
|
553
533
|
message_id = uuid.uuid4().hex
|
|
554
|
-
marker_data = {"marker": message_id}
|
|
534
|
+
marker_data: Dict[str, Any] = {"marker": message_id}
|
|
555
535
|
|
|
556
536
|
# Include comprehensive latency information if available
|
|
557
537
|
latency_data = {
|
|
@@ -566,7 +546,7 @@ class StudioVoiceOutputChannel(VoiceOutputChannel):
|
|
|
566
546
|
|
|
567
547
|
# Add latency data to marker if any metrics are available
|
|
568
548
|
if latency_data:
|
|
569
|
-
marker_data["latency"] = latency_data
|
|
549
|
+
marker_data["latency"] = latency_data
|
|
570
550
|
|
|
571
551
|
return json.dumps(marker_data), message_id
|
|
572
552
|
|
|
@@ -575,9 +555,9 @@ class SocketIOVoiceWebsocketAdapter:
|
|
|
575
555
|
"""Adapter to make Socket.IO work like a Sanic WebSocket for voice channels."""
|
|
576
556
|
|
|
577
557
|
def __init__(
|
|
578
|
-
self,
|
|
558
|
+
self, sio: "AsyncServer", session_id: str, sid: str, bot_message_evt: str
|
|
579
559
|
) -> None:
|
|
580
|
-
self.
|
|
560
|
+
self.sio = sio
|
|
581
561
|
self.bot_message_evt = bot_message_evt
|
|
582
562
|
self._closed = False
|
|
583
563
|
self._receive_queue: asyncio.Queue[Any] = asyncio.Queue()
|
|
@@ -596,7 +576,7 @@ class SocketIOVoiceWebsocketAdapter:
|
|
|
596
576
|
async def send(self, data: Any) -> None:
|
|
597
577
|
"""Send data to the client."""
|
|
598
578
|
if not self.closed:
|
|
599
|
-
await self.
|
|
579
|
+
await self.sio.emit(self.bot_message_evt, data, room=self.sid)
|
|
600
580
|
|
|
601
581
|
async def recv(self) -> Any:
|
|
602
582
|
"""Receive data from the client."""
|
|
@@ -274,7 +274,7 @@ class GenesysInputChannel(VoiceInputChannel):
|
|
|
274
274
|
|
|
275
275
|
def handle_ping(self, ws: Websocket, message: dict) -> None:
|
|
276
276
|
"""Handle ping message from Genesys."""
|
|
277
|
-
response = {
|
|
277
|
+
response: Dict[str, Any] = {
|
|
278
278
|
"version": "2",
|
|
279
279
|
"type": "pong",
|
|
280
280
|
"seq": self._get_next_sequence(),
|
|
@@ -11,11 +11,6 @@ from sanic import Websocket # type: ignore
|
|
|
11
11
|
from sanic.exceptions import ServerError, WebsocketClosed
|
|
12
12
|
|
|
13
13
|
from rasa.core.channels import InputChannel, OutputChannel, UserMessage
|
|
14
|
-
from rasa.core.channels.constants import (
|
|
15
|
-
USER_CONVERSATION_SESSION_END,
|
|
16
|
-
USER_CONVERSATION_SESSION_START,
|
|
17
|
-
USER_CONVERSATION_SILENCE_TIMEOUT,
|
|
18
|
-
)
|
|
19
14
|
from rasa.core.channels.voice_ready.utils import (
|
|
20
15
|
CallParameters,
|
|
21
16
|
validate_voice_license_scope,
|
|
@@ -53,6 +48,9 @@ from rasa.utils.io import remove_emojis
|
|
|
53
48
|
logger = structlog.get_logger(__name__)
|
|
54
49
|
|
|
55
50
|
# define constants for the voice channel
|
|
51
|
+
USER_CONVERSATION_SESSION_END = "/session_end"
|
|
52
|
+
USER_CONVERSATION_SESSION_START = "/session_start"
|
|
53
|
+
USER_CONVERSATION_SILENCE_TIMEOUT = "/silence_timeout"
|
|
56
54
|
|
|
57
55
|
|
|
58
56
|
@dataclass
|
rasa/core/constants.py
CHANGED
|
@@ -31,6 +31,10 @@ BEARER_TOKEN_PREFIX = "Bearer "
|
|
|
31
31
|
# The lowest priority is intended to be used by machine learning policies.
|
|
32
32
|
DEFAULT_POLICY_PRIORITY = 1
|
|
33
33
|
|
|
34
|
+
DEFAULT_SUB_AGENTS = "sub_agents"
|
|
35
|
+
|
|
36
|
+
MCP_SERVERS_KEY = "mcp_servers"
|
|
37
|
+
|
|
34
38
|
# The priority of intent-prediction policies.
|
|
35
39
|
# This should be below all rule based policies but higher than ML
|
|
36
40
|
# based policies. This enables a loop inside ensemble where if none
|
|
@@ -63,6 +63,8 @@ from rasa.shared.constants import (
|
|
|
63
63
|
)
|
|
64
64
|
from rasa.shared.core.constants import (
|
|
65
65
|
ACTION_CANCEL_FLOW,
|
|
66
|
+
ACTION_METADATA_MESSAGE_KEY,
|
|
67
|
+
ACTION_METADATA_TEXT_KEY,
|
|
66
68
|
ACTION_SEND_TEXT_NAME,
|
|
67
69
|
DEFAULT_SLOT_NAMES,
|
|
68
70
|
)
|
|
@@ -585,8 +587,8 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
585
587
|
return self._create_prediction_internal_error(domain, tracker)
|
|
586
588
|
|
|
587
589
|
action_metadata = {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
+
ACTION_METADATA_MESSAGE_KEY: {
|
|
591
|
+
ACTION_METADATA_TEXT_KEY: response,
|
|
590
592
|
SEARCH_RESULTS_METADATA_KEY: [
|
|
591
593
|
result.text for result in documents.results
|
|
592
594
|
],
|
|
@@ -781,7 +783,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
781
783
|
if not os.path.exists(docs_folder) or not os.path.isdir(docs_folder):
|
|
782
784
|
error_message = (
|
|
783
785
|
f"Document source directory does not exist or is not a "
|
|
784
|
-
f"directory: '{
|
|
786
|
+
f"directory: '{docs_folder}'. "
|
|
785
787
|
"Please specify a valid path to the documents source directory in the "
|
|
786
788
|
"vector_store configuration."
|
|
787
789
|
)
|
|
@@ -1130,7 +1132,8 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1130
1132
|
embeddings_config: Dict[Text, Any],
|
|
1131
1133
|
log_source_method: str,
|
|
1132
1134
|
) -> None:
|
|
1133
|
-
"""
|
|
1135
|
+
"""
|
|
1136
|
+
Perform the health checks using resolved LLM and embeddings configurations.
|
|
1134
1137
|
Resolved means the configuration is either:
|
|
1135
1138
|
- A reference to a model group that has already been expanded into
|
|
1136
1139
|
its corresponding configuration using the information from
|
|
@@ -1159,7 +1162,8 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1159
1162
|
|
|
1160
1163
|
@classmethod
|
|
1161
1164
|
def get_system_default_prompt_based_on_config(cls, config: Dict[str, Any]) -> str:
|
|
1162
|
-
"""
|
|
1165
|
+
"""
|
|
1166
|
+
Resolves the default prompt template for Enterprise Search Policy based on
|
|
1163
1167
|
the component's configuration.
|
|
1164
1168
|
|
|
1165
1169
|
- The old prompt is selected when both citation and relevancy check are either
|
|
@@ -1190,7 +1194,8 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
1190
1194
|
relevancy_check_enabled: bool,
|
|
1191
1195
|
citation_enabled: bool,
|
|
1192
1196
|
) -> str:
|
|
1193
|
-
"""
|
|
1197
|
+
"""
|
|
1198
|
+
Returns the appropriate default prompt template based on the feature flags.
|
|
1194
1199
|
|
|
1195
1200
|
The selection follows this priority:
|
|
1196
1201
|
1. If relevancy check is enabled, return the prompt that includes both relevancy
|
|
@@ -137,8 +137,8 @@ class FlowPolicy(Policy):
|
|
|
137
137
|
|
|
138
138
|
# create executor and predict next action
|
|
139
139
|
try:
|
|
140
|
-
prediction = flow_executor.advance_flows(
|
|
141
|
-
tracker, domain.action_names_or_texts, flows
|
|
140
|
+
prediction = await flow_executor.advance_flows(
|
|
141
|
+
tracker, domain.action_names_or_texts, flows, domain.slots
|
|
142
142
|
)
|
|
143
143
|
return self._create_prediction_result(
|
|
144
144
|
prediction.action_name,
|
|
@@ -164,8 +164,8 @@ class FlowPolicy(Policy):
|
|
|
164
164
|
# we retry, with the internal error frame on the stack
|
|
165
165
|
events = tracker.create_stack_updated_events(updated_stack)
|
|
166
166
|
tracker.update_with_events(events)
|
|
167
|
-
prediction = flow_executor.advance_flows(
|
|
168
|
-
tracker, domain.action_names_or_texts, flows
|
|
167
|
+
prediction = await flow_executor.advance_flows(
|
|
168
|
+
tracker, domain.action_names_or_texts, flows, domain.slots
|
|
169
169
|
)
|
|
170
170
|
collected_events = events + (prediction.events or [])
|
|
171
171
|
return self._create_prediction_result(
|