rasa-pro 3.14.0.dev5__py3-none-any.whl → 3.14.0.dev7__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 +38 -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 +685 -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 +77 -0
- rasa/agents/validation.py +484 -0
- rasa/api.py +14 -6
- rasa/cli/arguments/default_arguments.py +12 -0
- rasa/cli/arguments/run.py +2 -0
- rasa/cli/arguments/train.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/interactive.py +2 -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/cli/train.py +2 -0
- rasa/cli/utils.py +85 -1
- rasa/constants.py +6 -0
- rasa/core/actions/action.py +52 -10
- rasa/core/agent.py +19 -1
- rasa/core/available_agents.py +220 -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-cce7e0a8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-fdd6bcfa.js → blockDiagram-38ab4fdb-e2a49be7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-f5ae6786.js → c4Diagram-3d4e48cf-3def7895.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-858c2c20.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-81efba3e.js → classDiagram-70f12bd4-e66fe4df.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-3b6b6a92.js → classDiagram-v2-f2320105-eb874aaa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-4b80996c.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-31422447.js → createText-2e5e7dd3-cf934643.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-518a90db.js → edges-e0da2a9e-8fdf9155.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-a6d3c25a.js → erDiagram-9861fffd-6106fb96.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e048c2be.js → flowDb-956e92f1-4c2bb040.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c7474c91.js → flowDiagram-66a62f08-f0ff96af.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-16f09b7a.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-cb4d8723.js → flowchart-elk-definition-4a651766-a21707ec.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-346636a2.js → ganttDiagram-c361ad54-c165acb1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-7c508874.js → gitGraphDiagram-72cf32ee-b0564cf1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-14702d8a.js → graph-e557e67a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-f18b534b.js → index-3862675e-1ce60e9e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-996fe816.js +1353 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-64154b83.js → infoDiagram-f8f76790-893569e2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-833a5f95.js → journeyDiagram-49397b02-c29c864f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-5a3b2123.js → layout-649a5eae.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-2272a8c7.js → line-0e5685ed.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-35bcf273.js → linear-eaa320bd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-92dcb0e9.js → mindmap-definition-fc14e90a-f35df9e6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-94dbc900.js → pieDiagram-8a3498a8-78339e96.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-8b7a9c33.js → quadrantDiagram-120e2f19-9b5f2f14.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6f7eab81.js → requirementDiagram-deff3bca-d05ddb3a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-f43e581d.js → sankeyDiagram-04a897e0-d9be5dfd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-0bcbefc3.js → sequenceDiagram-704730f1-0f1c4348.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-b8a74083.js → stateDiagram-587899a1-9ddf63b3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-2070218f.js → stateDiagram-v2-d93cdb3a-bc2b81ed.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-f1d54e34.js → styles-6aaf32cf-0a287936.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-980de489.js → styles-9a916d00-e3941990.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-3c03abde.js → styles-c10674c1-ce4eca24.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-46ba068f.js → svgDrawCommon-08f97a94-d822b1a8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-901f5e3d.js → timeline-definition-85554ec2-e144c7a7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-acbc628a.js → xychartDiagram-e933f94c-ab7f4e14.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 +37 -12
- rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
- rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +3 -2
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +3 -12
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
- rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
- rasa/core/channels/inspector/src/helpers/utils.test.ts +127 -0
- rasa/core/channels/inspector/src/helpers/utils.ts +66 -1
- rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
- rasa/core/channels/inspector/src/types.ts +21 -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 +519 -73
- 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 +19 -5
- 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 +68 -7
- rasa/dialogue_understanding/commands/utils.py +124 -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/clarify.py +3 -14
- rasa/dialogue_understanding/patterns/continue_interrupted.py +239 -6
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +46 -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 +57 -3
- rasa/dialogue_understanding/utils.py +24 -4
- 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/model_training.py +8 -6
- 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 +8 -0
- rasa/shared/core/constants.py +11 -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/health_check/health_check.py +7 -3
- rasa/shared/utils/llm.py +28 -5
- rasa/shared/utils/mcp/server_connection.py +186 -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.dev7.dist-info}/METADATA +14 -17
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/RECORD +214 -442
- 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.dev7.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev5.dist-info → rasa_pro-3.14.0.dev7.dist-info}/entry_points.txt +0 -0
rasa/cli/interactive.py
CHANGED
|
@@ -11,6 +11,7 @@ import rasa.utils.common
|
|
|
11
11
|
from rasa import model
|
|
12
12
|
from rasa.cli import SubParsersAction
|
|
13
13
|
from rasa.cli.arguments import interactive as arguments
|
|
14
|
+
from rasa.core.constants import DEFAULT_SUB_AGENTS
|
|
14
15
|
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
15
16
|
from rasa.shared.constants import (
|
|
16
17
|
ASSISTANT_ID_DEFAULT_VALUE,
|
|
@@ -109,6 +110,7 @@ def _set_not_required_args(args: argparse.Namespace) -> None:
|
|
|
109
110
|
args.validation_max_history = None
|
|
110
111
|
args.remote_storage = None
|
|
111
112
|
args.keep_local_model_copy = False
|
|
113
|
+
args.sub_agents = DEFAULT_SUB_AGENTS # Default value for sub-agents
|
|
112
114
|
|
|
113
115
|
|
|
114
116
|
def perform_interactive_learning(
|
rasa/cli/llm_fine_tuning.py
CHANGED
|
@@ -14,6 +14,7 @@ from rasa.cli.arguments.default_arguments import (
|
|
|
14
14
|
add_endpoint_param,
|
|
15
15
|
add_model_param,
|
|
16
16
|
add_remote_storage_param,
|
|
17
|
+
add_sub_agents_param,
|
|
17
18
|
)
|
|
18
19
|
from rasa.cli.e2e_test import (
|
|
19
20
|
RASA_PRO_BETA_FINE_TUNING_RECIPE_ENV_VAR_NAME,
|
|
@@ -137,6 +138,8 @@ def add_data_preparation_arguments(parser: argparse.ArgumentParser) -> None:
|
|
|
137
138
|
default=DEFAULT_INPUT_E2E_TEST_PATH,
|
|
138
139
|
)
|
|
139
140
|
|
|
141
|
+
add_sub_agents_param(parser)
|
|
142
|
+
|
|
140
143
|
add_remote_storage_param(parser)
|
|
141
144
|
|
|
142
145
|
rephrasing_arguments = parser.add_argument_group("Rephrasing Module")
|
|
@@ -376,6 +379,7 @@ def write_params(
|
|
|
376
379
|
"rephrase_config": rephrase_config,
|
|
377
380
|
"model": args.model,
|
|
378
381
|
"endpoints": args.endpoints,
|
|
382
|
+
"sub-agents": args.sub_agents,
|
|
379
383
|
"remote-storage": args.remote_storage,
|
|
380
384
|
"train_frac": args.train_frac,
|
|
381
385
|
"output_format": args.output_format,
|
|
@@ -420,6 +424,7 @@ def set_up_e2e_test_runner(args: argparse.Namespace) -> E2ETestRunner:
|
|
|
420
424
|
model_path=args.model,
|
|
421
425
|
model_server=endpoints.model,
|
|
422
426
|
endpoints=endpoints,
|
|
427
|
+
sub_agents_path=args.sub_agents,
|
|
423
428
|
)
|
|
424
429
|
except AgentNotReady as error:
|
|
425
430
|
structlogger.error(
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
recipe: default.v1
|
|
2
2
|
language: en
|
|
3
|
-
assistant_id: placeholder_default
|
|
4
3
|
pipeline:
|
|
5
4
|
- name: CompactLLMCommandGenerator
|
|
6
5
|
llm:
|
|
@@ -10,4 +9,4 @@ pipeline:
|
|
|
10
9
|
|
|
11
10
|
policies:
|
|
12
11
|
- name: FlowPolicy
|
|
13
|
-
# - name: EnterpriseSearchPolicy
|
|
12
|
+
# - name: EnterpriseSearchPolicy
|
rasa/cli/run.py
CHANGED
|
@@ -109,6 +109,7 @@ def run(args: argparse.Namespace) -> None:
|
|
|
109
109
|
# configured
|
|
110
110
|
|
|
111
111
|
import rasa.model
|
|
112
|
+
from rasa.core.available_agents import AvailableAgents
|
|
112
113
|
from rasa.core.available_endpoints import AvailableEndpoints
|
|
113
114
|
|
|
114
115
|
# start server if remote storage is configured
|
|
@@ -123,6 +124,9 @@ def run(args: argparse.Namespace) -> None:
|
|
|
123
124
|
rasa_run(**vars(args))
|
|
124
125
|
return
|
|
125
126
|
|
|
127
|
+
# load sub-agents
|
|
128
|
+
AvailableAgents.get_instance(args.sub_agents)
|
|
129
|
+
|
|
126
130
|
# start server if local model found
|
|
127
131
|
args.model = _validate_model_path(args.model, "model", DEFAULT_MODELS_PATH)
|
|
128
132
|
local_model_set = True
|
rasa/cli/scaffold.py
CHANGED
|
@@ -5,9 +5,6 @@ from collections import defaultdict
|
|
|
5
5
|
from enum import Enum
|
|
6
6
|
from typing import List, Text
|
|
7
7
|
|
|
8
|
-
import randomname
|
|
9
|
-
import structlog
|
|
10
|
-
|
|
11
8
|
from rasa import telemetry
|
|
12
9
|
from rasa.api import train
|
|
13
10
|
from rasa.cli import SubParsersAction
|
|
@@ -19,38 +16,21 @@ from rasa.shared.constants import (
|
|
|
19
16
|
DEFAULT_MODELS_PATH,
|
|
20
17
|
DOCS_BASE_URL,
|
|
21
18
|
)
|
|
22
|
-
from rasa.shared.utils import yaml
|
|
23
19
|
from rasa.shared.utils.cli import print_error_and_exit, print_success
|
|
24
20
|
|
|
25
|
-
structlogger = structlog.get_logger(__name__)
|
|
26
|
-
|
|
27
21
|
|
|
28
22
|
class ProjectTemplateName(Enum):
|
|
29
23
|
"""Enum of CALM project templates."""
|
|
30
24
|
|
|
31
25
|
DEFAULT = "default"
|
|
32
26
|
TUTORIAL = "tutorial"
|
|
33
|
-
BASIC = "basic"
|
|
34
|
-
FINANCE = "finance"
|
|
35
|
-
TELCO = "telco"
|
|
36
27
|
|
|
37
28
|
def __str__(self) -> str:
|
|
38
29
|
return self.value
|
|
39
30
|
|
|
40
|
-
@classmethod
|
|
41
|
-
def get_all_values(cls) -> List[str]:
|
|
42
|
-
return [name.value for name in cls]
|
|
43
|
-
|
|
44
|
-
@classmethod
|
|
45
|
-
def supported_values(cls) -> str:
|
|
46
|
-
return ", ".join(cls.get_all_values())
|
|
47
|
-
|
|
48
31
|
|
|
49
32
|
template_domain_path = defaultdict(lambda: DEFAULT_DOMAIN_PATH)
|
|
50
33
|
template_domain_path[ProjectTemplateName.DEFAULT] = "domain"
|
|
51
|
-
template_domain_path[ProjectTemplateName.BASIC] = "domain"
|
|
52
|
-
template_domain_path[ProjectTemplateName.FINANCE] = "domain"
|
|
53
|
-
template_domain_path[ProjectTemplateName.TELCO] = "domain"
|
|
54
34
|
|
|
55
35
|
|
|
56
36
|
def add_subparser(
|
|
@@ -179,33 +159,9 @@ def create_initial_project(
|
|
|
179
159
|
path: Text, template: ProjectTemplateName = ProjectTemplateName.DEFAULT
|
|
180
160
|
) -> None:
|
|
181
161
|
"""Creates directory structure and templates for initial project."""
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
# clear the cache of the copy_tree function, this avoids issues if
|
|
185
|
-
# a project directory existed before and we removed folders in it
|
|
186
|
-
# with shutil.rmtree. see
|
|
187
|
-
# https://stackoverflow.com/questions/9160227/dir-util-copy-tree-fails-after-shutil-rmtree
|
|
188
|
-
if hasattr(dir_util, "_path_created"):
|
|
189
|
-
dir_util._path_created.clear()
|
|
190
|
-
else:
|
|
191
|
-
dir_util.SkipRepeatAbsolutePaths.clear() # type: ignore[attr-defined]
|
|
192
|
-
dir_util.copy_tree(scaffold_path(template), path)
|
|
162
|
+
from distutils.dir_util import copy_tree
|
|
193
163
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
def create_random_assistant_id(path: Text) -> None:
|
|
198
|
-
"""Create a random assistant id."""
|
|
199
|
-
assistant_id = f"{randomname.get_name()}"
|
|
200
|
-
config = yaml.read_yaml_file(os.path.join(path, "config.yml"))
|
|
201
|
-
|
|
202
|
-
if isinstance(config, dict):
|
|
203
|
-
config["assistant_id"] = assistant_id
|
|
204
|
-
yaml.write_yaml(config, os.path.join(path, "config.yml"))
|
|
205
|
-
else:
|
|
206
|
-
structlogger.warning(
|
|
207
|
-
"cli.scaffold.create_random_assistant_id.invalid_config", config=config
|
|
208
|
-
)
|
|
164
|
+
copy_tree(scaffold_path(template), path)
|
|
209
165
|
|
|
210
166
|
|
|
211
167
|
def scaffold_path(template: ProjectTemplateName) -> Text:
|
rasa/cli/shell.py
CHANGED
|
@@ -6,6 +6,7 @@ from typing import List
|
|
|
6
6
|
from rasa import telemetry
|
|
7
7
|
from rasa.cli import SubParsersAction
|
|
8
8
|
from rasa.cli.arguments import shell as arguments
|
|
9
|
+
from rasa.cli.arguments.default_arguments import add_sub_agents_param
|
|
9
10
|
from rasa.core.available_endpoints import AvailableEndpoints
|
|
10
11
|
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
11
12
|
from rasa.exceptions import ModelNotFound
|
|
@@ -45,6 +46,8 @@ def add_subparser(
|
|
|
45
46
|
help="Set the conversation ID.",
|
|
46
47
|
)
|
|
47
48
|
|
|
49
|
+
add_sub_agents_param(shell_parser)
|
|
50
|
+
|
|
48
51
|
run_subparsers = shell_parser.add_subparsers()
|
|
49
52
|
|
|
50
53
|
shell_nlu_subparser = run_subparsers.add_parser(
|
rasa/cli/train.py
CHANGED
|
@@ -147,6 +147,7 @@ def run_training(args: argparse.Namespace, can_exit: bool = False) -> Optional[T
|
|
|
147
147
|
args.fail_on_validation_warnings,
|
|
148
148
|
args.validation_max_history,
|
|
149
149
|
training_data_importer,
|
|
150
|
+
sub_agents=args.sub_agents,
|
|
150
151
|
)
|
|
151
152
|
|
|
152
153
|
training_result = train_all(
|
|
@@ -168,6 +169,7 @@ def run_training(args: argparse.Namespace, can_exit: bool = False) -> Optional[T
|
|
|
168
169
|
file_importer=training_data_importer,
|
|
169
170
|
keep_local_model_copy=args.keep_local_model_copy,
|
|
170
171
|
remote_root_only=args.remote_root_only,
|
|
172
|
+
sub_agents=args.sub_agents,
|
|
171
173
|
)
|
|
172
174
|
if training_result.code != 0 and can_exit:
|
|
173
175
|
display_research_study_prompt()
|
rasa/cli/utils.py
CHANGED
|
@@ -11,9 +11,9 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Union, overlo
|
|
|
11
11
|
import randomname
|
|
12
12
|
import structlog
|
|
13
13
|
|
|
14
|
-
import rasa.shared.utils.cli
|
|
15
14
|
import rasa.shared.utils.io
|
|
16
15
|
from rasa import telemetry
|
|
16
|
+
from rasa.agents.validation import validate_agent_folder
|
|
17
17
|
from rasa.exceptions import ModelNotFound, ValidationError
|
|
18
18
|
from rasa.shared.constants import (
|
|
19
19
|
ASSISTANT_ID_DEFAULT_VALUE,
|
|
@@ -257,6 +257,7 @@ def validate_files(
|
|
|
257
257
|
stories_only: bool = False,
|
|
258
258
|
flows_only: bool = False,
|
|
259
259
|
translations_only: bool = False,
|
|
260
|
+
sub_agents: Optional[str] = None,
|
|
260
261
|
) -> None:
|
|
261
262
|
"""Validates either the story structure or the entire project.
|
|
262
263
|
|
|
@@ -267,6 +268,7 @@ def validate_files(
|
|
|
267
268
|
stories_only: If `True`, only the story structure is validated.
|
|
268
269
|
flows_only: If `True`, only the flows are validated.
|
|
269
270
|
translations_only: If `True`, only the translations data is validated.
|
|
271
|
+
sub_agents: Path to sub-agents directory for validation.
|
|
270
272
|
"""
|
|
271
273
|
from rasa.validator import Validator
|
|
272
274
|
|
|
@@ -302,6 +304,9 @@ def validate_files(
|
|
|
302
304
|
valid_translations = True
|
|
303
305
|
valid_CALM_slot_mappings = validator.validate_CALM_slot_mappings()
|
|
304
306
|
|
|
307
|
+
# Validate sub-agents if specified
|
|
308
|
+
valid_sub_agents = _validate_sub_agents(sub_agents) if sub_agents else True
|
|
309
|
+
|
|
305
310
|
all_good = (
|
|
306
311
|
valid_domain
|
|
307
312
|
and valid_nlu
|
|
@@ -309,6 +314,7 @@ def validate_files(
|
|
|
309
314
|
and valid_flows
|
|
310
315
|
and valid_translations
|
|
311
316
|
and valid_CALM_slot_mappings
|
|
317
|
+
and valid_sub_agents
|
|
312
318
|
)
|
|
313
319
|
|
|
314
320
|
if validator.config:
|
|
@@ -352,6 +358,84 @@ def _validate_domain(validator: "Validator") -> bool:
|
|
|
352
358
|
)
|
|
353
359
|
|
|
354
360
|
|
|
361
|
+
def _validate_sub_agents(sub_agents_path: str) -> bool:
|
|
362
|
+
"""Validates sub-agents configuration.
|
|
363
|
+
|
|
364
|
+
Args:
|
|
365
|
+
sub_agents_path: Path to the sub-agents directory.
|
|
366
|
+
|
|
367
|
+
Returns:
|
|
368
|
+
True if validation passes, False otherwise.
|
|
369
|
+
"""
|
|
370
|
+
try:
|
|
371
|
+
# Check if the sub-agents directory exists
|
|
372
|
+
if not os.path.isdir(sub_agents_path):
|
|
373
|
+
# If the sub-agents-path points to the default folder and it doesn't exist,
|
|
374
|
+
# no agents are available.
|
|
375
|
+
# AvailableAgents will handle the non-existing folder gracefully.
|
|
376
|
+
from rasa.core.constants import DEFAULT_SUB_AGENTS
|
|
377
|
+
|
|
378
|
+
if sub_agents_path == DEFAULT_SUB_AGENTS:
|
|
379
|
+
structlogger.info(
|
|
380
|
+
"cli.validate_files.sub_agents_validation",
|
|
381
|
+
sub_agents_path=sub_agents_path,
|
|
382
|
+
event_info="Default sub-agents directory does not exist, "
|
|
383
|
+
"no sub-agents will be available.",
|
|
384
|
+
)
|
|
385
|
+
return True
|
|
386
|
+
else:
|
|
387
|
+
# For user-specified paths, the directory must exist
|
|
388
|
+
structlogger.error(
|
|
389
|
+
"cli.validate_files.sub_agents_validation_error",
|
|
390
|
+
sub_agents_path=sub_agents_path,
|
|
391
|
+
event_info=f"Sub-agents directory '{sub_agents_path}' "
|
|
392
|
+
"does not exist.",
|
|
393
|
+
)
|
|
394
|
+
return False
|
|
395
|
+
|
|
396
|
+
# Validate the actual config content using AvailableAgents
|
|
397
|
+
# This will validate file existence, structure, mandatory keys, etc.
|
|
398
|
+
try:
|
|
399
|
+
validate_agent_folder(sub_agents_path)
|
|
400
|
+
|
|
401
|
+
except ValidationError as e:
|
|
402
|
+
# This is a validation error - log it and return False
|
|
403
|
+
structlogger.error(
|
|
404
|
+
"cli.validate_files.sub_agents_validation_error",
|
|
405
|
+
sub_agents_path=sub_agents_path,
|
|
406
|
+
validation_error=str(e),
|
|
407
|
+
event_info=f"Sub-agents configuration validation failed: {e}",
|
|
408
|
+
)
|
|
409
|
+
return False
|
|
410
|
+
|
|
411
|
+
except Exception as e:
|
|
412
|
+
# This is an unexpected error
|
|
413
|
+
structlogger.error(
|
|
414
|
+
"cli.validate_files.sub_agents_validation_error",
|
|
415
|
+
sub_agents_path=sub_agents_path,
|
|
416
|
+
error=str(e),
|
|
417
|
+
event_info=f"Unexpected error during sub-agents validation: {e}",
|
|
418
|
+
)
|
|
419
|
+
return False
|
|
420
|
+
|
|
421
|
+
structlogger.info(
|
|
422
|
+
"cli.validate_files.sub_agents_validation_success",
|
|
423
|
+
sub_agents_path=sub_agents_path,
|
|
424
|
+
event_info="Sub-agents validation passed successfully.",
|
|
425
|
+
)
|
|
426
|
+
return True
|
|
427
|
+
|
|
428
|
+
except Exception as e:
|
|
429
|
+
# This is an unexpected error
|
|
430
|
+
structlogger.error(
|
|
431
|
+
"cli.validate_files.sub_agents_validation_error",
|
|
432
|
+
sub_agents_path=sub_agents_path,
|
|
433
|
+
error=str(e),
|
|
434
|
+
event_info="Sub-agents validation failed.",
|
|
435
|
+
)
|
|
436
|
+
return False
|
|
437
|
+
|
|
438
|
+
|
|
355
439
|
def _validate_nlu(validator: "Validator", fail_on_warnings: bool) -> bool:
|
|
356
440
|
return validator.verify_nlu(not fail_on_warnings)
|
|
357
441
|
|
rasa/constants.py
CHANGED
|
@@ -22,8 +22,14 @@ MINIMUM_COMPATIBLE_VERSION = "3.11.0rc1"
|
|
|
22
22
|
|
|
23
23
|
GLOBAL_USER_CONFIG_PATH = os.path.expanduser("~/.config/rasa/global.yml")
|
|
24
24
|
|
|
25
|
+
# Logging level for external libraries (default: ERROR to reduce noise)
|
|
25
26
|
DEFAULT_LOG_LEVEL_LIBRARIES = "ERROR"
|
|
26
27
|
ENV_LOG_LEVEL_LIBRARIES = "LOG_LEVEL_LIBRARIES"
|
|
28
|
+
|
|
29
|
+
# MCP (Model Context Protocol) logging configuration
|
|
30
|
+
ENV_LOG_LEVEL_MCP = "LOG_LEVEL_MCP"
|
|
31
|
+
ENV_MCP_LOGGING_ENABLED = "MCP_LOGGING_ENABLED"
|
|
32
|
+
|
|
27
33
|
ENV_LOG_LEVEL_MATPLOTLIB = "LOG_LEVEL_MATPLOTLIB"
|
|
28
34
|
ENV_LOG_LEVEL_RABBITMQ = "LOG_LEVEL_RABBITMQ"
|
|
29
35
|
ENV_LOG_LEVEL_KAFKA = "LOG_LEVEL_KAFKA"
|
rasa/core/actions/action.py
CHANGED
|
@@ -47,6 +47,7 @@ from rasa.shared.constants import (
|
|
|
47
47
|
UTTER_PREFIX,
|
|
48
48
|
)
|
|
49
49
|
from rasa.shared.core.constants import (
|
|
50
|
+
ACTION_AGENT_REQUEST_USER_INPUT_NAME,
|
|
50
51
|
ACTION_BACK_NAME,
|
|
51
52
|
ACTION_DEACTIVATE_LOOP_NAME,
|
|
52
53
|
ACTION_DEFAULT_ASK_AFFIRMATION_NAME,
|
|
@@ -56,6 +57,8 @@ from rasa.shared.core.constants import (
|
|
|
56
57
|
ACTION_LISTEN_NAME,
|
|
57
58
|
ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
|
|
58
59
|
ACTION_METADATA_EXECUTION_SUCCESS,
|
|
60
|
+
ACTION_METADATA_MESSAGE_KEY,
|
|
61
|
+
ACTION_METADATA_TEXT_KEY,
|
|
59
62
|
ACTION_RESET_ROUTING,
|
|
60
63
|
ACTION_RESTART_NAME,
|
|
61
64
|
ACTION_REVERT_FALLBACK_EVENTS_NAME,
|
|
@@ -88,7 +91,12 @@ from rasa.shared.core.slot_mappings import (
|
|
|
88
91
|
)
|
|
89
92
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
90
93
|
from rasa.shared.exceptions import RasaException
|
|
91
|
-
from rasa.shared.nlu.constants import
|
|
94
|
+
from rasa.shared.nlu.constants import (
|
|
95
|
+
INTENT,
|
|
96
|
+
INTENT_NAME_KEY,
|
|
97
|
+
INTENT_RANKING_KEY,
|
|
98
|
+
PREDICTED_CONFIDENCE_KEY,
|
|
99
|
+
)
|
|
92
100
|
from rasa.shared.utils.io import raise_warning
|
|
93
101
|
from rasa.shared.utils.schemas.events import EVENTS_SCHEMA
|
|
94
102
|
from rasa.utils.endpoints import EndpointConfig
|
|
@@ -113,6 +121,10 @@ def default_actions(action_endpoint: Optional[EndpointConfig] = None) -> List["A
|
|
|
113
121
|
from rasa.core.actions.two_stage_fallback import TwoStageFallbackAction
|
|
114
122
|
from rasa.dialogue_understanding.patterns.cancel import ActionCancelFlow
|
|
115
123
|
from rasa.dialogue_understanding.patterns.clarify import ActionClarifyFlows
|
|
124
|
+
from rasa.dialogue_understanding.patterns.continue_interrupted import (
|
|
125
|
+
ActionCancelInterruptedFlows,
|
|
126
|
+
ActionContinueInterruptedFlow,
|
|
127
|
+
)
|
|
116
128
|
from rasa.dialogue_understanding.patterns.correction import ActionCorrectFlowSlot
|
|
117
129
|
|
|
118
130
|
return [
|
|
@@ -127,6 +139,7 @@ def default_actions(action_endpoint: Optional[EndpointConfig] = None) -> List["A
|
|
|
127
139
|
TwoStageFallbackAction(action_endpoint),
|
|
128
140
|
ActionUnlikelyIntent(),
|
|
129
141
|
ActionSendText(),
|
|
142
|
+
ActionAgentRequestUserInfo(),
|
|
130
143
|
ActionBack(),
|
|
131
144
|
ActionExtractSlots(action_endpoint),
|
|
132
145
|
ActionCancelFlow(),
|
|
@@ -139,6 +152,8 @@ def default_actions(action_endpoint: Optional[EndpointConfig] = None) -> List["A
|
|
|
139
152
|
ActionResetRouting(),
|
|
140
153
|
ActionHangup(),
|
|
141
154
|
ActionRepeatBotMessages(),
|
|
155
|
+
ActionContinueInterruptedFlow(),
|
|
156
|
+
ActionCancelInterruptedFlows(),
|
|
142
157
|
]
|
|
143
158
|
|
|
144
159
|
|
|
@@ -873,8 +888,8 @@ class RemoteAction(Action):
|
|
|
873
888
|
) -> List[BotUttered]:
|
|
874
889
|
"""Use the responses generated by the action endpoint and utter them."""
|
|
875
890
|
bot_messages = []
|
|
876
|
-
domain: Domain = kwargs.get("domain", None)
|
|
877
|
-
action_name: str = kwargs.get("action_name", None)
|
|
891
|
+
domain: Optional[Domain] = kwargs.get("domain", None)
|
|
892
|
+
action_name: Optional[str] = kwargs.get("action_name", None)
|
|
878
893
|
for response in responses:
|
|
879
894
|
generated_response = response.pop("response", None)
|
|
880
895
|
if generated_response is not None:
|
|
@@ -897,6 +912,7 @@ class RemoteAction(Action):
|
|
|
897
912
|
draft.setdefault("buttons", [])
|
|
898
913
|
draft["buttons"].extend(buttons)
|
|
899
914
|
|
|
915
|
+
# Avoid overwriting `draft` values with empty values
|
|
900
916
|
response = {k: v for k, v in response.items() if v}
|
|
901
917
|
response.update(draft)
|
|
902
918
|
bot_messages.append(create_bot_utterance(response))
|
|
@@ -1014,13 +1030,13 @@ def _revert_affirmation_events(tracker: "DialogueStateTracker") -> List[Event]:
|
|
|
1014
1030
|
revert_events += _revert_rephrasing_events()
|
|
1015
1031
|
|
|
1016
1032
|
last_user_event = tracker.get_last_event_for(UserUttered)
|
|
1017
|
-
if not last_user_event:
|
|
1018
|
-
raise TypeError("Cannot find last event to revert to.")
|
|
1033
|
+
if not last_user_event or not isinstance(last_user_event, UserUttered):
|
|
1034
|
+
raise TypeError("Cannot find last user uttered event to revert to.")
|
|
1019
1035
|
|
|
1020
1036
|
last_user_event = copy.deepcopy(last_user_event)
|
|
1021
1037
|
# FIXME: better type annotation for `parse_data` would require
|
|
1022
1038
|
# a larger refactoring (e.g. switch to dataclass)
|
|
1023
|
-
last_user_event.parse_data[
|
|
1039
|
+
last_user_event.parse_data[INTENT][PREDICTED_CONFIDENCE_KEY] = 1.0 # type: ignore[literal-required]
|
|
1024
1040
|
|
|
1025
1041
|
return revert_events + [last_user_event]
|
|
1026
1042
|
|
|
@@ -1037,8 +1053,8 @@ def _revert_single_affirmation_events() -> List[Event]:
|
|
|
1037
1053
|
|
|
1038
1054
|
def _revert_successful_rephrasing(tracker: "DialogueStateTracker") -> List[Event]:
|
|
1039
1055
|
last_user_event = tracker.get_last_event_for(UserUttered)
|
|
1040
|
-
if not last_user_event:
|
|
1041
|
-
raise TypeError("Cannot find last event to revert to.")
|
|
1056
|
+
if not last_user_event or not isinstance(last_user_event, UserUttered):
|
|
1057
|
+
raise TypeError("Cannot find last user uttered event to revert to.")
|
|
1042
1058
|
|
|
1043
1059
|
last_user_event = copy.deepcopy(last_user_event)
|
|
1044
1060
|
return _revert_rephrasing_events() + [last_user_event]
|
|
@@ -1138,9 +1154,9 @@ class ActionSendText(Action):
|
|
|
1138
1154
|
metadata: Optional[Dict[Text, Any]] = None,
|
|
1139
1155
|
) -> List[Event]:
|
|
1140
1156
|
"""Runs action. Please see parent class for the full docstring."""
|
|
1141
|
-
fallback = {
|
|
1157
|
+
fallback = {ACTION_METADATA_TEXT_KEY: ""}
|
|
1142
1158
|
metadata_copy = copy.deepcopy(metadata) if metadata else {}
|
|
1143
|
-
message = metadata_copy.get(
|
|
1159
|
+
message = metadata_copy.get(ACTION_METADATA_MESSAGE_KEY, fallback)
|
|
1144
1160
|
|
|
1145
1161
|
should_send_text = metadata_copy.get("should_send_text", True)
|
|
1146
1162
|
if should_send_text:
|
|
@@ -1148,6 +1164,32 @@ class ActionSendText(Action):
|
|
|
1148
1164
|
return []
|
|
1149
1165
|
|
|
1150
1166
|
|
|
1167
|
+
class ActionAgentRequestUserInfo(Action):
|
|
1168
|
+
"""Sends a text message to the output channel that requests some user information.
|
|
1169
|
+
|
|
1170
|
+
The difference to `ActionSendText` is that this action will pause the main advancing
|
|
1171
|
+
flow loop until the user responds to the request
|
|
1172
|
+
(`should_predict_another_action` will return False for this action).
|
|
1173
|
+
"""
|
|
1174
|
+
|
|
1175
|
+
def name(self) -> Text:
|
|
1176
|
+
return ACTION_AGENT_REQUEST_USER_INPUT_NAME
|
|
1177
|
+
|
|
1178
|
+
async def run(
|
|
1179
|
+
self,
|
|
1180
|
+
output_channel: "OutputChannel",
|
|
1181
|
+
nlg: "NaturalLanguageGenerator",
|
|
1182
|
+
tracker: "DialogueStateTracker",
|
|
1183
|
+
domain: "Domain",
|
|
1184
|
+
metadata: Optional[Dict[Text, Any]] = None,
|
|
1185
|
+
) -> List[Event]:
|
|
1186
|
+
"""Runs action. Please see parent class for the full docstring."""
|
|
1187
|
+
fallback = {ACTION_METADATA_TEXT_KEY: ""}
|
|
1188
|
+
metadata_copy = copy.deepcopy(metadata) if metadata else {}
|
|
1189
|
+
message = metadata_copy.get(ACTION_METADATA_MESSAGE_KEY, fallback)
|
|
1190
|
+
return [create_bot_utterance(message)]
|
|
1191
|
+
|
|
1192
|
+
|
|
1151
1193
|
class ActionExtractSlots(Action):
|
|
1152
1194
|
"""Default action that runs after each user turn.
|
|
1153
1195
|
|
rasa/core/agent.py
CHANGED
|
@@ -12,7 +12,9 @@ import aiohttp
|
|
|
12
12
|
from aiohttp import ClientError
|
|
13
13
|
|
|
14
14
|
import rasa.shared.utils.io
|
|
15
|
+
from rasa.agents.utils import initialize_agents
|
|
15
16
|
from rasa.core import jobs
|
|
17
|
+
from rasa.core.available_agents import AvailableAgents
|
|
16
18
|
from rasa.core.available_endpoints import AvailableEndpoints
|
|
17
19
|
from rasa.core.channels.channel import OutputChannel, UserMessage
|
|
18
20
|
from rasa.core.constants import DEFAULT_REQUEST_TIMEOUT
|
|
@@ -34,7 +36,7 @@ from rasa.privacy.privacy_manager import BackgroundPrivacyManager
|
|
|
34
36
|
from rasa.shared.constants import DEFAULT_SENDER_ID
|
|
35
37
|
from rasa.shared.core.domain import Domain
|
|
36
38
|
from rasa.shared.core.trackers import DialogueStateTracker, EventVerbosity
|
|
37
|
-
from rasa.shared.exceptions import RasaException
|
|
39
|
+
from rasa.shared.exceptions import AgentInitializationException, RasaException
|
|
38
40
|
from rasa.telemetry import track_privacy_enabled
|
|
39
41
|
from rasa.utils.common import TempDirectoryPath, get_temp_dir_name
|
|
40
42
|
from rasa.utils.endpoints import EndpointConfig
|
|
@@ -202,6 +204,7 @@ async def load_agent(
|
|
|
202
204
|
model_server: Optional[EndpointConfig] = None,
|
|
203
205
|
remote_storage: Optional[StorageType] = None,
|
|
204
206
|
endpoints: Optional[AvailableEndpoints] = None,
|
|
207
|
+
sub_agents: Optional[AvailableAgents] = None,
|
|
205
208
|
loop: Optional[AbstractEventLoop] = None,
|
|
206
209
|
) -> Agent:
|
|
207
210
|
"""Loads agent from server, remote storage or disk.
|
|
@@ -211,6 +214,7 @@ async def load_agent(
|
|
|
211
214
|
model_server: Configuration for a potential server which serves the model.
|
|
212
215
|
remote_storage: Remote storage to use for loading the model.
|
|
213
216
|
endpoints: Endpoint configuration.
|
|
217
|
+
sub_agents: Sub-agents configuration.
|
|
214
218
|
loop: Optional async loop to pass to broker creation.
|
|
215
219
|
|
|
216
220
|
Returns:
|
|
@@ -281,8 +285,20 @@ async def load_agent(
|
|
|
281
285
|
"No valid configuration given to load agent. "
|
|
282
286
|
"Agent loaded with no model!"
|
|
283
287
|
)
|
|
288
|
+
|
|
289
|
+
if agent.processor:
|
|
290
|
+
flows = await agent.processor.get_flows()
|
|
291
|
+
domain = agent.processor.domain
|
|
292
|
+
# CLI commands that accept --sub-agents
|
|
293
|
+
# all route through this entry point.
|
|
294
|
+
# With all required data available,
|
|
295
|
+
# this is the best spot to initialize the subagents.
|
|
296
|
+
await initialize_agents(flows, domain, sub_agents)
|
|
297
|
+
|
|
284
298
|
return agent
|
|
285
299
|
|
|
300
|
+
except AgentInitializationException as e:
|
|
301
|
+
raise e
|
|
286
302
|
except Exception as e:
|
|
287
303
|
logger.error(f"Could not load model due to {e}.", exc_info=True)
|
|
288
304
|
return agent
|
|
@@ -322,6 +338,7 @@ class Agent:
|
|
|
322
338
|
remote_storage: Optional[StorageType] = None,
|
|
323
339
|
http_interpreter: Optional[RasaNLUHttpInterpreter] = None,
|
|
324
340
|
endpoints: Optional[AvailableEndpoints] = None,
|
|
341
|
+
sub_agents: Optional[AvailableAgents] = None,
|
|
325
342
|
privacy_manager: Optional[BackgroundPrivacyManager] = None,
|
|
326
343
|
):
|
|
327
344
|
"""Initializes an `Agent`."""
|
|
@@ -334,6 +351,7 @@ class Agent:
|
|
|
334
351
|
self.action_endpoint = action_endpoint
|
|
335
352
|
self.http_interpreter = http_interpreter
|
|
336
353
|
self.endpoints = endpoints
|
|
354
|
+
self.sub_agents = sub_agents
|
|
337
355
|
|
|
338
356
|
self._set_fingerprint(fingerprint)
|
|
339
357
|
self.model_server = model_server
|