rasa-pro 3.12.22__py3-none-any.whl → 3.13.0__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/__main__.py +3 -4
- rasa/api.py +1 -1
- rasa/cli/dialogue_understanding_test.py +1 -1
- rasa/cli/e2e_test.py +1 -8
- rasa/cli/evaluate.py +2 -2
- rasa/cli/export.py +5 -3
- rasa/cli/inspect.py +7 -0
- rasa/cli/llm_fine_tuning.py +1 -1
- rasa/cli/project_templates/default/config.yml +5 -32
- rasa/cli/project_templates/{calm → default}/e2e_tests/cancelations/user_cancels_during_a_correction.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/cancelations/user_changes_mind_on_a_whim.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/corrections/user_corrects_contact_handle.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/corrections/user_corrects_contact_name.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_adds_contact_to_their_list.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_lists_contacts.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_removes_contact.yml +1 -1
- rasa/cli/project_templates/{calm → default}/e2e_tests/happy_paths/user_removes_contact_from_list.yml +1 -1
- rasa/cli/project_templates/default/endpoints.yml +18 -2
- rasa/cli/project_templates/defaults.py +133 -0
- rasa/cli/project_templates/tutorial/config.yml +1 -1
- rasa/cli/project_templates/tutorial/endpoints.yml +1 -1
- rasa/cli/run.py +1 -1
- rasa/cli/scaffold.py +2 -3
- rasa/cli/shell.py +6 -1
- rasa/cli/studio/download.py +0 -22
- rasa/cli/studio/link.py +36 -0
- rasa/cli/studio/pull.py +79 -0
- rasa/cli/studio/push.py +78 -0
- rasa/cli/studio/studio.py +12 -0
- rasa/cli/studio/train.py +1 -5
- rasa/cli/studio/upload.py +6 -4
- rasa/cli/train.py +5 -1
- rasa/cli/utils.py +1 -1
- rasa/cli/x.py +1 -1
- rasa/constants.py +2 -0
- rasa/core/__init__.py +0 -16
- rasa/core/actions/action.py +43 -29
- rasa/core/actions/action_repeat_bot_messages.py +18 -22
- rasa/core/actions/action_run_slot_rejections.py +1 -2
- rasa/core/agent.py +24 -3
- rasa/core/available_endpoints.py +146 -0
- rasa/core/brokers/kafka.py +4 -0
- rasa/core/brokers/pika.py +5 -2
- rasa/core/brokers/sql.py +1 -1
- rasa/core/channels/__init__.py +3 -0
- rasa/core/channels/botframework.py +2 -2
- rasa/core/channels/channel.py +2 -2
- rasa/core/channels/development_inspector.py +1 -1
- rasa/core/channels/facebook.py +1 -4
- rasa/core/channels/hangouts.py +8 -5
- rasa/core/channels/inspector/.eslintrc.cjs +12 -6
- rasa/core/channels/inspector/.prettierrc +5 -0
- rasa/core/channels/inspector/README.md +11 -5
- rasa/core/channels/inspector/dist/assets/{arc-9f75cc3b.js → arc-371401b1.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-7f34db23.js → blockDiagram-38ab4fdb-3f126156.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-948bab2c.js → c4Diagram-3d4e48cf-12f22eb7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-f1efda17.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-53b0dd0e.js → classDiagram-70f12bd4-03b1d386.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-fdf789e7.js → classDiagram-v2-f2320105-84f69d63.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-fdf164e2.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-87c4ece5.js → createText-2e5e7dd3-ca47fd38.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-5a8b0749.js → edges-e0da2a9e-f837ca8a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-66da90e2.js → erDiagram-9861fffd-8717ac54.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-10044f05.js → flowDb-956e92f1-94f38b83.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-f338f66a.js → flowDiagram-66a62f08-b616f9fb.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-7d7a1629.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-b13140aa.js → flowchart-elk-definition-4a651766-f5d24bb8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-f2b4a55a.js → ganttDiagram-c361ad54-b43ba8d9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-dedc298d.js → gitGraphDiagram-72cf32ee-c3aafaa5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-4ede11ff.js → graph-0d0a2c10.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-65549d37.js → index-3862675e-58ea0305.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3a23e736.js → index-cce6f8a1.js} +123 -123
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-65439671.js → infoDiagram-f8f76790-b8f60461.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-56d03d98.js → journeyDiagram-49397b02-95be5545.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-dd48f7f4.js → layout-da885b9b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-1569ad2c.js → line-f1c817d3.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-48bf4935.js → linear-d42801e6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-688504c1.js → mindmap-definition-fc14e90a-a38923a6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-78b6d7e6.js → pieDiagram-8a3498a8-ca6e71e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-048b84b3.js → quadrantDiagram-120e2f19-b290dae9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-dd67f107.js → requirementDiagram-deff3bca-03f02ceb.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-8128436e.js → sankeyDiagram-04a897e0-c49eee40.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-1a0d1461.js → sequenceDiagram-704730f1-b2cd6a3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-46d388ed.js → stateDiagram-587899a1-e53a2028.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-ea42951a.js → stateDiagram-v2-d93cdb3a-e1982a03.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-7427ed0c.js → styles-6aaf32cf-d0226ca5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-ff5e5a16.js → styles-9a916d00-0e21dc00.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-7b3680cf.js → styles-c10674c1-9588494e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-f860f2ad.js → svgDrawCommon-08f97a94-be478d4f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-2eebf0c8.js → timeline-definition-85554ec2-74631749.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-5d7f4e96.js → xychartDiagram-e933f94c-a043552f.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +3 -1
- rasa/core/channels/inspector/src/App.tsx +91 -90
- rasa/core/channels/inspector/src/components/Chat.tsx +45 -41
- rasa/core/channels/inspector/src/components/DiagramFlow.tsx +40 -40
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +57 -57
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +36 -27
- rasa/core/channels/inspector/src/components/ExpandIcon.tsx +4 -4
- rasa/core/channels/inspector/src/components/FullscreenButton.tsx +7 -7
- rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +28 -12
- rasa/core/channels/inspector/src/components/NoActiveFlow.tsx +9 -9
- rasa/core/channels/inspector/src/components/RasaLogo.tsx +5 -5
- rasa/core/channels/inspector/src/components/RecruitmentPanel.tsx +55 -60
- rasa/core/channels/inspector/src/components/SaraDiagrams.tsx +5 -5
- rasa/core/channels/inspector/src/components/Slots.tsx +22 -22
- rasa/core/channels/inspector/src/components/Welcome.tsx +28 -31
- rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +245 -0
- rasa/core/channels/inspector/src/helpers/audio/microphone-processor.js +12 -0
- rasa/core/channels/inspector/src/helpers/audio/playback-processor.js +36 -0
- rasa/core/channels/inspector/src/helpers/conversation.ts +7 -7
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +181 -181
- rasa/core/channels/inspector/src/helpers/formatters.ts +111 -111
- rasa/core/channels/inspector/src/helpers/utils.ts +78 -61
- rasa/core/channels/inspector/src/main.tsx +8 -8
- rasa/core/channels/inspector/src/theme/Button/Button.ts +8 -8
- rasa/core/channels/inspector/src/theme/Heading/Heading.ts +7 -7
- rasa/core/channels/inspector/src/theme/Input/Input.ts +9 -9
- rasa/core/channels/inspector/src/theme/Link/Link.ts +6 -6
- rasa/core/channels/inspector/src/theme/Modal/Modal.ts +13 -13
- rasa/core/channels/inspector/src/theme/Table/Table.tsx +10 -10
- rasa/core/channels/inspector/src/theme/Tooltip/Tooltip.ts +5 -5
- rasa/core/channels/inspector/src/theme/base/breakpoints.ts +7 -7
- rasa/core/channels/inspector/src/theme/base/colors.ts +64 -64
- rasa/core/channels/inspector/src/theme/base/fonts/fontFaces.css +21 -18
- rasa/core/channels/inspector/src/theme/base/radii.ts +8 -8
- rasa/core/channels/inspector/src/theme/base/shadows.ts +5 -5
- rasa/core/channels/inspector/src/theme/base/sizes.ts +5 -5
- rasa/core/channels/inspector/src/theme/base/space.ts +12 -12
- rasa/core/channels/inspector/src/theme/base/styles.ts +5 -5
- rasa/core/channels/inspector/src/theme/base/typography.ts +12 -12
- rasa/core/channels/inspector/src/theme/base/zIndices.ts +3 -3
- rasa/core/channels/inspector/src/theme/index.ts +38 -38
- rasa/core/channels/inspector/src/types.ts +56 -50
- rasa/core/channels/inspector/yarn.lock +5 -0
- rasa/core/channels/mattermost.py +1 -1
- rasa/core/channels/rasa_chat.py +2 -4
- rasa/core/channels/rest.py +5 -4
- rasa/core/channels/socketio.py +56 -41
- rasa/core/channels/studio_chat.py +329 -68
- rasa/core/channels/vier_cvg.py +1 -2
- rasa/core/channels/voice_ready/audiocodes.py +4 -11
- rasa/core/channels/voice_ready/jambonz.py +5 -6
- rasa/core/channels/voice_ready/twilio_voice.py +13 -12
- rasa/core/channels/voice_ready/utils.py +22 -0
- rasa/core/channels/voice_stream/audiocodes.py +13 -16
- rasa/core/channels/voice_stream/browser_audio.py +1 -1
- rasa/core/channels/voice_stream/genesys.py +37 -18
- rasa/core/channels/voice_stream/jambonz.py +232 -0
- rasa/core/channels/voice_stream/tts/__init__.py +8 -0
- rasa/core/channels/voice_stream/twilio_media_streams.py +15 -12
- rasa/core/channels/voice_stream/voice_channel.py +71 -27
- rasa/core/concurrent_lock_store.py +24 -10
- rasa/core/evaluation/marker_tracker_loader.py +1 -1
- rasa/core/exporter.py +37 -1
- rasa/core/http_interpreter.py +3 -7
- rasa/core/information_retrieval/faiss.py +18 -11
- rasa/core/information_retrieval/ingestion/faq_parser.py +158 -0
- rasa/core/jobs.py +2 -1
- rasa/core/lock_store.py +151 -60
- rasa/core/nlg/contextual_response_rephraser.py +17 -7
- rasa/core/nlg/generator.py +5 -22
- rasa/core/nlg/interpolator.py +2 -3
- rasa/core/nlg/response.py +6 -43
- rasa/core/nlg/summarize.py +1 -1
- rasa/core/nlg/translate.py +0 -8
- rasa/core/policies/enterprise_search_policy.py +305 -189
- rasa/core/policies/enterprise_search_policy_config.py +241 -0
- rasa/core/policies/enterprise_search_prompt_with_relevancy_check_and_citation_template.jinja2 +67 -0
- rasa/core/policies/flow_policy.py +1 -1
- rasa/core/policies/flows/flow_executor.py +102 -17
- rasa/core/policies/intentless_policy.py +56 -17
- rasa/core/processor.py +70 -49
- rasa/core/run.py +33 -11
- rasa/core/tracker_stores/__init__.py +0 -0
- rasa/core/{auth_retry_tracker_store.py → tracker_stores/auth_retry_tracker_store.py} +66 -1
- rasa/core/tracker_stores/dynamo_tracker_store.py +256 -0
- rasa/core/tracker_stores/mongo_tracker_store.py +223 -0
- rasa/core/tracker_stores/redis_tracker_store.py +252 -0
- rasa/core/tracker_stores/sql_tracker_store.py +582 -0
- rasa/core/tracker_stores/tracker_store.py +839 -0
- rasa/core/training/interactive.py +1 -1
- rasa/core/utils.py +24 -95
- rasa/dialogue_understanding/coexistence/intent_based_router.py +2 -1
- rasa/dialogue_understanding/coexistence/llm_based_router.py +13 -11
- rasa/dialogue_understanding/commands/can_not_handle_command.py +2 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +3 -1
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +2 -0
- rasa/dialogue_understanding/commands/clarify_command.py +6 -2
- rasa/dialogue_understanding/commands/command_syntax_manager.py +1 -0
- rasa/dialogue_understanding/commands/correct_slots_command.py +5 -6
- rasa/dialogue_understanding/commands/error_command.py +1 -1
- rasa/dialogue_understanding/commands/human_handoff_command.py +3 -3
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +2 -0
- rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +2 -0
- rasa/dialogue_understanding/commands/set_slot_command.py +8 -4
- rasa/dialogue_understanding/commands/skip_question_command.py +3 -3
- rasa/dialogue_understanding/commands/start_flow_command.py +7 -3
- rasa/dialogue_understanding/generator/__init__.py +7 -1
- rasa/dialogue_understanding/generator/command_generator.py +4 -2
- rasa/dialogue_understanding/generator/command_parser.py +2 -2
- rasa/dialogue_understanding/generator/command_parser_validator.py +63 -0
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +1 -2
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +3 -2
- rasa/dialogue_understanding/generator/nlu_command_adapter.py +2 -2
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_template.jinja2 +0 -2
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +1 -0
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +1 -0
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +79 -0
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +79 -0
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +26 -461
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +147 -0
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +461 -0
- rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +20 -64
- rasa/dialogue_understanding/patterns/cancel.py +1 -2
- rasa/dialogue_understanding/patterns/clarify.py +1 -1
- rasa/dialogue_understanding/patterns/correction.py +2 -2
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +42 -27
- rasa/dialogue_understanding/patterns/domain_for_patterns.py +190 -0
- rasa/dialogue_understanding/processor/command_processor.py +6 -7
- rasa/dialogue_understanding_test/command_metric_calculation.py +7 -40
- rasa/dialogue_understanding_test/command_metrics.py +38 -0
- rasa/dialogue_understanding_test/du_test_case.py +58 -25
- rasa/dialogue_understanding_test/du_test_result.py +228 -132
- rasa/dialogue_understanding_test/du_test_runner.py +11 -2
- rasa/dialogue_understanding_test/du_test_schema.yml +3 -3
- rasa/dialogue_understanding_test/io.py +35 -8
- rasa/e2e_test/constants.py +1 -1
- rasa/e2e_test/e2e_test_runner.py +1 -1
- rasa/e2e_test/e2e_test_schema.yml +3 -3
- rasa/engine/constants.py +1 -1
- rasa/engine/graph.py +2 -2
- rasa/engine/recipes/default_recipe.py +1 -1
- rasa/engine/validation.py +3 -2
- rasa/hooks.py +2 -30
- rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +2 -6
- rasa/model_manager/model_api.py +89 -1
- rasa/model_manager/runner_service.py +20 -4
- rasa/model_manager/socket_bridge.py +0 -7
- rasa/model_manager/trainer_service.py +10 -4
- rasa/plugin.py +2 -15
- rasa/privacy/__init__.py +0 -0
- rasa/privacy/constants.py +83 -0
- rasa/privacy/event_broker_utils.py +77 -0
- rasa/privacy/privacy_config.py +281 -0
- rasa/privacy/privacy_config_schema.json +86 -0
- rasa/privacy/privacy_filter.py +393 -0
- rasa/privacy/privacy_manager.py +594 -0
- rasa/server.py +23 -2
- rasa/shared/constants.py +17 -0
- rasa/shared/core/command_payload_reader.py +1 -5
- rasa/shared/core/constants.py +4 -3
- rasa/shared/core/domain.py +172 -11
- rasa/shared/core/events.py +100 -6
- rasa/shared/core/flows/flow.py +30 -5
- rasa/shared/core/flows/flow_step.py +19 -3
- rasa/shared/core/flows/flow_step_links.py +15 -0
- rasa/shared/core/flows/flow_step_sequence.py +6 -0
- rasa/shared/core/flows/flows_yaml_schema.json +3 -0
- rasa/shared/core/flows/nlu_trigger.py +13 -0
- rasa/shared/core/flows/steps/action.py +7 -4
- rasa/shared/core/flows/steps/call.py +11 -4
- rasa/shared/core/flows/steps/collect.py +71 -6
- rasa/shared/core/flows/steps/internal.py +6 -1
- rasa/shared/core/flows/steps/link.py +7 -4
- rasa/shared/core/flows/steps/no_operation.py +7 -4
- rasa/shared/core/flows/steps/set_slots.py +8 -4
- rasa/shared/core/flows/validation.py +25 -5
- rasa/shared/core/flows/yaml_flows_io.py +106 -5
- rasa/shared/core/slots.py +29 -1
- rasa/shared/core/trackers.py +21 -10
- rasa/shared/core/training_data/story_reader/yaml_story_reader.py +1 -4
- rasa/shared/importers/importer.py +8 -0
- rasa/shared/providers/_configs/azure_openai_client_config.py +2 -2
- rasa/shared/providers/_configs/default_litellm_client_config.py +1 -1
- rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +1 -1
- rasa/shared/providers/_configs/openai_client_config.py +1 -1
- rasa/shared/providers/_configs/rasa_llm_client_config.py +1 -1
- rasa/shared/providers/_configs/self_hosted_llm_client_config.py +1 -1
- rasa/shared/providers/_configs/utils.py +0 -99
- rasa/shared/providers/llm/default_litellm_llm_client.py +2 -2
- rasa/shared/utils/common.py +43 -1
- rasa/shared/utils/configs.py +110 -0
- rasa/shared/utils/constants.py +0 -3
- rasa/shared/utils/llm.py +245 -8
- rasa/shared/utils/pykwalify_extensions.py +0 -9
- rasa/shared/utils/yaml.py +32 -0
- rasa/studio/constants.py +1 -0
- rasa/studio/data_handler.py +33 -12
- rasa/studio/download.py +117 -435
- rasa/studio/link.py +211 -0
- rasa/studio/prompts.py +221 -0
- rasa/studio/pull/__init__.py +0 -0
- rasa/studio/pull/data.py +222 -0
- rasa/studio/pull/domains.py +60 -0
- rasa/studio/pull/pull.py +239 -0
- rasa/studio/push.py +138 -0
- rasa/studio/results_logger.py +6 -1
- rasa/studio/train.py +1 -1
- rasa/studio/upload.py +243 -72
- rasa/studio/utils.py +33 -0
- rasa/telemetry.py +83 -26
- rasa/tracing/config.py +4 -5
- rasa/tracing/constants.py +19 -1
- rasa/tracing/instrumentation/attribute_extractors.py +68 -16
- rasa/tracing/instrumentation/instrumentation.py +54 -3
- rasa/tracing/instrumentation/metrics.py +98 -15
- rasa/tracing/metric_instrument_provider.py +75 -3
- rasa/utils/common.py +43 -22
- rasa/utils/endpoints.py +22 -1
- rasa/utils/licensing.py +2 -3
- rasa/utils/log_utils.py +1 -45
- rasa/validator.py +2 -8
- rasa/version.py +1 -1
- {rasa_pro-3.12.22.dist-info → rasa_pro-3.13.0.dist-info}/METADATA +11 -12
- {rasa_pro-3.12.22.dist-info → rasa_pro-3.13.0.dist-info}/RECORD +333 -309
- rasa/anonymization/__init__.py +0 -2
- rasa/anonymization/anonymisation_rule_yaml_reader.py +0 -91
- rasa/anonymization/anonymization_pipeline.py +0 -286
- rasa/anonymization/anonymization_rule_executor.py +0 -266
- rasa/anonymization/anonymization_rule_orchestrator.py +0 -119
- rasa/anonymization/schemas/config.yml +0 -47
- rasa/anonymization/utils.py +0 -118
- rasa/cli/project_templates/calm/config.yml +0 -10
- rasa/cli/project_templates/calm/credentials.yml +0 -33
- rasa/cli/project_templates/calm/endpoints.yml +0 -58
- rasa/cli/project_templates/default/actions/actions.py +0 -27
- rasa/cli/project_templates/default/data/nlu.yml +0 -91
- rasa/cli/project_templates/default/data/rules.yml +0 -13
- rasa/cli/project_templates/default/data/stories.yml +0 -30
- rasa/cli/project_templates/default/domain.yml +0 -34
- rasa/cli/project_templates/default/tests/test_stories.yml +0 -91
- rasa/core/channels/inspector/dist/assets/channel-dfa68278.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-edb7f119.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-65e7c670.js +0 -1
- rasa/core/channels/inspector/src/helpers/audiostream.ts +0 -191
- rasa/core/tracker_store.py +0 -1792
- /rasa/cli/project_templates/{calm → default}/actions/action_template.py +0 -0
- /rasa/cli/project_templates/{calm → default}/actions/add_contact.py +0 -0
- /rasa/cli/project_templates/{calm → default}/actions/db.py +0 -0
- /rasa/cli/project_templates/{calm → default}/actions/list_contacts.py +0 -0
- /rasa/cli/project_templates/{calm → default}/actions/remove_contact.py +0 -0
- /rasa/cli/project_templates/{calm → default}/data/flows/add_contact.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/data/flows/list_contacts.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/data/flows/remove_contact.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/db/contacts.json +0 -0
- /rasa/cli/project_templates/{calm → default}/domain/add_contact.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/domain/list_contacts.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/domain/remove_contact.yml +0 -0
- /rasa/cli/project_templates/{calm → default}/domain/shared.yml +0 -0
- /rasa/{cli/project_templates/calm/actions → core/information_retrieval/ingestion}/__init__.py +0 -0
- {rasa_pro-3.12.22.dist-info → rasa_pro-3.13.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.12.22.dist-info → rasa_pro-3.13.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.12.22.dist-info → rasa_pro-3.13.0.dist-info}/entry_points.txt +0 -0
rasa/__main__.py
CHANGED
|
@@ -9,6 +9,7 @@ from rasa_sdk import __version__ as rasa_sdk_version
|
|
|
9
9
|
|
|
10
10
|
import rasa.telemetry
|
|
11
11
|
import rasa.utils.io
|
|
12
|
+
import rasa.utils.licensing
|
|
12
13
|
import rasa.utils.tensorflow.environment as tf_env
|
|
13
14
|
from rasa import version
|
|
14
15
|
from rasa.cli import (
|
|
@@ -105,11 +106,12 @@ def main(raw_arguments: Optional[List[str]] = None) -> None:
|
|
|
105
106
|
raw_arguments: Arguments to parse. If not provided,
|
|
106
107
|
arguments will be taken from the command line.
|
|
107
108
|
"""
|
|
109
|
+
rasa.utils.licensing.validate_license_from_env()
|
|
110
|
+
|
|
108
111
|
warn_if_rasa_plus_package_installed()
|
|
109
112
|
parse_last_positional_argument_as_model_path()
|
|
110
113
|
arg_parser = create_argument_parser()
|
|
111
114
|
cmdline_arguments = arg_parser.parse_args(raw_arguments)
|
|
112
|
-
|
|
113
115
|
log_level = getattr(cmdline_arguments, "loglevel", None)
|
|
114
116
|
logging_config_file = getattr(cmdline_arguments, "logging_config_file", None)
|
|
115
117
|
configure_logging_and_warnings(
|
|
@@ -141,9 +143,6 @@ def main(raw_arguments: Optional[List[str]] = None) -> None:
|
|
|
141
143
|
if not is_studio_command:
|
|
142
144
|
plugin_manager().hook.init_telemetry(endpoints_file=endpoints_file)
|
|
143
145
|
plugin_manager().hook.init_managers(endpoints_file=endpoints_file)
|
|
144
|
-
plugin_manager().hook.init_anonymization_pipeline(
|
|
145
|
-
endpoints_file=endpoints_file
|
|
146
|
-
)
|
|
147
146
|
|
|
148
147
|
cmdline_arguments.func(cmdline_arguments)
|
|
149
148
|
elif hasattr(cmdline_arguments, "version"):
|
rasa/api.py
CHANGED
|
@@ -38,7 +38,7 @@ def run(
|
|
|
38
38
|
"""
|
|
39
39
|
import rasa.core.run
|
|
40
40
|
import rasa.shared.utils.common
|
|
41
|
-
from rasa.core.
|
|
41
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
42
42
|
from rasa.shared.constants import DOCS_BASE_URL
|
|
43
43
|
from rasa.shared.utils.cli import print_warning
|
|
44
44
|
|
|
@@ -16,9 +16,9 @@ from rasa.cli.arguments.default_arguments import (
|
|
|
16
16
|
add_remote_storage_param,
|
|
17
17
|
)
|
|
18
18
|
from rasa.core.agent import Agent
|
|
19
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
19
20
|
from rasa.core.exceptions import AgentNotReady
|
|
20
21
|
from rasa.core.processor import MessageProcessor
|
|
21
|
-
from rasa.core.utils import AvailableEndpoints
|
|
22
22
|
from rasa.dialogue_understanding.commands import Command
|
|
23
23
|
from rasa.dialogue_understanding.generator import LLMBasedCommandGenerator
|
|
24
24
|
from rasa.dialogue_understanding.generator.command_parser import DEFAULT_COMMANDS
|
rasa/cli/e2e_test.py
CHANGED
|
@@ -18,8 +18,8 @@ from rasa.cli.arguments.default_arguments import (
|
|
|
18
18
|
add_model_param,
|
|
19
19
|
add_remote_storage_param,
|
|
20
20
|
)
|
|
21
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
21
22
|
from rasa.core.exceptions import AgentNotReady
|
|
22
|
-
from rasa.core.utils import AvailableEndpoints
|
|
23
23
|
from rasa.e2e_test.aggregate_test_stats_calculator import (
|
|
24
24
|
AggregateTestStatsCalculator,
|
|
25
25
|
)
|
|
@@ -51,7 +51,6 @@ from rasa.e2e_test.utils.io import (
|
|
|
51
51
|
from rasa.e2e_test.utils.validation import validate_model_path
|
|
52
52
|
from rasa.exceptions import RasaException
|
|
53
53
|
from rasa.shared.constants import DEFAULT_ENDPOINTS_PATH, DEFAULT_MODELS_PATH
|
|
54
|
-
from rasa.utils.beta import ensure_beta_feature_is_enabled
|
|
55
54
|
from rasa.utils.endpoints import EndpointConfig
|
|
56
55
|
|
|
57
56
|
RASA_PRO_BETA_FINE_TUNING_RECIPE_ENV_VAR_NAME = "RASA_PRO_BETA_FINE_TUNING_RECIPE"
|
|
@@ -155,12 +154,6 @@ def execute_e2e_tests(args: argparse.Namespace) -> None:
|
|
|
155
154
|
Args:
|
|
156
155
|
args: Commandline arguments.
|
|
157
156
|
"""
|
|
158
|
-
if args.coverage_report:
|
|
159
|
-
ensure_beta_feature_is_enabled(
|
|
160
|
-
"LLM fine-tuning recipe",
|
|
161
|
-
env_flag=RASA_PRO_BETA_FINE_TUNING_RECIPE_ENV_VAR_NAME,
|
|
162
|
-
)
|
|
163
|
-
|
|
164
157
|
args.endpoints = rasa.cli.utils.get_validated_path(
|
|
165
158
|
args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
|
|
166
159
|
)
|
rasa/cli/evaluate.py
CHANGED
|
@@ -6,10 +6,10 @@ import rasa.cli.arguments.evaluate as arguments
|
|
|
6
6
|
import rasa.shared.utils.cli
|
|
7
7
|
from rasa import telemetry
|
|
8
8
|
from rasa.cli import SubParsersAction
|
|
9
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
9
10
|
from rasa.core.evaluation.marker_base import Marker, OperatorMarker
|
|
10
11
|
from rasa.core.evaluation.marker_tracker_loader import MarkerTrackerLoader
|
|
11
|
-
from rasa.core.tracker_store import TrackerStore
|
|
12
|
-
from rasa.core.utils import AvailableEndpoints
|
|
12
|
+
from rasa.core.tracker_stores.tracker_store import TrackerStore
|
|
13
13
|
from rasa.shared.core.domain import Domain
|
|
14
14
|
|
|
15
15
|
STATS_OVERALL_SUFFIX = "-overall.csv"
|
rasa/cli/export.py
CHANGED
|
@@ -16,10 +16,10 @@ from rasa.shared.constants import DOCS_URL_EVENT_BROKERS, DOCS_URL_TRACKER_STORE
|
|
|
16
16
|
from rasa.shared.exceptions import RasaException
|
|
17
17
|
|
|
18
18
|
if typing.TYPE_CHECKING:
|
|
19
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
19
20
|
from rasa.core.brokers.broker import EventBroker
|
|
20
21
|
from rasa.core.exporter import Exporter
|
|
21
|
-
from rasa.core.tracker_store import TrackerStore
|
|
22
|
-
from rasa.core.utils import AvailableEndpoints
|
|
22
|
+
from rasa.core.tracker_stores.tracker_store import TrackerStore
|
|
23
23
|
|
|
24
24
|
logger = logging.getLogger(__name__)
|
|
25
25
|
|
|
@@ -67,7 +67,7 @@ def _get_tracker_store(endpoints: "AvailableEndpoints") -> "TrackerStore":
|
|
|
67
67
|
f"Exiting. "
|
|
68
68
|
)
|
|
69
69
|
|
|
70
|
-
from rasa.core.tracker_store import TrackerStore
|
|
70
|
+
from rasa.core.tracker_stores.tracker_store import TrackerStore
|
|
71
71
|
|
|
72
72
|
return TrackerStore.create(endpoints.tracker_store)
|
|
73
73
|
|
|
@@ -184,6 +184,7 @@ async def _export_trackers(args: argparse.Namespace) -> None:
|
|
|
184
184
|
event_broker = await _get_event_broker(endpoints)
|
|
185
185
|
_prepare_event_broker(event_broker)
|
|
186
186
|
requested_conversation_ids = _get_requested_conversation_ids(args.conversation_ids)
|
|
187
|
+
is_pii_enabled = True if endpoints.privacy else False
|
|
187
188
|
|
|
188
189
|
from rasa.core.exporter import Exporter
|
|
189
190
|
|
|
@@ -191,6 +192,7 @@ async def _export_trackers(args: argparse.Namespace) -> None:
|
|
|
191
192
|
tracker_store,
|
|
192
193
|
event_broker,
|
|
193
194
|
args.endpoints,
|
|
195
|
+
is_pii_enabled,
|
|
194
196
|
requested_conversation_ids,
|
|
195
197
|
args.minimum_timestamp,
|
|
196
198
|
args.maximum_timestamp,
|
rasa/cli/inspect.py
CHANGED
|
@@ -9,6 +9,7 @@ from rasa import telemetry
|
|
|
9
9
|
from rasa.cli import SubParsersAction
|
|
10
10
|
from rasa.cli.arguments import shell as arguments
|
|
11
11
|
from rasa.core import constants
|
|
12
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
12
13
|
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
13
14
|
from rasa.exceptions import ModelNotFound
|
|
14
15
|
from rasa.model import get_local_model
|
|
@@ -83,6 +84,12 @@ def inspect(args: argparse.Namespace) -> None:
|
|
|
83
84
|
|
|
84
85
|
model = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)
|
|
85
86
|
|
|
87
|
+
# Load endpoints with proper endpoint file location
|
|
88
|
+
# This will initialise the endpoints singleton properly so that
|
|
89
|
+
# it can be used safely throughout the codebase with
|
|
90
|
+
# `AvailableEndpoints.get_instance()`
|
|
91
|
+
AvailableEndpoints.get_instance(args.endpoints)
|
|
92
|
+
|
|
86
93
|
try:
|
|
87
94
|
model = get_local_model(model)
|
|
88
95
|
except ModelNotFound:
|
rasa/cli/llm_fine_tuning.py
CHANGED
|
@@ -20,8 +20,8 @@ from rasa.cli.e2e_test import (
|
|
|
20
20
|
read_test_cases,
|
|
21
21
|
validate_model_path,
|
|
22
22
|
)
|
|
23
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
23
24
|
from rasa.core.exceptions import AgentNotReady
|
|
24
|
-
from rasa.core.utils import AvailableEndpoints
|
|
25
25
|
from rasa.dialogue_understanding.generator.llm_based_command_generator import (
|
|
26
26
|
LLMBasedCommandGenerator,
|
|
27
27
|
)
|
|
@@ -1,44 +1,17 @@
|
|
|
1
1
|
# The config recipe.
|
|
2
|
-
# https://rasa.com/docs/rasa-pro/nlu-based-assistants/model-configuration/
|
|
3
2
|
recipe: default.v1
|
|
4
3
|
|
|
5
4
|
# The assistant project unique identifier
|
|
6
5
|
# This default value must be replaced with a unique assistant name within your deployment
|
|
7
6
|
assistant_id: placeholder_default
|
|
8
7
|
|
|
9
|
-
# Configuration for Rasa NLU.
|
|
10
|
-
# https://rasa.com/docs/rasa-pro/nlu-based-assistants/components/
|
|
11
8
|
language: en
|
|
12
|
-
|
|
13
9
|
pipeline:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# - name: WhitespaceTokenizer
|
|
18
|
-
# - name: RegexFeaturizer
|
|
19
|
-
# - name: LexicalSyntacticFeaturizer
|
|
20
|
-
# - name: CountVectorsFeaturizer
|
|
21
|
-
# - name: CountVectorsFeaturizer
|
|
22
|
-
# analyzer: char_wb
|
|
23
|
-
# min_ngram: 1
|
|
24
|
-
# max_ngram: 4
|
|
25
|
-
# - name: DIETClassifier
|
|
26
|
-
# epochs: 100
|
|
27
|
-
# - name: EntitySynonymMapper
|
|
28
|
-
# - name: ResponseSelector
|
|
29
|
-
# epochs: 100
|
|
30
|
-
# - name: FallbackClassifier
|
|
31
|
-
# threshold: 0.3
|
|
32
|
-
# ambiguity_threshold: 0.1
|
|
10
|
+
- name: CompactLLMCommandGenerator
|
|
11
|
+
llm:
|
|
12
|
+
model_group: openai-gpt-4o
|
|
33
13
|
|
|
34
14
|
# Configuration for Rasa Core.
|
|
35
|
-
# https://rasa.com/docs/rasa-pro/concepts/policies/policy-overview/
|
|
36
15
|
policies:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# # See https://rasa.com/docs/rasa-pro/concepts/policies/policy-overview/ for more information.
|
|
40
|
-
# - name: MemoizationPolicy
|
|
41
|
-
# - name: TEDPolicy
|
|
42
|
-
# max_history: 5
|
|
43
|
-
# epochs: 100
|
|
44
|
-
# - name: RulePolicy
|
|
16
|
+
- name: FlowPolicy
|
|
17
|
+
- name: IntentlessPolicy
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
# Server which runs your custom actions.
|
|
11
11
|
# https://rasa.com/docs/rasa-pro/concepts/custom-actions
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
action_endpoint:
|
|
14
|
+
actions_module: "actions"
|
|
15
15
|
|
|
16
16
|
# Tracker store which is used to store the conversations.
|
|
17
17
|
# By default the conversations are stored in memory.
|
|
@@ -40,3 +40,19 @@
|
|
|
40
40
|
# username: username
|
|
41
41
|
# password: password
|
|
42
42
|
# queue: queue
|
|
43
|
+
|
|
44
|
+
# The lines below activate contextual rephrasing, using the default OpenAI language model.
|
|
45
|
+
# Ensure the OPENAI_API_KEY is set to prevent any missing API key errors.
|
|
46
|
+
# For more details, refer to the documentation:
|
|
47
|
+
# https://rasa.com/docs/rasa-pro/concepts/contextual-response-rephraser
|
|
48
|
+
# To enable the rephraser, remove the comment symbols in the lines below.
|
|
49
|
+
#nlg:
|
|
50
|
+
# type: rephrase
|
|
51
|
+
|
|
52
|
+
model_groups:
|
|
53
|
+
- id: openai-gpt-4o
|
|
54
|
+
models:
|
|
55
|
+
- provider: openai
|
|
56
|
+
model: gpt-4o-2024-11-20
|
|
57
|
+
request_timeout: 7
|
|
58
|
+
max_tokens: 256
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import tempfile
|
|
4
|
+
from typing import Any, Dict, List, Optional, Text
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
7
|
+
|
|
8
|
+
from rasa.dialogue_understanding.patterns.domain_for_patterns import (
|
|
9
|
+
ContextField,
|
|
10
|
+
generate_domain_for_default_patterns,
|
|
11
|
+
)
|
|
12
|
+
from rasa.shared.core.domain import Domain
|
|
13
|
+
from rasa.shared.importers.importer import FlowSyncImporter, TrainingDataImporter
|
|
14
|
+
from rasa.shared.utils.llm import SystemPrompts, get_system_default_prompts
|
|
15
|
+
from rasa.shared.utils.yaml import read_yaml, write_yaml
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Response(BaseModel):
|
|
19
|
+
text: str = Field(..., description="The human-readable response string.")
|
|
20
|
+
metadata: Optional[Dict[str, Any]] = Field(
|
|
21
|
+
None, description="Optional metadata used by Rasa at runtime."
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Slot(BaseModel):
|
|
26
|
+
name: Text = Field(..., description="Name of the slot.")
|
|
27
|
+
type: Text = Field(..., description="Type of the slot.")
|
|
28
|
+
mappings: Optional[List[Dict[str, Any]]] = Field(
|
|
29
|
+
None, description="Mappings for the slot."
|
|
30
|
+
)
|
|
31
|
+
model_config = ConfigDict(extra="allow")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class PatternFlow(BaseModel):
|
|
35
|
+
description: str = Field(..., description="Description of the flow.")
|
|
36
|
+
name: Text = Field(..., description="Name of the flow.")
|
|
37
|
+
steps: List[Any] = Field(..., description="List of steps in the flow.")
|
|
38
|
+
nlu_trigger: Optional[Any] = Field(None, description="NLU trigger for the flow.")
|
|
39
|
+
persisted_slots: Optional[List[Text]] = Field(None, description="Slots to persist.")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class PatternDefaults(BaseModel):
|
|
43
|
+
"""Content of `default_flows_for_patterns.yml` after it is loaded from disk."""
|
|
44
|
+
|
|
45
|
+
responses: Dict[Text, List[Response]] = Field(
|
|
46
|
+
default_factory=dict,
|
|
47
|
+
description="Response templates available out-of-the-box.",
|
|
48
|
+
)
|
|
49
|
+
slots: Dict[Text, Slot] = Field(
|
|
50
|
+
default_factory=dict, description="Slot definitions used by the default flows."
|
|
51
|
+
)
|
|
52
|
+
flows: Dict[Text, PatternFlow] = Field(
|
|
53
|
+
default_factory=dict, description="Default flows (conversation patterns)."
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class RasaDefaults(PatternDefaults):
|
|
58
|
+
"""Full set of defaults that Rasa injects when a project is created."""
|
|
59
|
+
|
|
60
|
+
prompts: SystemPrompts = Field(..., description="Built-in system prompts.")
|
|
61
|
+
actions: List[Text] = Field(..., description="Default actions shipped by Rasa.")
|
|
62
|
+
intents: List[Text] = Field(..., description="Default intents shipped by Rasa.")
|
|
63
|
+
contexts: Dict[Text, ContextField] = Field(
|
|
64
|
+
..., description="Context fields that can appear on the conversation stack."
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
class Config:
|
|
68
|
+
extra = "forbid"
|
|
69
|
+
validate_assignment = True
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _get_domain_from_importer(config: Dict[Text, Any]) -> Domain:
|
|
73
|
+
"""Get the domain from the TrainingDataImporter.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
config: The config.yml file data.
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
A Domain object .
|
|
80
|
+
"""
|
|
81
|
+
with tempfile.NamedTemporaryFile("w+", suffix=".yml") as tmp:
|
|
82
|
+
write_yaml(config, tmp.name)
|
|
83
|
+
importer = TrainingDataImporter.load_from_config(
|
|
84
|
+
domain_path=FlowSyncImporter.default_pattern_path(),
|
|
85
|
+
config_path=tmp.name,
|
|
86
|
+
)
|
|
87
|
+
return importer.get_domain()
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def get_pattern_defaults(config: Dict[Text, Any]) -> PatternDefaults:
|
|
91
|
+
"""Get the default flows, responses and slots for patterns.
|
|
92
|
+
|
|
93
|
+
Args:
|
|
94
|
+
config: The config.yml file data.
|
|
95
|
+
|
|
96
|
+
Returns:
|
|
97
|
+
A PatternDefaults object containing the defaults.
|
|
98
|
+
"""
|
|
99
|
+
domain = _get_domain_from_importer(config)
|
|
100
|
+
domain_dict = domain.as_dict()
|
|
101
|
+
|
|
102
|
+
# Make sure all the slots are exported, including the builtin slots
|
|
103
|
+
domain_dict["slots"] = {slot.name: slot.to_dict() for slot in domain.slots}
|
|
104
|
+
|
|
105
|
+
return PatternDefaults(**domain_dict)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def get_rasa_defaults(config_yaml: Text, endpoints_yaml: Text) -> RasaDefaults:
|
|
109
|
+
"""Get the default values for a Rasa project.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
config_yaml: The content of the config.yml file.
|
|
113
|
+
endpoints_yaml: The content of the endpoints.yml file.
|
|
114
|
+
|
|
115
|
+
Returns:
|
|
116
|
+
A RasaDefaults object containing the default values for the project.
|
|
117
|
+
"""
|
|
118
|
+
config = read_yaml(config_yaml)
|
|
119
|
+
endpoints = read_yaml(endpoints_yaml)
|
|
120
|
+
|
|
121
|
+
prompts = get_system_default_prompts(config, endpoints)
|
|
122
|
+
pattern_domain = generate_domain_for_default_patterns()
|
|
123
|
+
pattern_defaults = get_pattern_defaults(config)
|
|
124
|
+
|
|
125
|
+
return RasaDefaults(
|
|
126
|
+
prompts=prompts,
|
|
127
|
+
actions=pattern_domain.actions,
|
|
128
|
+
intents=pattern_domain.intents,
|
|
129
|
+
contexts=pattern_domain.contexts,
|
|
130
|
+
responses=pattern_defaults.responses,
|
|
131
|
+
slots=pattern_defaults.slots,
|
|
132
|
+
flows=pattern_defaults.flows,
|
|
133
|
+
)
|
rasa/cli/run.py
CHANGED
|
@@ -109,7 +109,7 @@ def run(args: argparse.Namespace) -> None:
|
|
|
109
109
|
# configured
|
|
110
110
|
|
|
111
111
|
import rasa.model
|
|
112
|
-
from rasa.core.
|
|
112
|
+
from rasa.core.available_endpoints import AvailableEndpoints
|
|
113
113
|
|
|
114
114
|
# start server if remote storage is configured
|
|
115
115
|
if args.remote_storage is not None:
|
rasa/cli/scaffold.py
CHANGED
|
@@ -20,18 +20,17 @@ from rasa.shared.utils.cli import print_error_and_exit, print_success
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class ProjectTemplateName(Enum):
|
|
23
|
-
"""Enum of
|
|
23
|
+
"""Enum of CALM project templates."""
|
|
24
24
|
|
|
25
25
|
DEFAULT = "default"
|
|
26
26
|
TUTORIAL = "tutorial"
|
|
27
|
-
CALM = "calm"
|
|
28
27
|
|
|
29
28
|
def __str__(self) -> str:
|
|
30
29
|
return self.value
|
|
31
30
|
|
|
32
31
|
|
|
33
32
|
template_domain_path = defaultdict(lambda: DEFAULT_DOMAIN_PATH)
|
|
34
|
-
template_domain_path[ProjectTemplateName.
|
|
33
|
+
template_domain_path[ProjectTemplateName.DEFAULT] = "domain"
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
def add_subparser(
|
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.core.available_endpoints import AvailableEndpoints
|
|
9
10
|
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
10
11
|
from rasa.exceptions import ModelNotFound
|
|
11
12
|
from rasa.model import get_local_model
|
|
@@ -105,7 +106,11 @@ def shell(args: argparse.Namespace) -> None:
|
|
|
105
106
|
from rasa.shared.constants import DEFAULT_MODELS_PATH
|
|
106
107
|
|
|
107
108
|
args.connector = "cmdline"
|
|
108
|
-
|
|
109
|
+
# Load endpoints with proper endpoint file location
|
|
110
|
+
# This will initialise the endpoints singleton properly so that
|
|
111
|
+
# it can be used safely throughout the codebase with
|
|
112
|
+
# `AvailableEndpoints.get_instance()`
|
|
113
|
+
AvailableEndpoints.get_instance(args.endpoints)
|
|
109
114
|
model = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)
|
|
110
115
|
|
|
111
116
|
try:
|
rasa/cli/studio/download.py
CHANGED
|
@@ -2,12 +2,6 @@ import argparse
|
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
4
|
from rasa.cli import SubParsersAction
|
|
5
|
-
from rasa.cli.arguments.default_arguments import (
|
|
6
|
-
add_config_param,
|
|
7
|
-
add_endpoint_param,
|
|
8
|
-
)
|
|
9
|
-
from rasa.cli.arguments.train import add_data_param, add_domain_param
|
|
10
|
-
from rasa.shared.constants import DEFAULT_CONFIG_PATH, DEFAULT_ENDPOINTS_PATH
|
|
11
5
|
from rasa.studio.download import handle_download
|
|
12
6
|
|
|
13
7
|
|
|
@@ -37,25 +31,9 @@ def add_subparser(
|
|
|
37
31
|
|
|
38
32
|
def set_studio_download_arguments(parser: argparse.ArgumentParser) -> None:
|
|
39
33
|
"""Add arguments for running `rasa studio download`."""
|
|
40
|
-
add_domain_param(parser)
|
|
41
|
-
add_data_param(parser)
|
|
42
|
-
add_config_param(parser, default=DEFAULT_CONFIG_PATH)
|
|
43
|
-
add_endpoint_param(
|
|
44
|
-
parser,
|
|
45
|
-
"Configuration file for the model endpoints.",
|
|
46
|
-
default=DEFAULT_ENDPOINTS_PATH,
|
|
47
|
-
)
|
|
48
|
-
|
|
49
34
|
parser.add_argument(
|
|
50
35
|
"assistant_name",
|
|
51
36
|
default=None,
|
|
52
|
-
nargs=1,
|
|
53
37
|
type=str,
|
|
54
38
|
help="Name of the assistant on Rasa Studio",
|
|
55
39
|
)
|
|
56
|
-
|
|
57
|
-
parser.add_argument(
|
|
58
|
-
"--overwrite",
|
|
59
|
-
action="store_true",
|
|
60
|
-
help="Overwrite local data with data from Rasa Studio",
|
|
61
|
-
)
|
rasa/cli/studio/link.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import List, Text
|
|
3
|
+
|
|
4
|
+
from rasa.cli import SubParsersAction
|
|
5
|
+
from rasa.shared.constants import (
|
|
6
|
+
DEFAULT_DOMAIN_PATH,
|
|
7
|
+
)
|
|
8
|
+
from rasa.studio.link import handle_link
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def add_subparser(
|
|
12
|
+
subparsers: SubParsersAction,
|
|
13
|
+
parents: List[argparse.ArgumentParser],
|
|
14
|
+
domain: Text = DEFAULT_DOMAIN_PATH,
|
|
15
|
+
) -> None:
|
|
16
|
+
"""Register the `rasa studio link` command with the main CLI.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
subparsers: subparser we are going to attach to
|
|
20
|
+
parents: Parent parsers, needed to ensure tree structure in argparse
|
|
21
|
+
domain: Path to the assistant's domain file.
|
|
22
|
+
"""
|
|
23
|
+
link_parser = subparsers.add_parser(
|
|
24
|
+
"link",
|
|
25
|
+
parents=parents,
|
|
26
|
+
conflict_handler="resolve",
|
|
27
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
28
|
+
help="Link the current project to an existing Rasa Studio assistant.",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
link_parser.add_argument(
|
|
32
|
+
"assistant_name",
|
|
33
|
+
type=str,
|
|
34
|
+
help="Name of the assistant in Rasa Studio.",
|
|
35
|
+
)
|
|
36
|
+
link_parser.set_defaults(func=handle_link)
|
rasa/cli/studio/pull.py
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import List, Text
|
|
3
|
+
|
|
4
|
+
from rasa.cli import SubParsersAction
|
|
5
|
+
from rasa.cli.arguments.default_arguments import (
|
|
6
|
+
add_config_param,
|
|
7
|
+
add_data_param,
|
|
8
|
+
add_domain_param,
|
|
9
|
+
add_endpoint_param,
|
|
10
|
+
)
|
|
11
|
+
from rasa.shared.constants import (
|
|
12
|
+
DEFAULT_CONFIG_PATH,
|
|
13
|
+
DEFAULT_DOMAIN_PATH,
|
|
14
|
+
DEFAULT_ENDPOINTS_PATH,
|
|
15
|
+
)
|
|
16
|
+
from rasa.studio.pull.pull import (
|
|
17
|
+
handle_pull,
|
|
18
|
+
handle_pull_config,
|
|
19
|
+
handle_pull_endpoints,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def add_subparser(
|
|
24
|
+
subparsers: SubParsersAction,
|
|
25
|
+
parents: List[argparse.ArgumentParser],
|
|
26
|
+
domain: Text = DEFAULT_DOMAIN_PATH,
|
|
27
|
+
) -> None:
|
|
28
|
+
"""Register `rasa studio pull` and its sub-commands.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
subparsers: subparser we are going to attach to
|
|
32
|
+
parents: Parent parsers, needed to ensure tree structure in argparse
|
|
33
|
+
domain: Path to the assistant's domain file.
|
|
34
|
+
"""
|
|
35
|
+
pull_parser = subparsers.add_parser(
|
|
36
|
+
"pull",
|
|
37
|
+
parents=parents,
|
|
38
|
+
conflict_handler="resolve",
|
|
39
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
40
|
+
help="Pull assistant data from Rasa Studio.",
|
|
41
|
+
)
|
|
42
|
+
pull_subparsers = pull_parser.add_subparsers()
|
|
43
|
+
|
|
44
|
+
# Arguments for pulling configuration only
|
|
45
|
+
config_parser = pull_subparsers.add_parser(
|
|
46
|
+
"config",
|
|
47
|
+
parents=parents,
|
|
48
|
+
conflict_handler="resolve",
|
|
49
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
50
|
+
help="Pull only the assistant configuration file.",
|
|
51
|
+
)
|
|
52
|
+
add_config_param(config_parser, default=DEFAULT_CONFIG_PATH)
|
|
53
|
+
config_parser.set_defaults(func=handle_pull_config)
|
|
54
|
+
|
|
55
|
+
# Arguments for pulling endpoints only
|
|
56
|
+
endpoints_parser = pull_subparsers.add_parser(
|
|
57
|
+
"endpoints",
|
|
58
|
+
parents=parents,
|
|
59
|
+
conflict_handler="resolve",
|
|
60
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
61
|
+
help="Pull only the endpoints configuration file.",
|
|
62
|
+
)
|
|
63
|
+
add_endpoint_param(
|
|
64
|
+
endpoints_parser,
|
|
65
|
+
"Configuration file for the model endpoints.",
|
|
66
|
+
default=DEFAULT_ENDPOINTS_PATH,
|
|
67
|
+
)
|
|
68
|
+
endpoints_parser.set_defaults(func=handle_pull_endpoints)
|
|
69
|
+
|
|
70
|
+
# Arguments for pulling the whole assistant data
|
|
71
|
+
add_domain_param(pull_parser, domain)
|
|
72
|
+
add_data_param(pull_parser)
|
|
73
|
+
add_config_param(pull_parser, default=DEFAULT_CONFIG_PATH)
|
|
74
|
+
add_endpoint_param(
|
|
75
|
+
pull_parser,
|
|
76
|
+
"Configuration file for the model endpoints.",
|
|
77
|
+
default=DEFAULT_ENDPOINTS_PATH,
|
|
78
|
+
)
|
|
79
|
+
pull_parser.set_defaults(func=handle_pull)
|