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/utils/common.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
import inspect
|
|
3
|
+
import json
|
|
3
4
|
import logging
|
|
4
5
|
import logging.config
|
|
5
6
|
import logging.handlers
|
|
@@ -34,7 +35,9 @@ from rasa.constants import (
|
|
|
34
35
|
ENV_LOG_LEVEL_KAFKA,
|
|
35
36
|
ENV_LOG_LEVEL_LIBRARIES,
|
|
36
37
|
ENV_LOG_LEVEL_MATPLOTLIB,
|
|
38
|
+
ENV_LOG_LEVEL_MCP,
|
|
37
39
|
ENV_LOG_LEVEL_RABBITMQ,
|
|
40
|
+
ENV_MCP_LOGGING_ENABLED,
|
|
38
41
|
)
|
|
39
42
|
from rasa.shared.constants import DEFAULT_LOG_LEVEL, ENV_LOG_LEVEL, TCP_PROTOCOL
|
|
40
43
|
from rasa.shared.exceptions import RasaException
|
|
@@ -281,6 +284,7 @@ def configure_library_logging() -> None:
|
|
|
281
284
|
update_kafka_log_level(library_log_level)
|
|
282
285
|
update_rabbitmq_log_level(library_log_level)
|
|
283
286
|
update_websockets_log_level(library_log_level)
|
|
287
|
+
update_mcp_log_level()
|
|
284
288
|
|
|
285
289
|
|
|
286
290
|
def update_apscheduler_log_level() -> None:
|
|
@@ -415,6 +419,56 @@ def update_websockets_log_level(library_log_level: Text) -> None:
|
|
|
415
419
|
logging.getLogger("websockets").propagate = False
|
|
416
420
|
|
|
417
421
|
|
|
422
|
+
def update_mcp_log_level() -> None:
|
|
423
|
+
"""Set the log level for MCP-related loggers.
|
|
424
|
+
|
|
425
|
+
This function configures logging levels for MCP (Model Context Protocol) related
|
|
426
|
+
loggers to reduce noise from HTTP and MCP client libraries.
|
|
427
|
+
|
|
428
|
+
Environment Variables:
|
|
429
|
+
LOG_LEVEL_MCP: Set the log level for MCP-related loggers.
|
|
430
|
+
Valid values: DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
431
|
+
Default: ERROR
|
|
432
|
+
|
|
433
|
+
MCP_LOGGING_ENABLED: Enable or disable MCP logging completely.
|
|
434
|
+
Valid values: true, false
|
|
435
|
+
Default: true
|
|
436
|
+
|
|
437
|
+
Examples:
|
|
438
|
+
# Show only ERROR and above for MCP logs
|
|
439
|
+
export LOG_LEVEL_MCP=ERROR
|
|
440
|
+
|
|
441
|
+
# Show DEBUG level MCP logs (very verbose)
|
|
442
|
+
export LOG_LEVEL_MCP=DEBUG
|
|
443
|
+
|
|
444
|
+
# Completely disable MCP logging
|
|
445
|
+
export MCP_LOGGING_ENABLED=false
|
|
446
|
+
"""
|
|
447
|
+
# Check if MCP logging is completely disabled
|
|
448
|
+
mcp_logging_enabled = (
|
|
449
|
+
os.environ.get(ENV_MCP_LOGGING_ENABLED, "true").lower() == "true"
|
|
450
|
+
)
|
|
451
|
+
|
|
452
|
+
# Default to ERROR level for MCP logs to reduce noise
|
|
453
|
+
mcp_log_level: Union[int, str] = os.environ.get(ENV_LOG_LEVEL_MCP, "ERROR")
|
|
454
|
+
if not mcp_logging_enabled:
|
|
455
|
+
# Completely disable MCP logging
|
|
456
|
+
mcp_log_level = logging.CRITICAL + 1 # Higher than CRITICAL to disable all logs
|
|
457
|
+
|
|
458
|
+
# MCP client and HTTP-related loggers that are commonly noisy
|
|
459
|
+
mcp_loggers = [
|
|
460
|
+
"mcp.client.streamable_http",
|
|
461
|
+
"mcp.client",
|
|
462
|
+
"httpcore.connection",
|
|
463
|
+
"httpcore.http11",
|
|
464
|
+
"httpx",
|
|
465
|
+
]
|
|
466
|
+
|
|
467
|
+
for logger_name in mcp_loggers:
|
|
468
|
+
logging.getLogger(logger_name).setLevel(mcp_log_level)
|
|
469
|
+
logging.getLogger(logger_name).propagate = False
|
|
470
|
+
|
|
471
|
+
|
|
418
472
|
def sort_list_of_dicts_by_first_key(dicts: List[Dict]) -> List[Dict]:
|
|
419
473
|
"""Sorts a list of dictionaries by their first key."""
|
|
420
474
|
return sorted(dicts, key=lambda d: next(iter(d.keys())))
|
|
@@ -646,3 +700,28 @@ def get_bool_env_variable(variable_name: str, default_variable_value: bool) -> b
|
|
|
646
700
|
f"Available values are `{true_values + false_values}`"
|
|
647
701
|
)
|
|
648
702
|
return value.lower() in true_values
|
|
703
|
+
|
|
704
|
+
|
|
705
|
+
def try_parse_json(value: Any) -> Any:
|
|
706
|
+
"""If value is a JSON string, parse it into a dict/list, else return as-is."""
|
|
707
|
+
if isinstance(value, str):
|
|
708
|
+
try:
|
|
709
|
+
return json.loads(value)
|
|
710
|
+
except json.JSONDecodeError:
|
|
711
|
+
return value
|
|
712
|
+
return value
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
def ensure_jsonified_iterable(value: Any) -> Any:
|
|
716
|
+
"""Convert iterables to JSON strings, flatten nested JSON strings in dicts/lists."""
|
|
717
|
+
if isinstance(value, dict):
|
|
718
|
+
# Recursively process dict values
|
|
719
|
+
return {
|
|
720
|
+
key: ensure_jsonified_iterable(try_parse_json(val))
|
|
721
|
+
for key, val in value.items()
|
|
722
|
+
}
|
|
723
|
+
elif isinstance(value, list):
|
|
724
|
+
# Recursively process each item
|
|
725
|
+
return [ensure_jsonified_iterable(try_parse_json(val)) for val in value]
|
|
726
|
+
# Keep primitives as-is
|
|
727
|
+
return value
|
rasa/utils/io.py
CHANGED
|
@@ -26,7 +26,6 @@ from typing_extensions import Protocol
|
|
|
26
26
|
|
|
27
27
|
import rasa.shared.constants
|
|
28
28
|
import rasa.shared.utils.io
|
|
29
|
-
from rasa.shared.exceptions import RasaException
|
|
30
29
|
|
|
31
30
|
if TYPE_CHECKING:
|
|
32
31
|
from prompt_toolkit.validation import Validator
|
|
@@ -125,7 +124,9 @@ def create_path(file_path: Text) -> None:
|
|
|
125
124
|
def file_type_validator(
|
|
126
125
|
valid_file_types: List[Text], error_message: Text
|
|
127
126
|
) -> Type["Validator"]:
|
|
128
|
-
"""Creates a
|
|
127
|
+
"""Creates a `Validator` class which can be used with `questionary` to validate
|
|
128
|
+
file paths.
|
|
129
|
+
"""
|
|
129
130
|
|
|
130
131
|
def is_valid(path: Text) -> bool:
|
|
131
132
|
return path is not None and any(
|
|
@@ -136,7 +137,9 @@ def file_type_validator(
|
|
|
136
137
|
|
|
137
138
|
|
|
138
139
|
def not_empty_validator(error_message: Text) -> Type["Validator"]:
|
|
139
|
-
"""Creates a
|
|
140
|
+
"""Creates a `Validator` class which can be used with `questionary` to validate
|
|
141
|
+
that the user entered something other than whitespace.
|
|
142
|
+
"""
|
|
140
143
|
|
|
141
144
|
def is_valid(input: Text) -> bool:
|
|
142
145
|
return input is not None and input.strip() != ""
|
|
@@ -147,7 +150,9 @@ def not_empty_validator(error_message: Text) -> Type["Validator"]:
|
|
|
147
150
|
def create_validator(
|
|
148
151
|
function: Callable[[Text], bool], error_message: Text
|
|
149
152
|
) -> Type["Validator"]:
|
|
150
|
-
"""Helper method to create
|
|
153
|
+
"""Helper method to create `Validator` classes from callable functions. Should be
|
|
154
|
+
removed when questionary supports `Validator` objects.
|
|
155
|
+
"""
|
|
151
156
|
from prompt_toolkit.document import Document
|
|
152
157
|
from prompt_toolkit.validation import ValidationError, Validator
|
|
153
158
|
|
|
@@ -245,26 +250,3 @@ def write_yaml(
|
|
|
245
250
|
|
|
246
251
|
with Path(target).open("w", encoding="utf-8") as outfile:
|
|
247
252
|
dumper.dump(data, outfile, transform=transform)
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
class InvalidPathException(RasaException):
|
|
251
|
-
"""Raised if a path is invalid - e.g. path traversal is detected."""
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
def subpath(parent: str, child: str) -> str:
|
|
255
|
-
"""Return the path to the child directory of the parent directory.
|
|
256
|
-
|
|
257
|
-
Ensures, that child doesn't navigate to parent directories. Prevents
|
|
258
|
-
path traversal. Raises an InvalidPathException if the path is invalid.
|
|
259
|
-
|
|
260
|
-
Based on Snyk's directory traversal mitigation:
|
|
261
|
-
https://learn.snyk.io/lesson/directory-traversal/
|
|
262
|
-
"""
|
|
263
|
-
safe_path = os.path.abspath(os.path.join(parent, child))
|
|
264
|
-
parent = os.path.abspath(parent)
|
|
265
|
-
|
|
266
|
-
common_base = os.path.commonpath([parent, safe_path])
|
|
267
|
-
if common_base != parent:
|
|
268
|
-
raise InvalidPathException(f"Invalid path: {safe_path}")
|
|
269
|
-
|
|
270
|
-
return safe_path
|
rasa/utils/json_utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from decimal import Decimal
|
|
3
|
-
from typing import Any,
|
|
3
|
+
from typing import Any, Text
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class DecimalEncoder(json.JSONEncoder):
|
|
@@ -58,8 +58,3 @@ def replace_decimals_with_floats(obj: Any) -> Any:
|
|
|
58
58
|
Input `obj` with all `Decimal` types replaced by `float`s.
|
|
59
59
|
"""
|
|
60
60
|
return json.loads(json.dumps(obj, cls=DecimalEncoder))
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def extract_values(data: Dict, keys: List[Text]) -> Dict:
|
|
64
|
-
"""Extracts values for given keys from a dictionary."""
|
|
65
|
-
return {key: data.get(key) for key in keys if data.get(key)}
|
rasa/utils/log_utils.py
CHANGED
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
5
|
import sys
|
|
6
|
-
from typing import Any,
|
|
6
|
+
from typing import Any, Optional
|
|
7
7
|
|
|
8
8
|
import structlog
|
|
9
9
|
from structlog.dev import ConsoleRenderer
|
|
@@ -37,7 +37,6 @@ class HumanConsoleRenderer(ConsoleRenderer):
|
|
|
37
37
|
def configure_structlog(
|
|
38
38
|
log_level: Optional[int] = None,
|
|
39
39
|
include_time: bool = False,
|
|
40
|
-
additional_processors: Optional[List[structlog.typing.Processor]] = None,
|
|
41
40
|
) -> None:
|
|
42
41
|
"""Configure logging of the server."""
|
|
43
42
|
if log_level is None: # Log level NOTSET is 0 so we use `is None` here
|
|
@@ -76,9 +75,6 @@ def configure_structlog(
|
|
|
76
75
|
if include_time:
|
|
77
76
|
shared_processors.append(structlog.processors.TimeStamper(fmt="iso"))
|
|
78
77
|
|
|
79
|
-
if additional_processors:
|
|
80
|
-
shared_processors.extend(additional_processors)
|
|
81
|
-
|
|
82
78
|
if not FORCE_JSON_LOGGING and sys.stderr.isatty():
|
|
83
79
|
# Pretty printing when we run in a terminal session.
|
|
84
80
|
# Automatically prints pretty tracebacks when "rich" is installed
|
|
@@ -94,7 +90,7 @@ def configure_structlog(
|
|
|
94
90
|
]
|
|
95
91
|
|
|
96
92
|
structlog.configure(
|
|
97
|
-
processors=processors,
|
|
93
|
+
processors=processors,
|
|
98
94
|
context_class=dict,
|
|
99
95
|
# `logger_factory` is used to create wrapped loggers that are used for
|
|
100
96
|
# OUTPUT. This one returns a `logging.Logger`. The final value (a JSON
|
rasa/utils/ml_utils.py
CHANGED
|
@@ -119,7 +119,7 @@ def response_for_template(
|
|
|
119
119
|
rsps = responses.get(template_name, [])
|
|
120
120
|
usuable_responses = [r for r in rsps if r.get(KEY_RESPONSES_TEXT)]
|
|
121
121
|
if usuable_responses:
|
|
122
|
-
selected_response = np.random.choice(usuable_responses)
|
|
122
|
+
selected_response = np.random.choice(usuable_responses)
|
|
123
123
|
return selected_response.get(KEY_RESPONSES_TEXT)
|
|
124
124
|
else:
|
|
125
125
|
structlogger.warning(
|
rasa/utils/train_utils.py
CHANGED
|
@@ -11,7 +11,7 @@ from rasa.nlu.constants import NUMBER_OF_SUB_TOKENS
|
|
|
11
11
|
from rasa.shared.constants import NEXT_MAJOR_VERSION_FOR_DEPRECATIONS
|
|
12
12
|
from rasa.shared.exceptions import InvalidConfigException
|
|
13
13
|
from rasa.shared.nlu.constants import SPLIT_ENTITIES_BY_COMMA
|
|
14
|
-
from rasa.utils.tensorflow.callback import RasaModelCheckpoint
|
|
14
|
+
from rasa.utils.tensorflow.callback import RasaModelCheckpoint
|
|
15
15
|
from rasa.utils.tensorflow.constants import (
|
|
16
16
|
AUTO,
|
|
17
17
|
CHECKPOINT_MODEL,
|
|
@@ -371,20 +371,20 @@ def create_common_callbacks(
|
|
|
371
371
|
Returns:
|
|
372
372
|
A list of callbacks.
|
|
373
373
|
"""
|
|
374
|
-
import tensorflow as tf
|
|
375
|
-
|
|
376
|
-
callbacks = [
|
|
377
|
-
|
|
378
|
-
if tensorboard_log_dir:
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
374
|
+
# import tensorflow as tf
|
|
375
|
+
|
|
376
|
+
callbacks = []
|
|
377
|
+
|
|
378
|
+
# if tensorboard_log_dir:
|
|
379
|
+
# callbacks.append(
|
|
380
|
+
# tf.keras.callbacks.TensorBoard(
|
|
381
|
+
# log_dir=tensorboard_log_dir,
|
|
382
|
+
# update_freq=tensorboard_log_level,
|
|
383
|
+
# write_graph=True,
|
|
384
|
+
# write_images=True,
|
|
385
|
+
# histogram_freq=10,
|
|
386
|
+
# )
|
|
387
|
+
# )
|
|
388
388
|
|
|
389
389
|
if checkpoint_dir:
|
|
390
390
|
callbacks.append(RasaModelCheckpoint(checkpoint_dir))
|
rasa/validator.py
CHANGED
|
@@ -9,7 +9,7 @@ from jinja2 import Template
|
|
|
9
9
|
from pypred import Predicate
|
|
10
10
|
from pypred.ast import CompareOperator, Literal, NegateOperator
|
|
11
11
|
|
|
12
|
-
import rasa.core.training.story_conflict
|
|
12
|
+
# import rasa.core.training.story_conflict
|
|
13
13
|
import rasa.shared.nlu.constants
|
|
14
14
|
import rasa.shared.utils.cli
|
|
15
15
|
import rasa.shared.utils.io
|
|
@@ -60,7 +60,8 @@ from rasa.shared.core.flows.utils import (
|
|
|
60
60
|
get_invalid_slot_persistence_config_error_message,
|
|
61
61
|
warn_deprecated_collect_step_config,
|
|
62
62
|
)
|
|
63
|
-
|
|
63
|
+
|
|
64
|
+
# from rasa.shared.core.generator import TrainingDataGenerator
|
|
64
65
|
from rasa.shared.core.slot_mappings import CoexistenceSystemType
|
|
65
66
|
from rasa.shared.core.slots import BooleanSlot, CategoricalSlot, ListSlot, Slot
|
|
66
67
|
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
@@ -70,7 +71,7 @@ from rasa.shared.core.training_data.structures import StoryGraph
|
|
|
70
71
|
from rasa.shared.data import create_regex_pattern_reader
|
|
71
72
|
from rasa.shared.exceptions import RasaException
|
|
72
73
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
73
|
-
from rasa.shared.nlu.constants import COMMANDS
|
|
74
|
+
from rasa.shared.nlu.constants import COMMANDS, INTENT
|
|
74
75
|
from rasa.shared.nlu.training_data.message import Message
|
|
75
76
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
76
77
|
from rasa.telemetry import track_validation_error_log
|
|
@@ -130,7 +131,7 @@ class Validator:
|
|
|
130
131
|
"""Compares list of intents in domain with intents in NLU training data."""
|
|
131
132
|
everything_is_alright = True
|
|
132
133
|
|
|
133
|
-
nlu_data_intents = {e.data[
|
|
134
|
+
nlu_data_intents = {e.data[INTENT] for e in self.intents.intent_examples}
|
|
134
135
|
|
|
135
136
|
for intent in self._non_default_intents():
|
|
136
137
|
if intent not in nlu_data_intents:
|
|
@@ -172,7 +173,7 @@ class Validator:
|
|
|
172
173
|
duplication_hash = defaultdict(set)
|
|
173
174
|
for example in self.intents.intent_examples:
|
|
174
175
|
text = example.get(rasa.shared.nlu.constants.TEXT)
|
|
175
|
-
duplication_hash[text].add(example.get(
|
|
176
|
+
duplication_hash[text].add(example.get(INTENT))
|
|
176
177
|
|
|
177
178
|
for text, intents in duplication_hash.items():
|
|
178
179
|
if len(duplication_hash[text]) > 1:
|
|
@@ -446,17 +447,18 @@ class Validator:
|
|
|
446
447
|
event_info="Story structure validation...",
|
|
447
448
|
)
|
|
448
449
|
|
|
449
|
-
trackers = TrainingDataGenerator(
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
).generate_story_trackers()
|
|
450
|
+
# trackers = TrainingDataGenerator(
|
|
451
|
+
# self.story_graph,
|
|
452
|
+
# domain=self.domain,
|
|
453
|
+
# remove_duplicates=False,
|
|
454
|
+
# augmentation_factor=0,
|
|
455
|
+
# ).generate_story_trackers()
|
|
455
456
|
|
|
456
457
|
# Create a list of `StoryConflict` objects
|
|
457
|
-
conflicts = rasa.core.training.story_conflict.find_story_conflicts(
|
|
458
|
-
|
|
459
|
-
)
|
|
458
|
+
# conflicts = rasa.core.training.story_conflict.find_story_conflicts(
|
|
459
|
+
# trackers, self.domain, max_history
|
|
460
|
+
# )
|
|
461
|
+
conflicts = None
|
|
460
462
|
|
|
461
463
|
if not conflicts:
|
|
462
464
|
structlogger.info(
|
|
@@ -629,14 +631,11 @@ class Validator:
|
|
|
629
631
|
flow_id: str,
|
|
630
632
|
) -> bool:
|
|
631
633
|
"""Validates that a collect step can have either an action or an utterance.
|
|
632
|
-
|
|
633
634
|
Also logs an error if neither an action nor an utterance is defined.
|
|
634
635
|
|
|
635
636
|
Args:
|
|
636
637
|
collect: the name of the slot to collect
|
|
637
638
|
all_good: boolean value indicating the validation status
|
|
638
|
-
domain_slots: the slots of the domain
|
|
639
|
-
flow_id: the id of the flow
|
|
640
639
|
|
|
641
640
|
Returns:
|
|
642
641
|
False, if validation failed, true, otherwise
|
|
@@ -685,10 +684,9 @@ class Validator:
|
|
|
685
684
|
has_action_defined=has_action_defined,
|
|
686
685
|
flow=flow_id,
|
|
687
686
|
event_info=(
|
|
688
|
-
f"The collect step '{collect.collect}' has neither
|
|
689
|
-
f"nor an action defined,
|
|
690
|
-
f"
|
|
691
|
-
f"'{collect.utter}' used in the collect step."
|
|
687
|
+
f"The collect step '{collect.collect}' has neither an utterance "
|
|
688
|
+
f"nor an action defined, or an initial value defined in the domain."
|
|
689
|
+
f"You need to define either an utterance or an action."
|
|
692
690
|
),
|
|
693
691
|
)
|
|
694
692
|
all_good = False
|
rasa/version.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.14.0.
|
|
3
|
+
Version: 3.14.0.dev7
|
|
4
4
|
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
5
|
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
6
6
|
Author: Rasa Technologies GmbH
|
|
7
7
|
Author-email: hi@rasa.com
|
|
8
8
|
Maintainer: Tom Bocklisch
|
|
9
9
|
Maintainer-email: tom@rasa.com
|
|
10
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.10,<3.12
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -24,9 +24,10 @@ Provides-Extra: transformers
|
|
|
24
24
|
Requires-Dist: CacheControl (>=0.14.2,<0.15.0)
|
|
25
25
|
Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
|
|
26
26
|
Requires-Dist: SQLAlchemy (>=2.0.42,<2.1.0)
|
|
27
|
+
Requires-Dist: a2a-sdk (>=0.3.2,<0.4.0)
|
|
27
28
|
Requires-Dist: absl-py (>=2.0,<2.1)
|
|
28
29
|
Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
|
|
29
|
-
Requires-Dist: aiogram (>=3.
|
|
30
|
+
Requires-Dist: aiogram (>=3.20.0,<3.21.0)
|
|
30
31
|
Requires-Dist: aiohttp (>=3.10,<3.11)
|
|
31
32
|
Requires-Dist: apscheduler (>=3.10,<3.11)
|
|
32
33
|
Requires-Dist: attrs (>=23.1,<23.2)
|
|
@@ -60,33 +61,34 @@ Requires-Dist: jinja2 (>=3.1.6,<3.2.0)
|
|
|
60
61
|
Requires-Dist: jsonpatch (>=1.33,<2.0)
|
|
61
62
|
Requires-Dist: jsonpickle (>=3.3.0,<3.4)
|
|
62
63
|
Requires-Dist: jsonschema (>=4.22)
|
|
63
|
-
Requires-Dist: keras (
|
|
64
|
+
Requires-Dist: keras (>=3.5.0,<3.6.0)
|
|
64
65
|
Requires-Dist: langchain (>=0.2.17,<0.3.0)
|
|
65
66
|
Requires-Dist: langchain-community (>=0.2.19,<0.3.0)
|
|
66
67
|
Requires-Dist: langcodes (>=3.5.0,<4.0.0)
|
|
67
68
|
Requires-Dist: litellm (>=1.69.0,<1.70.0)
|
|
68
69
|
Requires-Dist: matplotlib (>=3.9.4,<3.10.0)
|
|
69
70
|
Requires-Dist: mattermostwrapper (>=2.2,<2.3)
|
|
71
|
+
Requires-Dist: mcp (>=1.12.0,<1.13.0)
|
|
70
72
|
Requires-Dist: networkx (>=3.1,<3.2)
|
|
71
73
|
Requires-Dist: numpy (>=1.26.4,<1.27.0)
|
|
72
74
|
Requires-Dist: onnxruntime (==1.19.2) ; extra == "pii"
|
|
73
75
|
Requires-Dist: openai (>=1.68.2,<1.69.0)
|
|
74
76
|
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
|
|
75
|
-
Requires-Dist: opentelemetry-api (>=1.
|
|
76
|
-
Requires-Dist: opentelemetry-exporter-jaeger (>=1.
|
|
77
|
-
Requires-Dist: opentelemetry-exporter-otlp (>=1.
|
|
78
|
-
Requires-Dist: opentelemetry-sdk (>=1.
|
|
77
|
+
Requires-Dist: opentelemetry-api (>=1.33.0,<1.34.0)
|
|
78
|
+
Requires-Dist: opentelemetry-exporter-jaeger (>=1.21.0,<1.22.0)
|
|
79
|
+
Requires-Dist: opentelemetry-exporter-otlp (>=1.33.0,<1.34.0)
|
|
80
|
+
Requires-Dist: opentelemetry-sdk (>=1.33.0,<1.34.0)
|
|
79
81
|
Requires-Dist: packaging (>=23.2,<23.3)
|
|
80
82
|
Requires-Dist: pep440-version-utils (>=1.1.0,<1.2.0)
|
|
81
83
|
Requires-Dist: pluggy (>=1.2.0,<2.0.0)
|
|
82
84
|
Requires-Dist: portalocker (>=2.7.0,<3.0.0)
|
|
83
85
|
Requires-Dist: prompt-toolkit (>=3.0.28,<3.0.29)
|
|
84
|
-
Requires-Dist: protobuf (>=
|
|
86
|
+
Requires-Dist: protobuf (>=5.29.5,<5.30.0)
|
|
85
87
|
Requires-Dist: psutil (>=5.9.5,<6.0.0)
|
|
86
88
|
Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0)
|
|
87
89
|
Requires-Dist: pydot (>=1.4,<1.5)
|
|
88
90
|
Requires-Dist: pykwalify (>=1.8,<1.9)
|
|
89
|
-
Requires-Dist: pymilvus (>=2.
|
|
91
|
+
Requires-Dist: pymilvus (>=2.5.0,<2.6.0)
|
|
90
92
|
Requires-Dist: pymongo (>=4.10.1,<4.11.0)
|
|
91
93
|
Requires-Dist: pypred (>=0.4.0,<0.5.0)
|
|
92
94
|
Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
|
|
@@ -99,7 +101,7 @@ Requires-Dist: pyyaml (>=6.0.2,<6.1.0)
|
|
|
99
101
|
Requires-Dist: qdrant-client (>=1.9.1,<1.10.0)
|
|
100
102
|
Requires-Dist: questionary (>=1.10.0,<2.1.0)
|
|
101
103
|
Requires-Dist: randomname (>=0.2.1,<0.3.0)
|
|
102
|
-
Requires-Dist: rasa-sdk (==3.14.0.
|
|
104
|
+
Requires-Dist: rasa-sdk (==3.14.0.dev3)
|
|
103
105
|
Requires-Dist: redis (>=4.6.0,<6.0)
|
|
104
106
|
Requires-Dist: regex (>=2024.7.24,<2024.8.0)
|
|
105
107
|
Requires-Dist: requests (>=2.32.3,<2.33.0)
|
|
@@ -110,7 +112,6 @@ Requires-Dist: safetensors (>=0.4.5,<0.5.0)
|
|
|
110
112
|
Requires-Dist: sanic (>=22.12,<22.13)
|
|
111
113
|
Requires-Dist: sanic-cors (>=2.2.0,<2.3.0)
|
|
112
114
|
Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
|
|
113
|
-
Requires-Dist: sanic-openapi (>=21.12.0,<22.0.0)
|
|
114
115
|
Requires-Dist: sanic-routing (>=22.8.0,<23.0.0)
|
|
115
116
|
Requires-Dist: scikit-learn (>=1.6.1,<1.7.0)
|
|
116
117
|
Requires-Dist: scipy (>=1.13.1,<1.14.0)
|
|
@@ -125,15 +126,10 @@ Requires-Dist: structlog (>=25.4.0,<25.5.0)
|
|
|
125
126
|
Requires-Dist: structlog-sentry (>=2.0.3,<2.1.0)
|
|
126
127
|
Requires-Dist: tarsafe (>=0.0.5,<0.0.6)
|
|
127
128
|
Requires-Dist: tenacity (>=8.4.1,<8.5.0)
|
|
128
|
-
Requires-Dist: tensorflow (==2.14.1) ; sys_platform != "darwin" or platform_machine != "arm64"
|
|
129
|
-
Requires-Dist: tensorflow-cpu-aws (==2.14.1) ; sys_platform == "linux" and (platform_machine == "arm64" or platform_machine == "aarch64")
|
|
130
|
-
Requires-Dist: tensorflow-intel (==2.14.1) ; sys_platform == "win32"
|
|
131
129
|
Requires-Dist: tensorflow-io-gcs-filesystem (==0.31) ; sys_platform == "win32"
|
|
132
130
|
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; sys_platform == "darwin" and platform_machine != "arm64"
|
|
133
131
|
Requires-Dist: tensorflow-io-gcs-filesystem (==0.34) ; sys_platform == "linux"
|
|
134
|
-
Requires-Dist: tensorflow-macos (==2.14.1) ; sys_platform == "darwin" and platform_machine == "arm64"
|
|
135
132
|
Requires-Dist: tensorflow-metal (==1.1.0) ; (sys_platform == "darwin" and platform_machine == "arm64") and (extra == "metal")
|
|
136
|
-
Requires-Dist: tensorflow-text (==2.14.0) ; sys_platform != "win32" and platform_machine != "arm64" and platform_machine != "aarch64"
|
|
137
133
|
Requires-Dist: tensorflow_hub (>=0.13.0,<0.14.0)
|
|
138
134
|
Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
|
|
139
135
|
Requires-Dist: tiktoken (>=0.9.0,<0.10.0)
|
|
@@ -146,6 +142,7 @@ Requires-Dist: typing-utils (>=0.1.0,<0.2.0)
|
|
|
146
142
|
Requires-Dist: ujson (>=5.8,<6.0)
|
|
147
143
|
Requires-Dist: webexteamssdk (>=1.6.1,<1.7.0)
|
|
148
144
|
Requires-Dist: websockets (>=10.4,<11.0)
|
|
145
|
+
Requires-Dist: werkzeug (>=1.0.1)
|
|
149
146
|
Requires-Dist: wheel (>=0.40.0)
|
|
150
147
|
Project-URL: Documentation, https://rasa.com/docs
|
|
151
148
|
Project-URL: Homepage, https://rasa.com
|