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/tracing/config.py
CHANGED
|
@@ -30,8 +30,8 @@ from rasa.dialogue_understanding.commands import (
|
|
|
30
30
|
)
|
|
31
31
|
from rasa.dialogue_understanding.generator import (
|
|
32
32
|
LLMCommandGenerator,
|
|
33
|
-
SingleStepLLMCommandGenerator,
|
|
34
33
|
MultiStepLLMCommandGenerator,
|
|
34
|
+
SingleStepLLMCommandGenerator,
|
|
35
35
|
)
|
|
36
36
|
from rasa.dialogue_understanding.generator.flow_retrieval import FlowRetrieval
|
|
37
37
|
from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
|
|
@@ -40,11 +40,11 @@ from rasa.engine.training.graph_trainer import GraphTrainer
|
|
|
40
40
|
from rasa.tracing.constants import (
|
|
41
41
|
ENDPOINTS_ENDPOINT_KEY,
|
|
42
42
|
ENDPOINTS_INSECURE_KEY,
|
|
43
|
+
ENDPOINTS_METRICS_KEY,
|
|
43
44
|
ENDPOINTS_OTLP_BACKEND_TYPE,
|
|
45
|
+
ENDPOINTS_ROOT_CERTIFICATES_KEY,
|
|
44
46
|
ENDPOINTS_TRACING_KEY,
|
|
45
47
|
ENDPOINTS_TRACING_SERVICE_NAME_KEY,
|
|
46
|
-
ENDPOINTS_ROOT_CERTIFICATES_KEY,
|
|
47
|
-
ENDPOINTS_METRICS_KEY,
|
|
48
48
|
)
|
|
49
49
|
from rasa.tracing.instrumentation import instrumentation
|
|
50
50
|
from rasa.tracing.metric_instrument_provider import MetricInstrumentProvider
|
|
@@ -578,6 +578,7 @@ def extract_attrs_for_run_step(
|
|
|
578
578
|
tracker: DialogueStateTracker,
|
|
579
579
|
available_actions: List[str],
|
|
580
580
|
flows: FlowsList,
|
|
581
|
+
previous_step_id: Text,
|
|
581
582
|
) -> Dict[str, Any]:
|
|
582
583
|
current_context = extract_current_context_attribute(stack)
|
|
583
584
|
|
|
@@ -586,6 +587,7 @@ def extract_attrs_for_run_step(
|
|
|
586
587
|
"step_description": step.description if step.description else "None",
|
|
587
588
|
"current_flow_id": flow.id,
|
|
588
589
|
"current_context": json.dumps(current_context),
|
|
590
|
+
"previous_step_id": previous_step_id,
|
|
589
591
|
}
|
|
590
592
|
|
|
591
593
|
|
|
@@ -24,7 +24,7 @@ from opentelemetry.sdk.trace import TracerProvider
|
|
|
24
24
|
from opentelemetry.trace import SpanKind, Tracer
|
|
25
25
|
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator
|
|
26
26
|
|
|
27
|
-
from rasa.core.actions.action import Action,
|
|
27
|
+
from rasa.core.actions.action import Action, CustomActionExecutor, RemoteAction
|
|
28
28
|
from rasa.core.actions.custom_action_executor import RetryCustomActionExecutor
|
|
29
29
|
from rasa.core.actions.grpc_custom_action_executor import GRPCCustomActionExecutor
|
|
30
30
|
from rasa.core.agent import Agent
|
|
@@ -63,13 +63,13 @@ from rasa.tracing.instrumentation.intentless_policy_instrumentation import (
|
|
|
63
63
|
_instrument_select_response_examples,
|
|
64
64
|
)
|
|
65
65
|
from rasa.tracing.instrumentation.metrics import (
|
|
66
|
+
record_callable_duration_metrics,
|
|
66
67
|
record_llm_command_generator_metrics,
|
|
67
|
-
record_single_step_llm_command_generator_metrics,
|
|
68
68
|
record_multi_step_llm_command_generator_metrics,
|
|
69
|
-
record_callable_duration_metrics,
|
|
70
69
|
record_request_size_in_bytes,
|
|
70
|
+
record_single_step_llm_command_generator_metrics,
|
|
71
71
|
)
|
|
72
|
-
from rasa.utils.endpoints import
|
|
72
|
+
from rasa.utils.endpoints import EndpointConfig, concat_url
|
|
73
73
|
|
|
74
74
|
# The `TypeVar` representing the return type for a function to be wrapped.
|
|
75
75
|
S = TypeVar("S")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Any, Dict
|
|
2
2
|
|
|
3
3
|
import psutil
|
|
4
4
|
|
|
@@ -7,29 +7,29 @@ from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
|
|
|
7
7
|
from rasa.core.policies.intentless_policy import IntentlessPolicy
|
|
8
8
|
from rasa.dialogue_understanding.generator import (
|
|
9
9
|
LLMCommandGenerator,
|
|
10
|
-
SingleStepLLMCommandGenerator,
|
|
11
10
|
MultiStepLLMCommandGenerator,
|
|
11
|
+
SingleStepLLMCommandGenerator,
|
|
12
12
|
)
|
|
13
13
|
from rasa.tracing.constants import (
|
|
14
|
+
CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
15
|
+
ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
16
|
+
INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
14
17
|
LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
18
|
+
LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
15
19
|
LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
16
20
|
LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
17
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
18
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
19
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
20
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
21
21
|
MULTI_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
22
|
+
MULTI_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
22
23
|
MULTI_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
23
24
|
MULTI_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
24
|
-
MULTI_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
25
25
|
PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME,
|
|
26
|
-
LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
27
|
-
ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
28
|
-
INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
29
|
-
CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
30
26
|
RASA_CLIENT_REQUEST_BODY_SIZE_METRIC_NAME,
|
|
31
27
|
RASA_CLIENT_REQUEST_DURATION_METRIC_NAME,
|
|
32
28
|
REQUEST_BODY_SIZE_IN_BYTES_ATTRIBUTE_NAME,
|
|
29
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
30
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
31
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
32
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
33
33
|
)
|
|
34
34
|
from rasa.tracing.metric_instrument_provider import MetricInstrumentProvider
|
|
35
35
|
from rasa.utils.endpoints import EndpointConfig
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
from typing import ClassVar, Dict
|
|
1
|
+
from typing import Any, ClassVar, Dict
|
|
2
2
|
|
|
3
3
|
from opentelemetry.metrics import get_meter_provider
|
|
4
4
|
from opentelemetry.sdk.metrics import Meter
|
|
5
5
|
|
|
6
|
-
from rasa.utils.singleton import Singleton
|
|
7
6
|
from rasa.tracing.constants import (
|
|
7
|
+
CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
8
|
+
DURATION_UNIT_NAME,
|
|
9
|
+
ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
10
|
+
INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
11
|
+
LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
|
|
8
12
|
LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
13
|
+
LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
9
14
|
LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
10
15
|
LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
11
|
-
LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
12
|
-
LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
|
|
13
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
14
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
15
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
16
|
-
SINGLE_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
17
16
|
MULTI_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
17
|
+
MULTI_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
18
18
|
MULTI_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
19
19
|
MULTI_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
20
|
-
MULTI_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
21
|
-
DURATION_UNIT_NAME,
|
|
22
|
-
ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
23
|
-
INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
24
|
-
CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
25
|
-
RASA_CLIENT_REQUEST_DURATION_METRIC_NAME,
|
|
26
20
|
RASA_CLIENT_REQUEST_BODY_SIZE_METRIC_NAME,
|
|
21
|
+
RASA_CLIENT_REQUEST_DURATION_METRIC_NAME,
|
|
22
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
|
|
23
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
|
|
24
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
|
|
25
|
+
SINGLE_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
|
|
27
26
|
)
|
|
27
|
+
from rasa.utils.singleton import Singleton
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class MetricInstrumentProvider(metaclass=Singleton):
|
rasa/utils/common.py
CHANGED
|
@@ -8,38 +8,39 @@ import shutil
|
|
|
8
8
|
import tempfile
|
|
9
9
|
import warnings
|
|
10
10
|
from pathlib import Path
|
|
11
|
+
from socket import SOCK_DGRAM, SOCK_STREAM
|
|
11
12
|
from types import TracebackType
|
|
12
13
|
from typing import (
|
|
13
14
|
Any,
|
|
15
|
+
ContextManager,
|
|
14
16
|
Coroutine,
|
|
15
17
|
Dict,
|
|
16
18
|
List,
|
|
17
19
|
Optional,
|
|
20
|
+
Set,
|
|
18
21
|
Text,
|
|
22
|
+
Tuple,
|
|
19
23
|
Type,
|
|
20
24
|
TypeVar,
|
|
21
25
|
Union,
|
|
22
|
-
ContextManager,
|
|
23
|
-
Set,
|
|
24
|
-
Tuple,
|
|
25
26
|
)
|
|
26
27
|
|
|
27
|
-
from socket import SOCK_DGRAM, SOCK_STREAM
|
|
28
28
|
import numpy as np
|
|
29
|
+
|
|
30
|
+
import rasa.shared.utils.io
|
|
29
31
|
import rasa.utils.io
|
|
30
32
|
from rasa.anonymization import ENV_LOG_LEVEL_FAKER, ENV_LOG_LEVEL_PRESIDIO
|
|
31
33
|
from rasa.constants import (
|
|
32
34
|
DEFAULT_LOG_LEVEL_LIBRARIES,
|
|
35
|
+
ENV_LOG_LEVEL_KAFKA,
|
|
33
36
|
ENV_LOG_LEVEL_LIBRARIES,
|
|
34
37
|
ENV_LOG_LEVEL_MATPLOTLIB,
|
|
35
38
|
ENV_LOG_LEVEL_MLFLOW,
|
|
36
39
|
ENV_LOG_LEVEL_RABBITMQ,
|
|
37
|
-
ENV_LOG_LEVEL_KAFKA,
|
|
38
40
|
)
|
|
39
41
|
from rasa.shared.constants import DEFAULT_LOG_LEVEL, ENV_LOG_LEVEL, TCP_PROTOCOL
|
|
40
42
|
from rasa.shared.exceptions import RasaException
|
|
41
|
-
|
|
42
|
-
from rasa.shared.utils.yaml import read_yaml_file, write_yaml, read_config_file
|
|
43
|
+
from rasa.shared.utils.yaml import read_config_file, read_yaml_file, write_yaml
|
|
43
44
|
|
|
44
45
|
logger = logging.getLogger(__name__)
|
|
45
46
|
|
|
@@ -146,7 +147,9 @@ def read_global_config(path: Text) -> Dict[Text, Any]:
|
|
|
146
147
|
"""
|
|
147
148
|
# noinspection PyBroadException
|
|
148
149
|
try:
|
|
149
|
-
|
|
150
|
+
# set expand_env_vars to False because this is a global config file
|
|
151
|
+
# used for telemetry, in which case we don't need to expand env vars
|
|
152
|
+
return read_config_file(path, expand_env_vars=False)
|
|
150
153
|
except Exception:
|
|
151
154
|
# if things go south we pretend there is no config
|
|
152
155
|
return {}
|
|
@@ -299,7 +302,7 @@ def update_sanic_log_level(
|
|
|
299
302
|
syslog_protocol: Optional[Text] = None,
|
|
300
303
|
) -> None:
|
|
301
304
|
"""Set the log level to 'LOG_LEVEL_LIBRARIES' environment variable ."""
|
|
302
|
-
from sanic.log import
|
|
305
|
+
from sanic.log import access_logger, error_logger, logger
|
|
303
306
|
|
|
304
307
|
log_level = os.environ.get(ENV_LOG_LEVEL_LIBRARIES, DEFAULT_LOG_LEVEL_LIBRARIES)
|
|
305
308
|
|
rasa/utils/endpoints.py
CHANGED
rasa/utils/io.py
CHANGED
|
@@ -2,22 +2,22 @@ import asyncio
|
|
|
2
2
|
import filecmp
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
|
+
import re
|
|
5
6
|
import tempfile
|
|
6
7
|
import warnings
|
|
7
|
-
import re
|
|
8
8
|
from asyncio import AbstractEventLoop
|
|
9
9
|
from collections import OrderedDict
|
|
10
10
|
from io import StringIO
|
|
11
11
|
from pathlib import Path
|
|
12
12
|
from typing import (
|
|
13
|
-
|
|
14
|
-
Text,
|
|
13
|
+
TYPE_CHECKING,
|
|
15
14
|
Any,
|
|
16
|
-
|
|
15
|
+
Callable,
|
|
17
16
|
List,
|
|
17
|
+
Optional,
|
|
18
|
+
Text,
|
|
18
19
|
Type,
|
|
19
|
-
|
|
20
|
-
TYPE_CHECKING,
|
|
20
|
+
Union,
|
|
21
21
|
)
|
|
22
22
|
|
|
23
23
|
from ruamel import yaml
|
|
@@ -153,8 +153,8 @@ def create_validator(
|
|
|
153
153
|
"""Helper method to create `Validator` classes from callable functions. Should be
|
|
154
154
|
removed when questionary supports `Validator` objects.
|
|
155
155
|
"""
|
|
156
|
-
from prompt_toolkit.validation import Validator, ValidationError
|
|
157
156
|
from prompt_toolkit.document import Document
|
|
157
|
+
from prompt_toolkit.validation import ValidationError, Validator
|
|
158
158
|
|
|
159
159
|
class FunctionValidator(Validator):
|
|
160
160
|
@staticmethod
|
rasa/utils/licensing.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from asyncio import AbstractEventLoop
|
|
2
1
|
import hashlib
|
|
3
2
|
import os
|
|
4
3
|
import random
|
|
@@ -6,19 +5,19 @@ import re
|
|
|
6
5
|
import time
|
|
7
6
|
import typing
|
|
8
7
|
import uuid
|
|
8
|
+
from asyncio import AbstractEventLoop
|
|
9
9
|
from datetime import datetime, timezone
|
|
10
10
|
from typing import Any, Callable, Dict, Optional, Set, Text, TypeVar
|
|
11
11
|
|
|
12
12
|
import jwt
|
|
13
|
+
import structlog
|
|
13
14
|
from dotenv import dotenv_values
|
|
14
15
|
from sanic import Sanic
|
|
15
|
-
import structlog
|
|
16
|
-
from rasa import telemetry
|
|
17
16
|
|
|
17
|
+
from rasa import telemetry
|
|
18
18
|
from rasa.core import jobs
|
|
19
19
|
from rasa.shared.utils.cli import print_error_and_exit
|
|
20
20
|
|
|
21
|
-
|
|
22
21
|
if typing.TYPE_CHECKING:
|
|
23
22
|
from rasa.core.tracker_store import TrackerStore
|
|
24
23
|
|
rasa/utils/log_utils.py
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import logging
|
|
4
|
+
import os
|
|
4
5
|
import sys
|
|
5
6
|
from typing import Any, Dict, Optional
|
|
6
7
|
|
|
7
8
|
import structlog
|
|
8
|
-
from structlog_sentry import SentryProcessor
|
|
9
9
|
from structlog.dev import ConsoleRenderer
|
|
10
10
|
from structlog.typing import EventDict, WrappedLogger
|
|
11
|
+
from structlog_sentry import SentryProcessor
|
|
12
|
+
|
|
13
|
+
from rasa.plugin import plugin_manager
|
|
11
14
|
from rasa.shared.constants import (
|
|
12
|
-
ENV_LOG_LEVEL,
|
|
13
15
|
DEFAULT_LOG_LEVEL,
|
|
16
|
+
DEFAULT_LOG_LEVEL_LLM,
|
|
17
|
+
ENV_LOG_LEVEL,
|
|
14
18
|
ENV_LOG_LEVEL_LLM,
|
|
15
19
|
ENV_LOG_LEVEL_LLM_MODULE_NAMES,
|
|
16
|
-
DEFAULT_LOG_LEVEL_LLM,
|
|
17
20
|
)
|
|
18
|
-
from rasa.plugin import plugin_manager
|
|
19
|
-
|
|
20
21
|
|
|
21
22
|
FORCE_JSON_LOGGING = os.environ.get("FORCE_JSON_LOGGING")
|
|
22
23
|
|
rasa/utils/ml_utils.py
CHANGED
|
@@ -5,6 +5,7 @@ import numpy as np
|
|
|
5
5
|
import structlog
|
|
6
6
|
from langchain.schema.embeddings import Embeddings
|
|
7
7
|
from langchain_community.vectorstores import FAISS
|
|
8
|
+
|
|
8
9
|
from rasa.shared.constants import REQUIRED_SLOTS_KEY
|
|
9
10
|
from rasa.shared.core.domain import KEY_RESPONSES_TEXT, Domain
|
|
10
11
|
from rasa.shared.utils.llm import AI
|
rasa/utils/plotting.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import logging
|
|
2
1
|
import itertools
|
|
2
|
+
import logging
|
|
3
3
|
import os
|
|
4
4
|
from functools import wraps
|
|
5
|
+
from typing import Any, Callable, List, Optional, Text, Tuple, TypeVar, Union
|
|
5
6
|
|
|
6
|
-
import numpy as np
|
|
7
|
-
from typing import Any, Callable, List, Optional, Text, TypeVar, Union, Tuple
|
|
8
7
|
import matplotlib
|
|
8
|
+
import numpy as np
|
|
9
9
|
from matplotlib.ticker import FormatStrFormatter
|
|
10
10
|
|
|
11
11
|
import rasa.shared.utils.io
|
rasa/utils/tensorflow/crf.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
from typing import Any, List, Optional, Tuple, Union
|
|
2
|
+
|
|
1
3
|
import tensorflow as tf
|
|
2
4
|
from tensorflow import TensorShape
|
|
3
5
|
from tensorflow.types.experimental import TensorLike
|
|
4
|
-
from typing import Tuple, Any, List, Union, Optional
|
|
5
|
-
|
|
6
6
|
|
|
7
7
|
# original code taken from
|
|
8
8
|
# https://github.com/tensorflow/addons/blob/b8cab7fd61af4f697a1cdae4f51c37c346b9c6f0/tensorflow_addons/text/crf.py
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import logging
|
|
1
2
|
import math
|
|
2
|
-
from typing import
|
|
3
|
+
from typing import Any, Dict, List, Optional, Text, Tuple, Union, cast
|
|
3
4
|
|
|
4
|
-
import logging
|
|
5
|
-
import scipy.sparse
|
|
6
5
|
import numpy as np
|
|
6
|
+
import scipy.sparse
|
|
7
7
|
from tensorflow.keras.utils import Sequence
|
|
8
8
|
|
|
9
|
-
from rasa.utils.tensorflow.constants import
|
|
10
|
-
from rasa.utils.tensorflow.model_data import
|
|
9
|
+
from rasa.utils.tensorflow.constants import BALANCED, SEQUENCE
|
|
10
|
+
from rasa.utils.tensorflow.model_data import Data, FeatureArray, RasaModelData
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
13
13
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
-
from typing import Text, Dict
|
|
4
3
|
import typing
|
|
4
|
+
from typing import Dict, Text
|
|
5
5
|
|
|
6
6
|
import rasa.shared.utils.io
|
|
7
7
|
from rasa.constants import (
|
|
8
|
-
ENV_GPU_CONFIG,
|
|
9
8
|
ENV_CPU_INTER_OP_CONFIG,
|
|
10
9
|
ENV_CPU_INTRA_OP_CONFIG,
|
|
10
|
+
ENV_GPU_CONFIG,
|
|
11
11
|
)
|
|
12
|
-
from rasa.utils.tensorflow.constants import TF_DETERMINISTIC_OPS
|
|
13
12
|
from rasa.shared.utils import io as shared_io_utils
|
|
13
|
+
from rasa.utils.tensorflow.constants import TF_DETERMINISTIC_OPS
|
|
14
14
|
|
|
15
15
|
if typing.TYPE_CHECKING:
|
|
16
16
|
from tensorflow import config as tf_config
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
2
2
|
|
|
3
|
-
from safetensors.numpy import save_file
|
|
4
3
|
import numpy as np
|
|
5
|
-
from safetensors.numpy import load_file
|
|
6
4
|
import scipy.sparse
|
|
5
|
+
from safetensors.numpy import load_file, save_file
|
|
7
6
|
|
|
8
7
|
import rasa.shared.utils.io
|
|
9
8
|
|
rasa/utils/tensorflow/layers.py
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import List, Optional, Text, Tuple,
|
|
2
|
+
from typing import Any, Callable, List, Optional, Text, Tuple, Union
|
|
3
|
+
|
|
3
4
|
import tensorflow as tf
|
|
5
|
+
import tensorflow.keras.backend as K
|
|
4
6
|
|
|
5
7
|
# TODO: The following is not (yet) available via tf.keras
|
|
6
8
|
from keras.src.utils.control_flow_util import smart_cond
|
|
7
|
-
import tensorflow.keras.backend as K
|
|
8
9
|
|
|
9
10
|
import rasa.utils.tensorflow.crf
|
|
11
|
+
import rasa.utils.tensorflow.layers_utils as layers_utils
|
|
12
|
+
from rasa.core.constants import DIALOGUE
|
|
13
|
+
from rasa.shared.nlu.constants import (
|
|
14
|
+
ACTION_NAME,
|
|
15
|
+
ACTION_TEXT,
|
|
16
|
+
FEATURE_TYPE_SENTENCE,
|
|
17
|
+
FEATURE_TYPE_SEQUENCE,
|
|
18
|
+
INTENT,
|
|
19
|
+
TEXT,
|
|
20
|
+
)
|
|
10
21
|
from rasa.utils.tensorflow.constants import (
|
|
11
|
-
SOFTMAX,
|
|
12
|
-
MARGIN,
|
|
13
22
|
COSINE,
|
|
14
|
-
INNER,
|
|
15
23
|
CROSS_ENTROPY,
|
|
24
|
+
INNER,
|
|
16
25
|
LABEL,
|
|
17
26
|
LABEL_PAD_ID,
|
|
27
|
+
MARGIN,
|
|
28
|
+
SOFTMAX,
|
|
18
29
|
)
|
|
19
|
-
from rasa.core.constants import DIALOGUE
|
|
20
|
-
from rasa.shared.nlu.constants import FEATURE_TYPE_SENTENCE, FEATURE_TYPE_SEQUENCE
|
|
21
|
-
from rasa.shared.nlu.constants import TEXT, INTENT, ACTION_NAME, ACTION_TEXT
|
|
22
|
-
|
|
23
|
-
from rasa.utils.tensorflow.metrics import F1Score
|
|
24
|
-
from rasa.utils.tensorflow.exceptions import TFLayerConfigException
|
|
25
|
-
import rasa.utils.tensorflow.layers_utils as layers_utils
|
|
26
30
|
from rasa.utils.tensorflow.crf import crf_log_likelihood
|
|
31
|
+
from rasa.utils.tensorflow.exceptions import TFLayerConfigException
|
|
32
|
+
from rasa.utils.tensorflow.metrics import F1Score
|
|
27
33
|
|
|
28
34
|
logger = logging.getLogger(__name__)
|
|
29
35
|
|
rasa/utils/tensorflow/metrics.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional
|
|
2
|
+
|
|
1
3
|
import tensorflow as tf
|
|
2
4
|
from tensorflow.keras import backend as K
|
|
3
5
|
from tensorflow.types.experimental import TensorLike
|
|
4
|
-
from typing import Any, Dict, Optional
|
|
5
|
-
|
|
6
6
|
|
|
7
7
|
# original code taken from
|
|
8
8
|
# https://github.com/tensorflow/addons/blob/f30df4322b5580b3e5946530a60f7126035dd73b/tensorflow_addons/metrics/f_scores.py
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from collections import OrderedDict, defaultdict
|
|
2
3
|
from typing import (
|
|
3
|
-
|
|
4
|
+
Any,
|
|
4
5
|
DefaultDict,
|
|
5
6
|
Dict,
|
|
7
|
+
ItemsView,
|
|
6
8
|
Iterable,
|
|
7
|
-
Text,
|
|
8
9
|
List,
|
|
10
|
+
NamedTuple,
|
|
11
|
+
Optional,
|
|
12
|
+
Text,
|
|
9
13
|
Tuple,
|
|
10
|
-
Any,
|
|
11
14
|
Union,
|
|
12
|
-
NamedTuple,
|
|
13
|
-
ItemsView,
|
|
14
|
-
overload,
|
|
15
15
|
cast,
|
|
16
|
+
overload,
|
|
16
17
|
)
|
|
17
|
-
from collections import defaultdict, OrderedDict
|
|
18
18
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
import scipy.sparse
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import typing
|
|
2
1
|
import copy
|
|
2
|
+
import typing
|
|
3
|
+
from collections import OrderedDict, defaultdict
|
|
4
|
+
from typing import Any, DefaultDict, Dict, List, Optional, Text, Tuple, Union, cast
|
|
5
|
+
|
|
3
6
|
import numpy as np
|
|
4
7
|
import scipy.sparse
|
|
5
|
-
from collections import defaultdict, OrderedDict
|
|
6
|
-
from typing import List, Optional, Text, Dict, Tuple, Union, Any, DefaultDict, cast
|
|
7
8
|
|
|
8
9
|
from rasa.nlu.constants import TOKENS_NAMES
|
|
9
|
-
from rasa.utils.tensorflow.model_data import Data, FeatureArray, ragged_array_to_ndarray
|
|
10
|
-
from rasa.utils.tensorflow.constants import MASK, IDS
|
|
11
|
-
from rasa.shared.nlu.training_data.message import Message
|
|
12
10
|
from rasa.shared.nlu.constants import (
|
|
13
|
-
TEXT,
|
|
14
11
|
ENTITIES,
|
|
15
|
-
ENTITY_ATTRIBUTE_TYPE,
|
|
16
12
|
ENTITY_ATTRIBUTE_GROUP,
|
|
17
13
|
ENTITY_ATTRIBUTE_ROLE,
|
|
14
|
+
ENTITY_ATTRIBUTE_TYPE,
|
|
15
|
+
TEXT,
|
|
18
16
|
)
|
|
17
|
+
from rasa.shared.nlu.training_data.message import Message
|
|
18
|
+
from rasa.utils.tensorflow.constants import IDS, MASK
|
|
19
|
+
from rasa.utils.tensorflow.model_data import Data, FeatureArray, ragged_array_to_ndarray
|
|
19
20
|
|
|
20
21
|
if typing.TYPE_CHECKING:
|
|
21
|
-
from rasa.shared.nlu.training_data.features import Features
|
|
22
22
|
from rasa.nlu.extractors.extractor import EntityTagSpec
|
|
23
|
+
from rasa.shared.nlu.training_data.features import Features
|
|
23
24
|
|
|
24
25
|
TAG_ID_ORIGIN = "tag_id_origin"
|
|
25
26
|
|
rasa/utils/tensorflow/models.py
CHANGED
|
@@ -1,53 +1,52 @@
|
|
|
1
|
-
import time
|
|
2
|
-
import random
|
|
3
|
-
import tensorflow as tf
|
|
4
|
-
import numpy as np
|
|
5
1
|
import logging
|
|
6
2
|
import os
|
|
3
|
+
import random
|
|
4
|
+
import time
|
|
7
5
|
from collections import defaultdict
|
|
8
|
-
from typing import
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Tuple, Union
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
import numpy as np
|
|
9
|
+
import tensorflow as tf
|
|
11
10
|
from keras import Model
|
|
11
|
+
from keras.src.utils import tf_utils
|
|
12
12
|
|
|
13
|
+
import rasa.utils.train_utils
|
|
13
14
|
from rasa.shared.constants import DIAGNOSTIC_DATA
|
|
15
|
+
from rasa.shared.exceptions import RasaException
|
|
16
|
+
from rasa.shared.nlu.constants import TEXT
|
|
17
|
+
from rasa.utils.tensorflow import layers, rasa_layers
|
|
14
18
|
from rasa.utils.tensorflow.constants import (
|
|
15
|
-
|
|
19
|
+
CONNECTION_DENSITY,
|
|
20
|
+
CONSTRAIN_SIMILARITIES,
|
|
21
|
+
EMBEDDING_DIMENSION,
|
|
16
22
|
IDS,
|
|
17
23
|
INTENT_CLASSIFICATION,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
RANDOM_SEED,
|
|
21
|
-
EMBEDDING_DIMENSION,
|
|
22
|
-
REGULARIZATION_CONSTANT,
|
|
23
|
-
SIMILARITY_TYPE,
|
|
24
|
-
CONNECTION_DENSITY,
|
|
25
|
-
NUM_NEG,
|
|
24
|
+
LABEL,
|
|
25
|
+
LEARNING_RATE,
|
|
26
26
|
LOSS_TYPE,
|
|
27
|
-
MAX_POS_SIM,
|
|
28
27
|
MAX_NEG_SIM,
|
|
29
|
-
|
|
30
|
-
NEGATIVE_MARGIN_SCALE,
|
|
31
|
-
SCALE_LOSS,
|
|
32
|
-
LEARNING_RATE,
|
|
33
|
-
CONSTRAIN_SIMILARITIES,
|
|
28
|
+
MAX_POS_SIM,
|
|
34
29
|
MODEL_CONFIDENCE,
|
|
30
|
+
NEGATIVE_MARGIN_SCALE,
|
|
31
|
+
NUM_NEG,
|
|
32
|
+
RANDOM_SEED,
|
|
33
|
+
REGULARIZATION_CONSTANT,
|
|
35
34
|
RUN_EAGERLY,
|
|
35
|
+
SCALE_LOSS,
|
|
36
|
+
SENTENCE,
|
|
37
|
+
SEQUENCE_LENGTH,
|
|
38
|
+
SIMILARITY_TYPE,
|
|
39
|
+
USE_MAX_NEG_SIM,
|
|
36
40
|
)
|
|
37
|
-
from rasa.utils.tensorflow.model_data import (
|
|
38
|
-
RasaModelData,
|
|
39
|
-
FeatureSignature,
|
|
40
|
-
FeatureArray,
|
|
41
|
-
)
|
|
42
|
-
import rasa.utils.train_utils
|
|
43
|
-
from rasa.utils.tensorflow import layers
|
|
44
|
-
from rasa.utils.tensorflow import rasa_layers
|
|
45
41
|
from rasa.utils.tensorflow.data_generator import (
|
|
46
|
-
RasaDataGenerator,
|
|
47
42
|
RasaBatchDataGenerator,
|
|
43
|
+
RasaDataGenerator,
|
|
44
|
+
)
|
|
45
|
+
from rasa.utils.tensorflow.model_data import (
|
|
46
|
+
FeatureArray,
|
|
47
|
+
FeatureSignature,
|
|
48
|
+
RasaModelData,
|
|
48
49
|
)
|
|
49
|
-
from rasa.shared.nlu.constants import TEXT
|
|
50
|
-
from rasa.shared.exceptions import RasaException
|
|
51
50
|
from rasa.utils.tensorflow.types import BatchData, MaybeNestedBatchData
|
|
52
51
|
|
|
53
52
|
if TYPE_CHECKING:
|