rasa-pro 3.12.0.dev2__py3-none-any.whl → 3.12.0.dev3__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 +7 -7
- rasa/anonymization/anonymisation_rule_yaml_reader.py +1 -1
- rasa/anonymization/anonymization_pipeline.py +3 -3
- rasa/anonymization/anonymization_rule_executor.py +1 -1
- rasa/anonymization/anonymization_rule_orchestrator.py +2 -3
- rasa/cli/arguments/data.py +2 -2
- rasa/cli/arguments/evaluate.py +2 -1
- rasa/cli/arguments/interactive.py +1 -1
- rasa/cli/arguments/run.py +1 -1
- rasa/cli/arguments/test.py +7 -5
- rasa/cli/arguments/train.py +3 -3
- rasa/cli/arguments/visualize.py +2 -2
- rasa/cli/arguments/x.py +1 -0
- rasa/cli/data.py +4 -3
- rasa/cli/dialogue_understanding_test.py +116 -18
- rasa/cli/evaluate.py +1 -1
- rasa/cli/export.py +6 -6
- rasa/cli/interactive.py +4 -5
- rasa/cli/llm_fine_tuning.py +5 -5
- rasa/cli/markers.py +1 -2
- rasa/cli/project_templates/calm/actions/add_contact.py +1 -1
- rasa/cli/project_templates/tutorial/actions/actions.py +3 -2
- rasa/cli/shell.py +2 -3
- rasa/cli/studio/download.py +1 -2
- rasa/cli/studio/studio.py +2 -3
- rasa/cli/studio/train.py +0 -1
- rasa/cli/telemetry.py +2 -2
- rasa/cli/test.py +11 -11
- rasa/cli/utils.py +7 -5
- rasa/core/__init__.py +0 -1
- rasa/core/actions/action.py +42 -21
- rasa/core/actions/action_hangup.py +1 -1
- rasa/core/actions/action_repeat_bot_messages.py +2 -2
- rasa/core/actions/action_run_slot_rejections.py +2 -2
- rasa/core/actions/action_trigger_chitchat.py +1 -1
- rasa/core/actions/action_trigger_flow.py +5 -5
- rasa/core/actions/action_trigger_search.py +1 -1
- rasa/core/actions/forms.py +14 -12
- rasa/core/actions/http_custom_action_executor.py +8 -1
- rasa/core/actions/loops.py +3 -3
- rasa/core/actions/two_stage_fallback.py +13 -13
- rasa/core/auth_retry_tracker_store.py +1 -2
- rasa/core/brokers/broker.py +2 -1
- rasa/core/brokers/file.py +1 -1
- rasa/core/brokers/kafka.py +8 -8
- rasa/core/brokers/pika.py +8 -9
- rasa/core/brokers/sql.py +4 -3
- rasa/core/channels/__init__.py +3 -0
- rasa/core/channels/botframework.py +2 -2
- rasa/core/channels/callback.py +4 -4
- rasa/core/channels/channel.py +11 -11
- rasa/core/channels/console.py +0 -1
- rasa/core/channels/development_inspector.py +6 -6
- rasa/core/channels/facebook.py +5 -5
- rasa/core/channels/hangouts.py +7 -8
- rasa/core/channels/inspector/dist/assets/{arc-861ddd57.js → arc-632a63ec.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-d0fbc5ce-921f02db.js → c4Diagram-d0fbc5ce-081e0df4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-936ed81e-b436c4f8.js → classDiagram-936ed81e-3df0afc2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-c3cb15f1-511a23cb.js → classDiagram-v2-c3cb15f1-8c5ed31e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{createText-62fc7601-ef476ecd.js → createText-62fc7601-89c73b31.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-f2ad444c-f1878e0a.js → edges-f2ad444c-4fc48c3e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9d236eb7-fac75185.js → erDiagram-9d236eb7-907e0440.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-1972c806-201c5bbc.js → flowDb-1972c806-9ec53a3c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-7ea5b25a-f904ae41.js → flowDiagram-7ea5b25a-41da787a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-8bea338b.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-abe16c3d-1813da66.js → flowchart-elk-definition-abe16c3d-ce370633.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-9b5ea136-872af172.js → ganttDiagram-9b5ea136-90a36523.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-99d0ae7c-34a0af5a.js → gitGraphDiagram-99d0ae7c-41e1aa3f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-2c4b9a3b-42ba3e3d.js → index-2c4b9a3b-e6f2af62.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-37817b51.js → index-e793d777.js} +3 -3
- rasa/core/channels/inspector/dist/assets/{infoDiagram-736b4530-6b731386.js → infoDiagram-736b4530-8ceba4db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-df861f2b-e8579ac6.js → journeyDiagram-df861f2b-960d3809.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-89e6403a.js → layout-498807d8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-dc73d3fc.js → line-eeccc4e2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-f5b1d2bc.js → linear-8a078617.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-beec6740-82cb74fa.js → mindmap-definition-beec6740-396d17dd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-dbbf0591-bdf5f29b.js → pieDiagram-dbbf0591-dc9b5e1b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-4d7f4fd6-c7a0cbe4.js → quadrantDiagram-4d7f4fd6-a08cba6d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-6fc4c22a-7ec5410f.js → requirementDiagram-6fc4c22a-87242b9e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-8f13d901-caee5554.js → sankeyDiagram-8f13d901-53f6f391.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-b655622a-2935f8db.js → sequenceDiagram-b655622a-715c9c20.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-59f0c015-8f5d9693.js → stateDiagram-59f0c015-2e8fb31f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-2b26beab-d565d1de.js → stateDiagram-v2-2b26beab-7e2d2aa0.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-080da4f6-75ad421d.js → styles-080da4f6-4420cea6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-3dcbcfbf-7e764226.js → styles-3dcbcfbf-28676cf4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9c745c82-7a4e0e61.js → styles-9c745c82-cef936a6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-4835440b-4019d1bf.js → svgDrawCommon-4835440b-151251e9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-5b62e21b-01ea12df.js → timeline-definition-5b62e21b-0d39bdb2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-2b33534f-89407137.js → xychartDiagram-2b33534f-a03fa445.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +3 -1
- rasa/core/channels/inspector/index.html +2 -0
- rasa/core/channels/inspector/src/App.tsx +1 -4
- rasa/core/channels/mattermost.py +4 -4
- rasa/core/channels/rasa_chat.py +4 -4
- rasa/core/channels/rest.py +11 -12
- rasa/core/channels/rocketchat.py +4 -3
- rasa/core/channels/slack.py +6 -5
- rasa/core/channels/socketio.py +7 -28
- rasa/core/channels/studio_chat.py +193 -0
- rasa/core/channels/telegram.py +73 -41
- rasa/core/channels/twilio.py +3 -3
- rasa/core/channels/vier_cvg.py +2 -2
- rasa/core/channels/voice_ready/audiocodes.py +8 -8
- rasa/core/channels/voice_ready/jambonz.py +5 -5
- rasa/core/channels/voice_ready/jambonz_protocol.py +3 -4
- rasa/core/channels/voice_ready/twilio_voice.py +9 -8
- rasa/core/channels/voice_ready/utils.py +1 -1
- rasa/core/channels/voice_stream/asr/asr_engine.py +2 -2
- rasa/core/channels/voice_stream/asr/azure.py +2 -2
- rasa/core/channels/voice_stream/asr/deepgram.py +57 -16
- rasa/core/channels/voice_stream/browser_audio.py +9 -6
- rasa/core/channels/voice_stream/call_state.py +2 -1
- rasa/core/channels/voice_stream/tts/azure.py +1 -2
- rasa/core/channels/voice_stream/tts/cartesia.py +5 -4
- rasa/core/channels/voice_stream/tts/tts_cache.py +3 -2
- rasa/core/channels/voice_stream/tts/tts_engine.py +1 -1
- rasa/core/channels/voice_stream/twilio_media_streams.py +10 -7
- rasa/core/channels/voice_stream/util.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +15 -15
- rasa/core/channels/webexteams.py +3 -4
- rasa/core/evaluation/marker.py +7 -6
- rasa/core/evaluation/marker_base.py +15 -16
- rasa/core/evaluation/marker_stats.py +3 -4
- rasa/core/evaluation/marker_tracker_loader.py +5 -4
- rasa/core/exporter.py +4 -4
- rasa/core/featurizers/precomputation.py +8 -8
- rasa/core/featurizers/single_state_featurizer.py +7 -7
- rasa/core/featurizers/tracker_featurizers.py +13 -13
- rasa/core/http_interpreter.py +3 -4
- rasa/core/information_retrieval/__init__.py +1 -1
- rasa/core/information_retrieval/faiss.py +4 -4
- rasa/core/information_retrieval/information_retrieval.py +2 -2
- rasa/core/information_retrieval/milvus.py +3 -3
- rasa/core/information_retrieval/qdrant.py +3 -3
- rasa/core/jobs.py +1 -0
- rasa/core/lock.py +2 -3
- rasa/core/lock_store.py +3 -3
- rasa/core/migrate.py +11 -8
- rasa/core/nlg/__init__.py +1 -1
- rasa/core/nlg/callback.py +2 -3
- rasa/core/nlg/contextual_response_rephraser.py +63 -13
- rasa/core/nlg/generator.py +2 -2
- rasa/core/nlg/interpolator.py +4 -3
- rasa/core/nlg/response.py +3 -4
- rasa/core/nlg/summarize.py +1 -0
- rasa/core/persistor.py +3 -3
- rasa/core/policies/ensemble.py +10 -9
- rasa/core/policies/enterprise_search_policy.py +86 -21
- rasa/core/policies/flow_policy.py +13 -14
- rasa/core/policies/flows/flow_executor.py +35 -11
- rasa/core/policies/intentless_policy.py +6 -7
- rasa/core/policies/memoization.py +22 -20
- rasa/core/policies/policy.py +24 -22
- rasa/core/policies/rule_policy.py +37 -36
- rasa/core/policies/ted_policy.py +87 -85
- rasa/core/policies/unexpected_intent_policy.py +77 -75
- rasa/core/processor.py +96 -65
- rasa/core/run.py +1 -1
- rasa/core/secrets_manager/endpoints.py +2 -3
- rasa/core/secrets_manager/factory.py +2 -3
- rasa/core/secrets_manager/secret_manager.py +2 -3
- rasa/core/secrets_manager/vault.py +2 -2
- rasa/core/test.py +30 -30
- rasa/core/tracker_store.py +15 -15
- rasa/core/train.py +1 -1
- rasa/core/training/__init__.py +2 -2
- rasa/core/training/converters/responses_prefix_converter.py +1 -2
- rasa/core/training/interactive.py +13 -13
- rasa/core/training/story_conflict.py +4 -5
- rasa/core/training/training.py +3 -5
- rasa/core/utils.py +5 -5
- rasa/core/visualize.py +1 -1
- rasa/dialogue_understanding/coexistence/intent_based_router.py +2 -2
- rasa/dialogue_understanding/coexistence/llm_based_router.py +5 -5
- rasa/dialogue_understanding/commands/__init__.py +22 -22
- rasa/dialogue_understanding/commands/can_not_handle_command.py +20 -1
- rasa/dialogue_understanding/commands/cancel_flow_command.py +18 -7
- rasa/dialogue_understanding/commands/change_flow_command.py +18 -2
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +18 -4
- rasa/dialogue_understanding/commands/clarify_command.py +19 -3
- rasa/dialogue_understanding/commands/command.py +19 -3
- rasa/dialogue_understanding/commands/correct_slots_command.py +3 -3
- rasa/dialogue_understanding/commands/error_command.py +1 -1
- rasa/dialogue_understanding/commands/free_form_answer_command.py +2 -1
- rasa/dialogue_understanding/commands/handle_code_change_command.py +2 -2
- rasa/dialogue_understanding/commands/human_handoff_command.py +16 -4
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +18 -4
- rasa/dialogue_understanding/commands/noop_command.py +2 -1
- rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +16 -4
- rasa/dialogue_understanding/commands/restart_command.py +2 -5
- rasa/dialogue_understanding/commands/session_end_command.py +3 -5
- rasa/dialogue_understanding/commands/session_start_command.py +3 -5
- rasa/dialogue_understanding/commands/set_slot_command.py +27 -3
- rasa/dialogue_understanding/commands/skip_question_command.py +16 -4
- rasa/dialogue_understanding/commands/start_flow_command.py +17 -2
- rasa/dialogue_understanding/commands/user_silence_command.py +3 -5
- rasa/dialogue_understanding/commands/utils.py +64 -45
- rasa/dialogue_understanding/constants.py +1 -0
- rasa/dialogue_understanding/generator/command_generator.py +2 -119
- rasa/dialogue_understanding/generator/command_parser.py +201 -0
- rasa/dialogue_understanding/generator/constants.py +2 -2
- rasa/dialogue_understanding/generator/flow_retrieval.py +7 -7
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +11 -57
- rasa/dialogue_understanding/generator/llm_command_generator.py +2 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +67 -120
- rasa/dialogue_understanding/generator/nlu_command_adapter.py +8 -10
- rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +32 -93
- rasa/dialogue_understanding/generator/utils.py +45 -0
- rasa/dialogue_understanding/patterns/cancel.py +2 -1
- rasa/dialogue_understanding/patterns/cannot_handle.py +1 -0
- rasa/dialogue_understanding/patterns/chitchat.py +1 -1
- rasa/dialogue_understanding/patterns/clarify.py +2 -1
- rasa/dialogue_understanding/patterns/code_change.py +2 -0
- rasa/dialogue_understanding/patterns/collect_information.py +6 -3
- rasa/dialogue_understanding/patterns/completed.py +1 -1
- rasa/dialogue_understanding/patterns/continue_interrupted.py +10 -1
- rasa/dialogue_understanding/patterns/correction.py +4 -2
- rasa/dialogue_understanding/patterns/human_handoff.py +1 -1
- rasa/dialogue_understanding/patterns/internal_error.py +1 -0
- rasa/dialogue_understanding/patterns/search.py +1 -1
- rasa/dialogue_understanding/patterns/session_start.py +1 -1
- rasa/dialogue_understanding/patterns/skip_question.py +1 -0
- rasa/dialogue_understanding/patterns/user_silence.py +1 -1
- rasa/dialogue_understanding/processor/command_processor.py +13 -9
- rasa/dialogue_understanding/processor/command_processor_component.py +1 -1
- rasa/dialogue_understanding/stack/dialogue_stack.py +4 -3
- rasa/dialogue_understanding/stack/frames/__init__.py +2 -2
- rasa/dialogue_understanding/stack/frames/chit_chat_frame.py +4 -1
- rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py +2 -3
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +5 -2
- rasa/dialogue_understanding/stack/frames/search_frame.py +4 -1
- rasa/dialogue_understanding/stack/utils.py +8 -4
- rasa/dialogue_understanding/utils.py +121 -2
- rasa/dialogue_understanding_test/README.md +379 -0
- rasa/dialogue_understanding_test/command_comparison.py +60 -0
- rasa/dialogue_understanding_test/command_metric_calculation.py +110 -4
- rasa/dialogue_understanding_test/constants.py +6 -1
- rasa/dialogue_understanding_test/du_test_case.py +252 -38
- rasa/dialogue_understanding_test/du_test_result.py +281 -2
- rasa/dialogue_understanding_test/du_test_runner.py +239 -10
- rasa/dialogue_understanding_test/du_test_schema.yml +161 -0
- rasa/dialogue_understanding_test/io.py +338 -20
- rasa/dialogue_understanding_test/test_case_simulation/__init__.py +0 -0
- rasa/dialogue_understanding_test/test_case_simulation/exception.py +28 -0
- rasa/dialogue_understanding_test/test_case_simulation/test_case_tracker_simulator.py +336 -0
- rasa/dialogue_understanding_test/utils.py +70 -0
- rasa/dialogue_understanding_test/validation.py +59 -4
- rasa/e2e_test/aggregate_test_stats_calculator.py +1 -1
- rasa/e2e_test/assertions.py +1 -1
- rasa/e2e_test/e2e_config.py +1 -1
- rasa/e2e_test/e2e_test_case.py +3 -4
- rasa/e2e_test/e2e_test_converter.py +2 -3
- rasa/e2e_test/e2e_test_coverage_report.py +6 -6
- rasa/e2e_test/e2e_test_result.py +1 -1
- rasa/e2e_test/e2e_test_runner.py +134 -31
- rasa/e2e_test/stub_custom_action.py +1 -1
- rasa/e2e_test/utils/e2e_yaml_utils.py +1 -1
- rasa/e2e_test/utils/io.py +132 -65
- rasa/e2e_test/utils/validation.py +1 -1
- rasa/engine/caching.py +5 -7
- rasa/engine/constants.py +1 -1
- rasa/engine/graph.py +2 -2
- rasa/engine/recipes/default_components.py +13 -15
- rasa/engine/recipes/recipe.py +2 -2
- rasa/engine/runner/dask.py +2 -2
- rasa/engine/runner/interface.py +1 -0
- rasa/engine/storage/local_model_storage.py +5 -4
- rasa/engine/storage/resource.py +2 -1
- rasa/engine/storage/storage.py +5 -3
- rasa/engine/training/components.py +2 -1
- rasa/engine/training/fingerprinting.py +4 -2
- rasa/engine/training/graph_trainer.py +4 -4
- rasa/engine/training/hooks.py +2 -2
- rasa/engine/validation.py +34 -33
- rasa/exceptions.py +3 -2
- rasa/graph_components/converters/nlu_message_converter.py +3 -3
- rasa/graph_components/providers/domain_for_core_training_provider.py +3 -3
- rasa/graph_components/providers/domain_provider.py +3 -2
- rasa/graph_components/providers/flows_provider.py +2 -3
- rasa/graph_components/providers/forms_provider.py +4 -4
- rasa/graph_components/providers/nlu_training_data_provider.py +5 -3
- rasa/graph_components/providers/responses_provider.py +4 -4
- rasa/graph_components/providers/rule_only_provider.py +3 -2
- rasa/graph_components/providers/story_graph_provider.py +8 -8
- rasa/graph_components/providers/training_tracker_provider.py +3 -2
- rasa/graph_components/validators/default_recipe_validator.py +16 -16
- rasa/graph_components/validators/finetuning_validator.py +10 -8
- rasa/hooks.py +18 -12
- rasa/jupyter.py +2 -2
- rasa/llm_fine_tuning/annotation_module.py +4 -4
- rasa/llm_fine_tuning/conversations.py +6 -6
- rasa/llm_fine_tuning/llm_data_preparation_module.py +1 -1
- rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +4 -4
- rasa/llm_fine_tuning/paraphrasing/rephrase_validator.py +1 -1
- rasa/llm_fine_tuning/paraphrasing_module.py +1 -1
- rasa/llm_fine_tuning/storage.py +3 -3
- rasa/markers/marker.py +2 -3
- rasa/markers/marker_base.py +1 -2
- rasa/markers/upload.py +2 -2
- rasa/markers/validate.py +2 -3
- rasa/model.py +3 -5
- rasa/model_manager/config.py +1 -1
- rasa/model_manager/model_api.py +5 -4
- rasa/model_manager/runner_service.py +6 -6
- rasa/model_manager/socket_bridge.py +8 -3
- rasa/model_manager/studio_jwt_auth.py +1 -0
- rasa/model_manager/trainer_service.py +9 -7
- rasa/model_manager/utils.py +1 -1
- rasa/model_manager/warm_rasa_process.py +14 -8
- rasa/model_service.py +5 -6
- rasa/model_testing.py +13 -15
- rasa/nlu/classifiers/diet_classifier.py +72 -73
- rasa/nlu/classifiers/fallback_classifier.py +9 -8
- rasa/nlu/classifiers/keyword_intent_classifier.py +7 -6
- rasa/nlu/classifiers/logistic_regression_classifier.py +3 -3
- rasa/nlu/classifiers/mitie_intent_classifier.py +5 -4
- rasa/nlu/classifiers/regex_message_handler.py +3 -2
- rasa/nlu/classifiers/sklearn_intent_classifier.py +2 -2
- rasa/nlu/convert.py +2 -2
- rasa/nlu/emulators/dialogflow.py +3 -3
- rasa/nlu/emulators/luis.py +5 -5
- rasa/nlu/emulators/no_emulator.py +1 -0
- rasa/nlu/emulators/wit.py +4 -4
- rasa/nlu/extractors/crf_entity_extractor.py +11 -11
- rasa/nlu/extractors/duckling_entity_extractor.py +7 -6
- rasa/nlu/extractors/entity_synonyms.py +10 -9
- rasa/nlu/extractors/extractor.py +16 -16
- rasa/nlu/extractors/mitie_entity_extractor.py +10 -9
- rasa/nlu/extractors/regex_entity_extractor.py +11 -10
- rasa/nlu/extractors/spacy_entity_extractor.py +2 -2
- rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +15 -14
- rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +2 -1
- rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +10 -9
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +9 -7
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +13 -12
- rasa/nlu/featurizers/featurizer.py +5 -4
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +6 -6
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -4
- rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +4 -4
- rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +2 -0
- rasa/nlu/model.py +0 -1
- rasa/nlu/selectors/response_selector.py +67 -68
- rasa/nlu/test.py +38 -38
- rasa/nlu/tokenizers/jieba_tokenizer.py +1 -2
- rasa/nlu/tokenizers/mitie_tokenizer.py +2 -2
- rasa/nlu/tokenizers/spacy_tokenizer.py +3 -3
- rasa/nlu/tokenizers/tokenizer.py +6 -7
- rasa/nlu/tokenizers/whitespace_tokenizer.py +1 -1
- rasa/nlu/utils/bilou_utils.py +7 -7
- rasa/nlu/utils/hugging_face/registry.py +22 -22
- rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +2 -1
- rasa/nlu/utils/mitie_utils.py +2 -1
- rasa/nlu/utils/pattern_utils.py +1 -1
- rasa/nlu/utils/spacy_utils.py +3 -3
- rasa/plugin.py +12 -1
- rasa/server.py +37 -1
- rasa/shared/constants.py +22 -2
- rasa/shared/core/command_payload_reader.py +15 -7
- rasa/shared/core/constants.py +4 -1
- rasa/shared/core/conversation.py +1 -2
- rasa/shared/core/events.py +47 -37
- rasa/shared/core/flows/__init__.py +0 -1
- rasa/shared/core/flows/flow.py +11 -11
- rasa/shared/core/flows/flow_step.py +19 -13
- rasa/shared/core/flows/flow_step_links.py +21 -14
- rasa/shared/core/flows/flow_step_sequence.py +6 -4
- rasa/shared/core/flows/flows_list.py +3 -3
- rasa/shared/core/flows/nlu_trigger.py +1 -1
- rasa/shared/core/flows/steps/__init__.py +2 -2
- rasa/shared/core/flows/steps/action.py +4 -3
- rasa/shared/core/flows/steps/call.py +4 -4
- rasa/shared/core/flows/steps/collect.py +7 -4
- rasa/shared/core/flows/steps/continuation.py +3 -1
- rasa/shared/core/flows/steps/end.py +3 -1
- rasa/shared/core/flows/steps/internal.py +3 -2
- rasa/shared/core/flows/steps/link.py +6 -4
- rasa/shared/core/flows/steps/no_operation.py +7 -5
- rasa/shared/core/flows/steps/set_slots.py +4 -3
- rasa/shared/core/flows/steps/start.py +3 -1
- rasa/shared/core/flows/utils.py +1 -0
- rasa/shared/core/flows/validation.py +3 -5
- rasa/shared/core/generator.py +20 -21
- rasa/shared/core/slot_mappings.py +15 -15
- rasa/shared/core/slots.py +3 -3
- rasa/shared/core/trackers.py +31 -31
- rasa/shared/core/training_data/loading.py +1 -1
- rasa/shared/core/training_data/story_reader/story_reader.py +3 -3
- rasa/shared/core/training_data/story_reader/story_step_builder.py +4 -4
- rasa/shared/core/training_data/story_reader/yaml_story_reader.py +29 -31
- rasa/shared/core/training_data/story_writer/yaml_story_writer.py +22 -24
- rasa/shared/core/training_data/structures.py +11 -12
- rasa/shared/core/training_data/visualization.py +10 -10
- rasa/shared/data.py +6 -6
- rasa/shared/engine/caching.py +0 -1
- rasa/shared/exceptions.py +2 -2
- rasa/shared/importers/rasa.py +5 -6
- rasa/shared/importers/utils.py +1 -1
- rasa/shared/nlu/constants.py +3 -0
- rasa/shared/nlu/training_data/entities_parser.py +6 -6
- rasa/shared/nlu/training_data/features.py +3 -3
- rasa/shared/nlu/training_data/formats/__init__.py +1 -1
- rasa/shared/nlu/training_data/formats/dialogflow.py +4 -5
- rasa/shared/nlu/training_data/formats/luis.py +7 -8
- rasa/shared/nlu/training_data/formats/rasa.py +4 -5
- rasa/shared/nlu/training_data/formats/rasa_yaml.py +17 -16
- rasa/shared/nlu/training_data/formats/readerwriter.py +8 -11
- rasa/shared/nlu/training_data/formats/wit.py +3 -4
- rasa/shared/nlu/training_data/loading.py +4 -4
- rasa/shared/nlu/training_data/lookup_tables_parser.py +1 -1
- rasa/shared/nlu/training_data/message.py +13 -14
- rasa/shared/nlu/training_data/schemas/data_schema.py +1 -1
- rasa/shared/nlu/training_data/schemas/responses.yml +1 -0
- rasa/shared/nlu/training_data/synonyms_parser.py +3 -3
- rasa/shared/nlu/training_data/training_data.py +12 -13
- rasa/shared/nlu/training_data/util.py +11 -10
- rasa/shared/providers/_configs/azure_openai_client_config.py +3 -119
- rasa/shared/providers/_configs/client_config.py +1 -3
- rasa/shared/providers/_configs/default_litellm_client_config.py +1 -3
- rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +1 -3
- rasa/shared/providers/_configs/litellm_router_client_config.py +1 -3
- rasa/shared/providers/_configs/model_group_config.py +2 -7
- rasa/shared/providers/_configs/openai_client_config.py +1 -3
- rasa/shared/providers/_configs/rasa_llm_client_config.py +1 -3
- rasa/shared/providers/_configs/self_hosted_llm_client_config.py +1 -3
- rasa/shared/providers/_configs/utils.py +1 -0
- rasa/shared/providers/_ssl_verification_utils.py +5 -6
- rasa/shared/providers/_utils.py +5 -5
- rasa/shared/providers/embedding/_base_litellm_embedding_client.py +1 -1
- rasa/shared/providers/embedding/azure_openai_embedding_client.py +3 -26
- rasa/shared/providers/embedding/embedding_client.py +1 -1
- rasa/shared/providers/embedding/litellm_router_embedding_client.py +1 -3
- rasa/shared/providers/llm/_base_litellm_client.py +1 -3
- rasa/shared/providers/llm/azure_openai_llm_client.py +25 -79
- rasa/shared/providers/llm/default_litellm_llm_client.py +1 -3
- rasa/shared/providers/llm/litellm_router_llm_client.py +2 -21
- rasa/shared/providers/llm/llm_client.py +1 -3
- rasa/shared/providers/llm/llm_response.py +41 -2
- rasa/shared/providers/llm/openai_llm_client.py +3 -9
- rasa/shared/providers/llm/rasa_llm_client.py +6 -20
- rasa/shared/providers/llm/self_hosted_llm_client.py +3 -9
- rasa/shared/providers/mappings.py +18 -19
- rasa/shared/providers/router/_base_litellm_router_client.py +1 -3
- rasa/shared/providers/router/router_client.py +1 -3
- rasa/shared/utils/cli.py +1 -1
- rasa/shared/utils/common.py +1 -1
- rasa/shared/utils/health_check/embeddings_health_check_mixin.py +1 -1
- rasa/shared/utils/health_check/health_check.py +3 -3
- rasa/shared/utils/health_check/llm_health_check_mixin.py +1 -1
- rasa/shared/utils/io.py +1 -1
- rasa/shared/utils/llm.py +5 -9
- rasa/shared/utils/pykwalify_extensions.py +1 -1
- rasa/shared/utils/schemas/events.py +1 -1
- rasa/shared/utils/yaml.py +29 -26
- rasa/studio/auth.py +3 -3
- rasa/studio/config.py +1 -2
- rasa/studio/data_handler.py +3 -3
- rasa/studio/download.py +1 -1
- rasa/studio/results_logger.py +3 -3
- rasa/studio/upload.py +2 -0
- rasa/telemetry.py +31 -0
- rasa/tracing/config.py +3 -3
- rasa/tracing/instrumentation/attribute_extractors.py +2 -0
- rasa/tracing/instrumentation/instrumentation.py +4 -4
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +1 -1
- rasa/tracing/instrumentation/metrics.py +11 -11
- rasa/tracing/metric_instrument_provider.py +14 -14
- rasa/utils/common.py +12 -9
- rasa/utils/endpoints.py +1 -1
- rasa/utils/io.py +7 -7
- rasa/utils/licensing.py +3 -4
- rasa/utils/log_utils.py +7 -6
- rasa/utils/ml_utils.py +1 -0
- rasa/utils/plotting.py +3 -3
- rasa/utils/sanic_error_handler.py +1 -1
- rasa/utils/tensorflow/callback.py +2 -2
- rasa/utils/tensorflow/crf.py +2 -2
- rasa/utils/tensorflow/data_generator.py +5 -5
- rasa/utils/tensorflow/environment.py +3 -3
- rasa/utils/tensorflow/feature_array.py +2 -3
- rasa/utils/tensorflow/layers.py +18 -12
- rasa/utils/tensorflow/layers_utils.py +2 -1
- rasa/utils/tensorflow/metrics.py +2 -2
- rasa/utils/tensorflow/model_data.py +7 -7
- rasa/utils/tensorflow/model_data_utils.py +10 -9
- rasa/utils/tensorflow/models.py +31 -32
- rasa/utils/tensorflow/rasa_layers.py +20 -19
- rasa/utils/tensorflow/types.py +2 -1
- rasa/utils/train_utils.py +23 -21
- rasa/utils/url_tools.py +1 -1
- rasa/validator.py +17 -1
- rasa/version.py +1 -1
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev3.dist-info}/METADATA +8 -9
- rasa_pro-3.12.0.dev3.dist-info/RECORD +800 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-b080d6f2.js +0 -1
- rasa/shared/providers/_configs/azure_entra_id_client_creds.py +0 -40
- rasa/shared/providers/_configs/azure_entra_id_config.py +0 -533
- rasa/shared/providers/_configs/oauth_config.py +0 -33
- rasa/shared/providers/constants.py +0 -6
- rasa_pro-3.12.0.dev2.dist-info/RECORD +0 -793
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev3.dist-info}/NOTICE +0 -0
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev3.dist-info}/WHEEL +0 -0
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev3.dist-info}/entry_points.txt +0 -0
rasa/cli/telemetry.py
CHANGED
|
@@ -2,11 +2,11 @@ import argparse
|
|
|
2
2
|
import textwrap
|
|
3
3
|
from typing import List
|
|
4
4
|
|
|
5
|
+
import rasa.cli.utils
|
|
6
|
+
import rasa.shared.utils.cli
|
|
5
7
|
from rasa import telemetry
|
|
6
8
|
from rasa.cli import SubParsersAction
|
|
7
|
-
import rasa.cli.utils
|
|
8
9
|
from rasa.shared.constants import DOCS_URL_TELEMETRY
|
|
9
|
-
import rasa.shared.utils.cli
|
|
10
10
|
from rasa.utils import licensing
|
|
11
11
|
|
|
12
12
|
|
rasa/cli/test.py
CHANGED
|
@@ -2,31 +2,31 @@ import argparse
|
|
|
2
2
|
import asyncio
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
|
-
from typing import List, Optional, Text,
|
|
5
|
+
from typing import Any, Dict, List, Optional, Text, Union
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import rasa.cli.utils
|
|
8
8
|
import rasa.shared.data
|
|
9
|
-
from rasa.shared.exceptions import YamlException
|
|
10
|
-
import rasa.shared.utils.io
|
|
11
9
|
import rasa.shared.utils.cli
|
|
10
|
+
import rasa.shared.utils.io
|
|
11
|
+
import rasa.utils.common
|
|
12
|
+
from rasa.cli import SubParsersAction
|
|
12
13
|
from rasa.cli.arguments import test as arguments
|
|
13
14
|
from rasa.core.constants import (
|
|
14
15
|
FAILED_STORIES_FILE,
|
|
15
|
-
SUCCESSFUL_STORIES_FILE,
|
|
16
16
|
STORIES_WITH_WARNINGS_FILE,
|
|
17
|
+
SUCCESSFUL_STORIES_FILE,
|
|
17
18
|
)
|
|
18
19
|
from rasa.shared.constants import (
|
|
19
20
|
CONFIG_SCHEMA_FILE,
|
|
20
|
-
DEFAULT_E2E_TESTS_PATH,
|
|
21
21
|
DEFAULT_CONFIG_PATH,
|
|
22
|
-
DEFAULT_MODELS_PATH,
|
|
23
22
|
DEFAULT_DATA_PATH,
|
|
23
|
+
DEFAULT_E2E_TESTS_PATH,
|
|
24
|
+
DEFAULT_MODELS_PATH,
|
|
24
25
|
DEFAULT_RESULTS_PATH,
|
|
25
26
|
)
|
|
26
|
-
from rasa.shared.
|
|
27
|
-
import rasa.cli.utils
|
|
28
|
-
import rasa.utils.common
|
|
27
|
+
from rasa.shared.exceptions import YamlException
|
|
29
28
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
29
|
+
from rasa.shared.utils.yaml import validate_raw_yaml_using_schema_file
|
|
30
30
|
|
|
31
31
|
logger = logging.getLogger(__name__)
|
|
32
32
|
|
|
@@ -95,9 +95,9 @@ def _print_core_test_execution_info(args: argparse.Namespace) -> None:
|
|
|
95
95
|
async def run_core_test_async(args: argparse.Namespace) -> None:
|
|
96
96
|
"""Run core tests."""
|
|
97
97
|
from rasa.model_testing import (
|
|
98
|
-
test_core_models_in_directory,
|
|
99
98
|
test_core,
|
|
100
99
|
test_core_models,
|
|
100
|
+
test_core_models_in_directory,
|
|
101
101
|
)
|
|
102
102
|
|
|
103
103
|
stories = rasa.cli.utils.get_validated_path(
|
rasa/cli/utils.py
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import json
|
|
2
1
|
import argparse
|
|
3
|
-
import structlog
|
|
4
2
|
import importlib
|
|
3
|
+
import json
|
|
5
4
|
import os
|
|
6
5
|
import sys
|
|
7
6
|
import time
|
|
8
7
|
from pathlib import Path
|
|
9
8
|
from types import FrameType
|
|
10
|
-
from typing import Any, Dict, List, Optional,
|
|
9
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Union, overload
|
|
10
|
+
|
|
11
11
|
import randomname
|
|
12
|
+
import structlog
|
|
12
13
|
|
|
13
14
|
import rasa.shared.utils.cli
|
|
14
15
|
import rasa.shared.utils.io
|
|
15
|
-
from rasa
|
|
16
|
+
from rasa import telemetry
|
|
16
17
|
from rasa.shared.constants import (
|
|
17
18
|
ASSISTANT_ID_DEFAULT_VALUE,
|
|
18
19
|
ASSISTANT_ID_KEY,
|
|
19
20
|
DEFAULT_CONFIG_PATH,
|
|
20
21
|
)
|
|
21
|
-
from rasa import
|
|
22
|
+
from rasa.shared.importers.importer import TrainingDataImporter
|
|
22
23
|
from rasa.shared.utils.yaml import read_config_file
|
|
23
24
|
from rasa.utils.io import write_yaml
|
|
24
25
|
|
|
25
26
|
if TYPE_CHECKING:
|
|
26
27
|
from questionary import Question
|
|
27
28
|
from typing_extensions import Literal
|
|
29
|
+
|
|
28
30
|
from rasa.validator import Validator
|
|
29
31
|
|
|
30
32
|
structlogger = structlog.get_logger()
|
rasa/core/__init__.py
CHANGED
rasa/core/actions/action.py
CHANGED
|
@@ -41,10 +41,17 @@ from rasa.nlu.constants import (
|
|
|
41
41
|
RESPONSE_SELECTOR_UTTER_ACTION_KEY,
|
|
42
42
|
)
|
|
43
43
|
from rasa.shared.constants import (
|
|
44
|
+
ATTACHMENT,
|
|
45
|
+
BUTTONS,
|
|
46
|
+
CUSTOM,
|
|
44
47
|
DEFAULT_NLU_FALLBACK_INTENT_NAME,
|
|
45
48
|
DOCS_BASE_URL,
|
|
49
|
+
ELEMENTS,
|
|
46
50
|
FLOW_PREFIX,
|
|
51
|
+
IMAGE,
|
|
52
|
+
QUICK_REPLIES,
|
|
47
53
|
ROUTE_TO_CALM_SLOT,
|
|
54
|
+
TEXT,
|
|
48
55
|
UTTER_PREFIX,
|
|
49
56
|
)
|
|
50
57
|
from rasa.shared.core.constants import (
|
|
@@ -55,6 +62,8 @@ from rasa.shared.core.constants import (
|
|
|
55
62
|
ACTION_DEFAULT_FALLBACK_NAME,
|
|
56
63
|
ACTION_EXTRACT_SLOTS,
|
|
57
64
|
ACTION_LISTEN_NAME,
|
|
65
|
+
ACTION_METADATA_EXECUTION_ERROR_MESSAGE,
|
|
66
|
+
ACTION_METADATA_EXECUTION_SUCCESS,
|
|
58
67
|
ACTION_RESET_ROUTING,
|
|
59
68
|
ACTION_RESTART_NAME,
|
|
60
69
|
ACTION_REVERT_FALLBACK_EVENTS_NAME,
|
|
@@ -109,12 +118,12 @@ logger = logging.getLogger(__name__)
|
|
|
109
118
|
def default_actions(action_endpoint: Optional[EndpointConfig] = None) -> List["Action"]:
|
|
110
119
|
"""List default actions."""
|
|
111
120
|
from rasa.core.actions.action_clean_stack import ActionCleanStack
|
|
121
|
+
from rasa.core.actions.action_hangup import ActionHangup
|
|
122
|
+
from rasa.core.actions.action_repeat_bot_messages import ActionRepeatBotMessages
|
|
112
123
|
from rasa.core.actions.action_run_slot_rejections import ActionRunSlotRejections
|
|
113
124
|
from rasa.core.actions.action_trigger_chitchat import ActionTriggerChitchat
|
|
114
125
|
from rasa.core.actions.action_trigger_search import ActionTriggerSearch
|
|
115
126
|
from rasa.core.actions.two_stage_fallback import TwoStageFallbackAction
|
|
116
|
-
from rasa.core.actions.action_hangup import ActionHangup
|
|
117
|
-
from rasa.core.actions.action_repeat_bot_messages import ActionRepeatBotMessages
|
|
118
127
|
from rasa.dialogue_understanding.patterns.cancel import ActionCancelFlow
|
|
119
128
|
from rasa.dialogue_understanding.patterns.clarify import ActionClarifyFlows
|
|
120
129
|
from rasa.dialogue_understanding.patterns.correction import ActionCorrectFlowSlot
|
|
@@ -255,18 +264,18 @@ def action_for_name_or_text(
|
|
|
255
264
|
def create_bot_utterance(message: Dict[Text, Any]) -> BotUttered:
|
|
256
265
|
"""Create BotUttered event from message."""
|
|
257
266
|
bot_message = BotUttered(
|
|
258
|
-
text=message.pop(
|
|
267
|
+
text=message.pop(TEXT, None),
|
|
259
268
|
data={
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
269
|
+
ELEMENTS: message.pop(ELEMENTS, None),
|
|
270
|
+
QUICK_REPLIES: message.pop(QUICK_REPLIES, None),
|
|
271
|
+
BUTTONS: message.pop(BUTTONS, None),
|
|
263
272
|
# for legacy / compatibility reasons we need to set the image
|
|
264
273
|
# to be the attachment if there is no other attachment (the
|
|
265
274
|
# `.get` is intentional - no `pop` as we still need the image`
|
|
266
275
|
# property to set it in the following line)
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
276
|
+
ATTACHMENT: message.pop(ATTACHMENT, None) or message.get(IMAGE, None),
|
|
277
|
+
IMAGE: message.pop(IMAGE, None),
|
|
278
|
+
CUSTOM: message.pop(CUSTOM, None),
|
|
270
279
|
},
|
|
271
280
|
metadata=message,
|
|
272
281
|
)
|
|
@@ -310,22 +319,30 @@ class Action:
|
|
|
310
319
|
return f"{self.__class__.__name__}('{self.name()}')"
|
|
311
320
|
|
|
312
321
|
def event_for_successful_execution(
|
|
313
|
-
self,
|
|
322
|
+
self,
|
|
323
|
+
prediction: PolicyPrediction,
|
|
324
|
+
was_successful: bool,
|
|
325
|
+
error_message: Optional[str],
|
|
314
326
|
) -> ActionExecuted:
|
|
315
327
|
"""Event which should be logged for the successful execution of this action.
|
|
316
328
|
|
|
317
329
|
Args:
|
|
318
330
|
prediction: Prediction which led to the execution of this event.
|
|
331
|
+
was_successful: Whether the action was executed successfully.
|
|
332
|
+
error_message: Error message if the action was not executed successfully.
|
|
319
333
|
|
|
320
334
|
Returns:
|
|
321
335
|
Event which should be logged onto the tracker.
|
|
322
336
|
"""
|
|
337
|
+
metadata = prediction.action_metadata or {}
|
|
338
|
+
metadata[ACTION_METADATA_EXECUTION_SUCCESS] = was_successful
|
|
339
|
+
metadata[ACTION_METADATA_EXECUTION_ERROR_MESSAGE] = error_message
|
|
323
340
|
return ActionExecuted(
|
|
324
341
|
self.name(),
|
|
325
342
|
prediction.policy_name,
|
|
326
343
|
prediction.max_confidence,
|
|
327
344
|
hide_rule_turn=prediction.hide_rule_turn,
|
|
328
|
-
metadata=
|
|
345
|
+
metadata=metadata,
|
|
329
346
|
)
|
|
330
347
|
|
|
331
348
|
|
|
@@ -412,22 +429,31 @@ class ActionEndToEndResponse(Action):
|
|
|
412
429
|
return [create_bot_utterance(message)]
|
|
413
430
|
|
|
414
431
|
def event_for_successful_execution(
|
|
415
|
-
self,
|
|
432
|
+
self,
|
|
433
|
+
prediction: PolicyPrediction,
|
|
434
|
+
was_successful: bool,
|
|
435
|
+
error_message: Optional[str],
|
|
416
436
|
) -> ActionExecuted:
|
|
417
437
|
"""Event which should be logged for the successful execution of this action.
|
|
418
438
|
|
|
419
439
|
Args:
|
|
420
440
|
prediction: Prediction which led to the execution of this event.
|
|
441
|
+
was_successful: Whether the action was executed successfully.
|
|
442
|
+
error_message: Error message if the action was not executed successfully.
|
|
421
443
|
|
|
422
444
|
Returns:
|
|
423
445
|
Event which should be logged onto the tracker.
|
|
424
446
|
"""
|
|
447
|
+
metadata = prediction.action_metadata or {}
|
|
448
|
+
metadata[ACTION_METADATA_EXECUTION_SUCCESS] = was_successful
|
|
449
|
+
metadata[ACTION_METADATA_EXECUTION_ERROR_MESSAGE] = error_message
|
|
450
|
+
|
|
425
451
|
return ActionExecuted(
|
|
426
452
|
policy=prediction.policy_name,
|
|
427
453
|
confidence=prediction.max_confidence,
|
|
428
454
|
action_text=self.action_text,
|
|
429
455
|
hide_rule_turn=prediction.hide_rule_turn,
|
|
430
|
-
metadata=
|
|
456
|
+
metadata=metadata,
|
|
431
457
|
)
|
|
432
458
|
|
|
433
459
|
|
|
@@ -727,10 +753,7 @@ class ActionDeactivateLoop(Action):
|
|
|
727
753
|
|
|
728
754
|
|
|
729
755
|
class RemoteActionJSONValidator:
|
|
730
|
-
"""
|
|
731
|
-
A validator class for ensuring that the JSON response from a custom action executor
|
|
732
|
-
adheres to the expected schema.
|
|
733
|
-
"""
|
|
756
|
+
"""Check action responses for JSON schema validation."""
|
|
734
757
|
|
|
735
758
|
@staticmethod
|
|
736
759
|
def action_response_format_spec() -> Dict[Text, Any]:
|
|
@@ -753,8 +776,7 @@ class RemoteActionJSONValidator:
|
|
|
753
776
|
|
|
754
777
|
@classmethod
|
|
755
778
|
def validate(cls, result: Dict[Text, Any]) -> bool:
|
|
756
|
-
"""
|
|
757
|
-
Validate the given JSON result against the expected Action response schema.
|
|
779
|
+
"""Validate the given JSON result against the expected Action response schema.
|
|
758
780
|
|
|
759
781
|
This method uses a cached JSON schema validator to check if the provided result
|
|
760
782
|
conforms to the predefined schema.
|
|
@@ -788,8 +810,7 @@ class RemoteActionJSONValidator:
|
|
|
788
810
|
@classmethod
|
|
789
811
|
@lru_cache(maxsize=1)
|
|
790
812
|
def get_action_response_validator(cls) -> Draft202012Validator:
|
|
791
|
-
"""
|
|
792
|
-
Retrieve a cached JSON schema validator for the Action response schema.
|
|
813
|
+
"""Retrieve a cached JSON schema validator for the Action response schema.
|
|
793
814
|
|
|
794
815
|
Returns:
|
|
795
816
|
Draft202012Validator: An instance of the JSON schema validator.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Any, Dict, List, Optional
|
|
2
2
|
|
|
3
3
|
from rasa.core.actions.action import Action
|
|
4
4
|
from rasa.core.channels import OutputChannel
|
|
@@ -14,7 +14,7 @@ from rasa.dialogue_understanding.patterns.user_silence import (
|
|
|
14
14
|
)
|
|
15
15
|
from rasa.shared.core.constants import ACTION_REPEAT_BOT_MESSAGES
|
|
16
16
|
from rasa.shared.core.domain import Domain
|
|
17
|
-
from rasa.shared.core.events import
|
|
17
|
+
from rasa.shared.core.events import BotUttered, Event, UserUttered
|
|
18
18
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
19
19
|
|
|
20
20
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any, Dict, List, Optional,
|
|
1
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Union
|
|
2
2
|
|
|
3
3
|
import structlog
|
|
4
4
|
from jinja2 import Template
|
|
@@ -20,8 +20,8 @@ from rasa.shared.core.slots import (
|
|
|
20
20
|
)
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING:
|
|
23
|
-
from rasa.core.nlg import NaturalLanguageGenerator
|
|
24
23
|
from rasa.core.channels.channel import OutputChannel
|
|
24
|
+
from rasa.core.nlg import NaturalLanguageGenerator
|
|
25
25
|
from rasa.shared.core.domain import Domain
|
|
26
26
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
27
27
|
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
from typing import Any, Dict, Optional, Text
|
|
1
|
+
from typing import Any, Dict, List, Optional, Text
|
|
2
2
|
|
|
3
3
|
import structlog
|
|
4
|
+
|
|
5
|
+
from rasa.core.actions import action
|
|
6
|
+
from rasa.core.channels import OutputChannel
|
|
7
|
+
from rasa.core.nlg import NaturalLanguageGenerator
|
|
4
8
|
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
5
9
|
FlowStackFrameType,
|
|
6
10
|
UserFlowStackFrame,
|
|
7
11
|
)
|
|
8
12
|
from rasa.dialogue_understanding.stack.utils import top_user_flow_frame
|
|
9
|
-
from rasa.core.actions import action
|
|
10
|
-
from rasa.core.channels import OutputChannel
|
|
11
13
|
from rasa.shared.constants import FLOW_PREFIX
|
|
12
|
-
|
|
13
14
|
from rasa.shared.core.domain import Domain
|
|
14
15
|
from rasa.shared.core.events import (
|
|
15
16
|
ActiveLoop,
|
|
@@ -17,7 +18,6 @@ from rasa.shared.core.events import (
|
|
|
17
18
|
FlowInterrupted,
|
|
18
19
|
SlotSet,
|
|
19
20
|
)
|
|
20
|
-
from rasa.core.nlg import NaturalLanguageGenerator
|
|
21
21
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
22
22
|
|
|
23
23
|
structlogger = structlog.get_logger(__name__)
|
rasa/core/actions/forms.py
CHANGED
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import copy
|
|
2
|
-
from typing import Text, List, Optional, Union, Any, Dict, Set
|
|
3
2
|
import itertools
|
|
3
|
+
import json
|
|
4
4
|
import logging
|
|
5
|
+
from typing import Any, Dict, List, Optional, Set, Text, Union
|
|
6
|
+
|
|
5
7
|
import structlog
|
|
6
|
-
import json
|
|
7
8
|
|
|
8
9
|
from rasa.core.actions import action
|
|
9
|
-
from rasa.core.actions.loops import LoopAction
|
|
10
|
-
from rasa.core.channels import OutputChannel
|
|
11
|
-
from rasa.shared.core.domain import Domain, KEY_SLOTS
|
|
12
|
-
from rasa.shared.core.constants import SlotMappingType, SLOT_MAPPINGS, MAPPING_TYPE
|
|
13
|
-
|
|
14
10
|
from rasa.core.actions.action import RemoteAction
|
|
15
11
|
from rasa.core.actions.action_exceptions import ActionExecutionRejection
|
|
12
|
+
from rasa.core.actions.loops import LoopAction
|
|
13
|
+
from rasa.core.channels import OutputChannel
|
|
14
|
+
from rasa.core.nlg import NaturalLanguageGenerator
|
|
15
|
+
from rasa.shared.constants import UTTER_PREFIX
|
|
16
16
|
from rasa.shared.core.constants import (
|
|
17
17
|
ACTION_EXTRACT_SLOTS,
|
|
18
18
|
ACTION_LISTEN_NAME,
|
|
19
|
+
MAPPING_TYPE,
|
|
19
20
|
REQUESTED_SLOT,
|
|
21
|
+
SLOT_MAPPINGS,
|
|
22
|
+
SlotMappingType,
|
|
20
23
|
)
|
|
21
|
-
from rasa.shared.
|
|
24
|
+
from rasa.shared.core.domain import KEY_SLOTS, Domain
|
|
22
25
|
from rasa.shared.core.events import (
|
|
23
|
-
Event,
|
|
24
|
-
SlotSet,
|
|
25
26
|
ActionExecuted,
|
|
26
|
-
ActiveLoop,
|
|
27
27
|
ActionExecutionRejected,
|
|
28
|
+
ActiveLoop,
|
|
29
|
+
Event,
|
|
28
30
|
Restarted,
|
|
31
|
+
SlotSet,
|
|
29
32
|
)
|
|
30
|
-
from rasa.core.nlg import NaturalLanguageGenerator
|
|
31
33
|
from rasa.shared.core.slot_mappings import SlotMapping
|
|
32
34
|
from rasa.shared.core.slots import ListSlot
|
|
33
35
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Any, Dict, Optional
|
|
3
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional
|
|
4
4
|
|
|
5
5
|
import aiohttp
|
|
6
6
|
|
|
@@ -94,6 +94,13 @@ class HTTPCustomActionExecutor(CustomActionExecutor):
|
|
|
94
94
|
)
|
|
95
95
|
logger.error(exception.message)
|
|
96
96
|
raise exception
|
|
97
|
+
elif e.status == 404:
|
|
98
|
+
message = (
|
|
99
|
+
f"Custom action implementation with name '{self.action_name}' "
|
|
100
|
+
f"not found."
|
|
101
|
+
)
|
|
102
|
+
logger.error(message)
|
|
103
|
+
raise RasaException(message) from e
|
|
97
104
|
else:
|
|
98
105
|
raise RasaException(
|
|
99
106
|
f"Failed to execute custom action '{self.action_name}'"
|
rasa/core/actions/loops.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from abc import ABC
|
|
2
|
-
from typing import Any, Dict, List,
|
|
2
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text
|
|
3
3
|
|
|
4
4
|
from rasa.core.actions.action import Action
|
|
5
|
-
from rasa.shared.core.events import
|
|
5
|
+
from rasa.shared.core.events import ActiveLoop, Event
|
|
6
6
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
8
|
from rasa.core.channels import OutputChannel
|
|
9
|
-
from rasa.shared.core.domain import Domain
|
|
10
9
|
from rasa.core.nlg import NaturalLanguageGenerator
|
|
10
|
+
from rasa.shared.core.domain import Domain
|
|
11
11
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
12
12
|
|
|
13
13
|
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
import time
|
|
3
|
-
from typing import List,
|
|
3
|
+
from typing import List, Optional, Text
|
|
4
4
|
|
|
5
5
|
from rasa.core.actions import action
|
|
6
6
|
from rasa.core.actions.loops import LoopAction
|
|
7
7
|
from rasa.core.channels import OutputChannel
|
|
8
|
-
from rasa.shared.core.domain import Domain
|
|
9
|
-
from rasa.shared.core.events import (
|
|
10
|
-
Event,
|
|
11
|
-
UserUtteranceReverted,
|
|
12
|
-
ActionExecuted,
|
|
13
|
-
UserUttered,
|
|
14
|
-
ActiveLoop,
|
|
15
|
-
)
|
|
16
8
|
from rasa.core.nlg import NaturalLanguageGenerator
|
|
17
|
-
from rasa.shared.core.trackers import DialogueStateTracker, EventVerbosity
|
|
18
9
|
from rasa.shared.constants import DEFAULT_NLU_FALLBACK_INTENT_NAME
|
|
19
10
|
from rasa.shared.core.constants import (
|
|
20
|
-
USER_INTENT_OUT_OF_SCOPE,
|
|
21
|
-
ACTION_LISTEN_NAME,
|
|
22
|
-
ACTION_DEFAULT_FALLBACK_NAME,
|
|
23
11
|
ACTION_DEFAULT_ASK_AFFIRMATION_NAME,
|
|
24
12
|
ACTION_DEFAULT_ASK_REPHRASE_NAME,
|
|
13
|
+
ACTION_DEFAULT_FALLBACK_NAME,
|
|
14
|
+
ACTION_LISTEN_NAME,
|
|
25
15
|
ACTION_TWO_STAGE_FALLBACK_NAME,
|
|
16
|
+
USER_INTENT_OUT_OF_SCOPE,
|
|
17
|
+
)
|
|
18
|
+
from rasa.shared.core.domain import Domain
|
|
19
|
+
from rasa.shared.core.events import (
|
|
20
|
+
ActionExecuted,
|
|
21
|
+
ActiveLoop,
|
|
22
|
+
Event,
|
|
23
|
+
UserUtteranceReverted,
|
|
24
|
+
UserUttered,
|
|
26
25
|
)
|
|
26
|
+
from rasa.shared.core.trackers import DialogueStateTracker, EventVerbosity
|
|
27
27
|
from rasa.shared.nlu.constants import INTENT, PREDICTED_CONFIDENCE_KEY
|
|
28
28
|
from rasa.utils.endpoints import EndpointConfig
|
|
29
29
|
|
|
@@ -2,13 +2,12 @@ import logging
|
|
|
2
2
|
from typing import Iterable, Optional, Text
|
|
3
3
|
|
|
4
4
|
from rasa.core.brokers.broker import EventBroker
|
|
5
|
+
from rasa.core.secrets_manager.secret_manager import EndpointResolver
|
|
5
6
|
from rasa.core.tracker_store import TrackerStore, create_tracker_store
|
|
6
7
|
from rasa.shared.core.domain import Domain
|
|
7
8
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
8
9
|
from rasa.utils.endpoints import EndpointConfig
|
|
9
10
|
|
|
10
|
-
from rasa.core.secrets_manager.secret_manager import EndpointResolver
|
|
11
|
-
|
|
12
11
|
logger = logging.getLogger(__name__)
|
|
13
12
|
|
|
14
13
|
DEFAULT_RETRIES = 3
|
rasa/core/brokers/broker.py
CHANGED
rasa/core/brokers/file.py
CHANGED
rasa/core/brokers/kafka.py
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import os
|
|
3
2
|
import json
|
|
4
3
|
import logging
|
|
4
|
+
import os
|
|
5
|
+
import threading
|
|
6
|
+
import time
|
|
7
|
+
from asyncio import AbstractEventLoop
|
|
5
8
|
from functools import cached_property
|
|
9
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Union
|
|
6
10
|
|
|
7
11
|
import structlog
|
|
8
|
-
import threading
|
|
9
|
-
from asyncio import AbstractEventLoop
|
|
10
|
-
from typing import Any, Text, List, Optional, Union, Dict, TYPE_CHECKING
|
|
11
|
-
import time
|
|
12
12
|
|
|
13
|
+
import rasa.shared.utils.common
|
|
13
14
|
from rasa.core.brokers.broker import EventBroker
|
|
14
15
|
from rasa.core.exceptions import KafkaProducerInitializationError
|
|
15
16
|
from rasa.shared.utils.io import DEFAULT_ENCODING
|
|
16
17
|
from rasa.utils.endpoints import EndpointConfig
|
|
17
|
-
import rasa.shared.utils.common
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
|
-
from confluent_kafka import KafkaError,
|
|
20
|
+
from confluent_kafka import KafkaError, Message, Producer
|
|
21
21
|
|
|
22
22
|
logger = logging.getLogger(__name__)
|
|
23
23
|
structlogger = structlog.get_logger()
|
|
@@ -293,7 +293,7 @@ def kafka_error_callback(err: "KafkaError") -> None:
|
|
|
293
293
|
Any exception raised from this callback will be re-raised from the
|
|
294
294
|
triggering flush() call.
|
|
295
295
|
"""
|
|
296
|
-
from confluent_kafka import
|
|
296
|
+
from confluent_kafka import KafkaError, KafkaException
|
|
297
297
|
|
|
298
298
|
# handle authentication / connection related issues, likely pointing
|
|
299
299
|
# to a configuration error
|
rasa/core/brokers/pika.py
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import json
|
|
3
3
|
import logging
|
|
4
|
-
from functools import cached_property
|
|
5
|
-
|
|
6
|
-
import structlog
|
|
7
4
|
import os
|
|
8
5
|
import ssl
|
|
9
6
|
from asyncio import AbstractEventLoop
|
|
10
7
|
from collections import deque
|
|
11
|
-
from
|
|
8
|
+
from functools import cached_property
|
|
9
|
+
from typing import Any, Deque, Dict, List, Optional, Set, Text, Tuple, Union, cast
|
|
12
10
|
from urllib.parse import urlparse
|
|
13
11
|
|
|
14
12
|
import aio_pika
|
|
13
|
+
import structlog
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
from rasa.shared.constants import DOCS_URL_PIKA_EVENT_BROKER
|
|
18
|
-
from rasa.core.brokers.broker import EventBroker
|
|
15
|
+
import rasa.shared.utils.common
|
|
19
16
|
import rasa.shared.utils.io
|
|
20
|
-
from rasa.
|
|
17
|
+
from rasa.core.brokers.broker import EventBroker
|
|
18
|
+
from rasa.shared.constants import DOCS_URL_PIKA_EVENT_BROKER
|
|
19
|
+
from rasa.shared.exceptions import RasaException
|
|
21
20
|
from rasa.shared.utils.io import DEFAULT_ENCODING
|
|
22
|
-
|
|
21
|
+
from rasa.utils.endpoints import EndpointConfig
|
|
23
22
|
|
|
24
23
|
logger = logging.getLogger(__name__)
|
|
25
24
|
structlogger = structlog.get_logger()
|
rasa/core/brokers/sql.py
CHANGED
|
@@ -2,11 +2,11 @@ import contextlib
|
|
|
2
2
|
import json
|
|
3
3
|
import logging
|
|
4
4
|
from asyncio import AbstractEventLoop
|
|
5
|
-
from typing import Any, Dict, Optional, Text
|
|
5
|
+
from typing import Any, Dict, Generator, Optional, Text
|
|
6
6
|
|
|
7
|
-
from sqlalchemy.orm import Session
|
|
8
7
|
from sqlalchemy import Column, Integer, String
|
|
9
8
|
from sqlalchemy import Text as SqlAlchemyText # to avoid name clash with typing.Text
|
|
9
|
+
from sqlalchemy.orm import Session
|
|
10
10
|
|
|
11
11
|
from rasa.core.brokers.broker import EventBroker
|
|
12
12
|
from rasa.utils.endpoints import EndpointConfig
|
|
@@ -44,9 +44,10 @@ class SQLEventBroker(EventBroker):
|
|
|
44
44
|
password: Optional[Text] = None,
|
|
45
45
|
) -> None:
|
|
46
46
|
"""Initializes `SQLBrokerEvent`."""
|
|
47
|
-
from rasa.core.tracker_store import SQLTrackerStore
|
|
48
47
|
import sqlalchemy.orm
|
|
49
48
|
|
|
49
|
+
from rasa.core.tracker_store import SQLTrackerStore
|
|
50
|
+
|
|
50
51
|
engine_url = SQLTrackerStore.get_db_url(
|
|
51
52
|
dialect, host, port, db, username, password
|
|
52
53
|
)
|
rasa/core/channels/__init__.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# ruff: noqa: I001
|
|
1
2
|
from typing import Text, Dict, List, Type
|
|
2
3
|
|
|
3
4
|
from rasa.core.channels.channel import ( # noqa: F401
|
|
@@ -31,6 +32,7 @@ from rasa.core.channels.vier_cvg import CVGInput
|
|
|
31
32
|
from rasa.core.channels.voice_stream.twilio_media_streams import (
|
|
32
33
|
TwilioMediaStreamsInputChannel,
|
|
33
34
|
)
|
|
35
|
+
from rasa.core.channels.studio_chat import StudioChatInput
|
|
34
36
|
|
|
35
37
|
input_channel_classes: List[Type[InputChannel]] = [
|
|
36
38
|
CmdlineInput,
|
|
@@ -53,6 +55,7 @@ input_channel_classes: List[Type[InputChannel]] = [
|
|
|
53
55
|
JambonzVoiceReadyInput,
|
|
54
56
|
TwilioMediaStreamsInputChannel,
|
|
55
57
|
BrowserAudioInputChannel,
|
|
58
|
+
StudioChatInput,
|
|
56
59
|
]
|
|
57
60
|
|
|
58
61
|
# Mapping from an input channel name to its class to allow name based lookup.
|
|
@@ -3,7 +3,7 @@ import json
|
|
|
3
3
|
import logging
|
|
4
4
|
import re
|
|
5
5
|
from http import HTTPStatus
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import Any, Awaitable, Callable, Dict, Iterable, List, Optional, Text
|
|
7
7
|
|
|
8
8
|
import jwt
|
|
9
9
|
import requests
|
|
@@ -14,7 +14,7 @@ from sanic import Blueprint, response
|
|
|
14
14
|
from sanic.request import Request
|
|
15
15
|
from sanic.response import HTTPResponse
|
|
16
16
|
|
|
17
|
-
from rasa.core.channels.channel import
|
|
17
|
+
from rasa.core.channels.channel import InputChannel, OutputChannel, UserMessage
|
|
18
18
|
|
|
19
19
|
MICROSOFT_OPEN_ID_URI = (
|
|
20
20
|
"https://login.botframework.com/v1/.well-known/openidconfiguration"
|