rasa-pro 3.12.0.dev2__py3-none-any.whl → 3.12.0.dev4__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 +121 -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 +291 -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 -11
- 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 +54 -0
- rasa/tracing/instrumentation/instrumentation.py +25 -5
- 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.dev4.dist-info}/METADATA +9 -10
- rasa_pro-3.12.0.dev4.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.dev4.dist-info}/NOTICE +0 -0
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.dist-info}/WHEEL +0 -0
- {rasa_pro-3.12.0.dev2.dist-info → rasa_pro-3.12.0.dev4.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
|
|
@@ -21,6 +21,20 @@ from rasa.dialogue_understanding.commands import Command
|
|
|
21
21
|
from rasa.dialogue_understanding.generator import LLMBasedCommandGenerator
|
|
22
22
|
from rasa.dialogue_understanding.generator.constants import FLOW_RETRIEVAL_KEY
|
|
23
23
|
from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
|
|
24
|
+
from rasa.dialogue_understanding_test.du_test_result import (
|
|
25
|
+
KEY_TEST_CASES_ACCURACY,
|
|
26
|
+
KEY_USER_UTTERANCES_ACCURACY,
|
|
27
|
+
OUTPUT_COMMAND_METRICS,
|
|
28
|
+
OUTPUT_NAMES_OF_FAILED_TESTS,
|
|
29
|
+
OUTPUT_NAMES_OF_PASSED_TESTS,
|
|
30
|
+
OUTPUT_NUMBER_OF_FAILED_TESTS,
|
|
31
|
+
OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES,
|
|
32
|
+
OUTPUT_NUMBER_OF_PASSED_TESTS,
|
|
33
|
+
OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES,
|
|
34
|
+
OUTPUT_TEST_CASES_ACCURACY,
|
|
35
|
+
OUTPUT_USER_UTTERANCES_ACCURACY,
|
|
36
|
+
DialogueUnderstandingTestSuiteResult,
|
|
37
|
+
)
|
|
24
38
|
from rasa.engine.graph import ExecutionContext, GraphModelConfiguration, GraphNode
|
|
25
39
|
from rasa.engine.training.graph_trainer import GraphTrainer
|
|
26
40
|
from rasa.shared.constants import (
|
|
@@ -571,6 +585,44 @@ def extract_attrs_for_advance_flows(
|
|
|
571
585
|
}
|
|
572
586
|
|
|
573
587
|
|
|
588
|
+
def extract_attrs_for_du_print_test_results(
|
|
589
|
+
test_suite_result: DialogueUnderstandingTestSuiteResult,
|
|
590
|
+
output_prompt: bool,
|
|
591
|
+
) -> Dict[str, Any]:
|
|
592
|
+
"""Extract the attributes for
|
|
593
|
+
`rasa.dialogue_understanding_test.io.print_test_results` function.
|
|
594
|
+
"""
|
|
595
|
+
from rasa.tracing.instrumentation.instrumentation import (
|
|
596
|
+
DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
|
|
597
|
+
)
|
|
598
|
+
|
|
599
|
+
attributes_dict = {
|
|
600
|
+
"module_name": DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
|
|
601
|
+
OUTPUT_TEST_CASES_ACCURACY: test_suite_result.accuracy[KEY_TEST_CASES_ACCURACY],
|
|
602
|
+
OUTPUT_USER_UTTERANCES_ACCURACY: test_suite_result.accuracy[
|
|
603
|
+
KEY_USER_UTTERANCES_ACCURACY
|
|
604
|
+
],
|
|
605
|
+
OUTPUT_NUMBER_OF_PASSED_TESTS: test_suite_result.number_of_passed_tests,
|
|
606
|
+
OUTPUT_NUMBER_OF_FAILED_TESTS: test_suite_result.number_of_failed_tests,
|
|
607
|
+
OUTPUT_NUMBER_OF_PASSED_USER_UTTERANCES: test_suite_result.number_of_passed_user_utterances, # noqa: E501
|
|
608
|
+
OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES: test_suite_result.number_of_failed_user_utterances, # noqa: E501
|
|
609
|
+
OUTPUT_NAMES_OF_PASSED_TESTS: json.dumps(
|
|
610
|
+
test_suite_result.names_of_passed_tests
|
|
611
|
+
),
|
|
612
|
+
OUTPUT_NAMES_OF_FAILED_TESTS: json.dumps(
|
|
613
|
+
test_suite_result.names_of_failed_tests
|
|
614
|
+
),
|
|
615
|
+
}
|
|
616
|
+
if test_suite_result.command_metrics:
|
|
617
|
+
attributes_dict[OUTPUT_COMMAND_METRICS] = json.dumps(
|
|
618
|
+
{
|
|
619
|
+
key: value.as_dict()
|
|
620
|
+
for key, value in test_suite_result.command_metrics.items()
|
|
621
|
+
}
|
|
622
|
+
)
|
|
623
|
+
return attributes_dict
|
|
624
|
+
|
|
625
|
+
|
|
574
626
|
def extract_attrs_for_run_step(
|
|
575
627
|
step: FlowStep,
|
|
576
628
|
flow: Flow,
|
|
@@ -578,6 +630,7 @@ def extract_attrs_for_run_step(
|
|
|
578
630
|
tracker: DialogueStateTracker,
|
|
579
631
|
available_actions: List[str],
|
|
580
632
|
flows: FlowsList,
|
|
633
|
+
previous_step_id: Text,
|
|
581
634
|
) -> Dict[str, Any]:
|
|
582
635
|
current_context = extract_current_context_attribute(stack)
|
|
583
636
|
|
|
@@ -586,6 +639,7 @@ def extract_attrs_for_run_step(
|
|
|
586
639
|
"step_description": step.description if step.description else "None",
|
|
587
640
|
"current_flow_id": flow.id,
|
|
588
641
|
"current_context": json.dumps(current_context),
|
|
642
|
+
"previous_step_id": previous_step_id,
|
|
589
643
|
}
|
|
590
644
|
|
|
591
645
|
|
|
@@ -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")
|
|
@@ -84,6 +84,7 @@ COMMAND_PROCESSOR_MODULE_NAME = (
|
|
|
84
84
|
"rasa.dialogue_understanding.processor.command_processor"
|
|
85
85
|
)
|
|
86
86
|
FLOW_EXECUTOR_MODULE_NAME = "rasa.core.policies.flows.flow_executor"
|
|
87
|
+
DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME = "rasa.dialogue_understanding_test.io"
|
|
87
88
|
|
|
88
89
|
|
|
89
90
|
def _check_extractor_argument_list(
|
|
@@ -151,7 +152,11 @@ def traceable(
|
|
|
151
152
|
)
|
|
152
153
|
|
|
153
154
|
module_name = attrs.pop("module_name", "")
|
|
154
|
-
if module_name in [
|
|
155
|
+
if module_name in [
|
|
156
|
+
"command_processor",
|
|
157
|
+
FLOW_EXECUTOR_MODULE_NAME,
|
|
158
|
+
DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
|
|
159
|
+
]:
|
|
155
160
|
span_name = f"{module_name}.{fn.__name__}"
|
|
156
161
|
else:
|
|
157
162
|
span_name = f"{self.__class__.__name__}.{fn.__name__}"
|
|
@@ -583,6 +588,9 @@ def instrument(
|
|
|
583
588
|
if not module_is_instrumented(FLOW_EXECUTOR_MODULE_NAME):
|
|
584
589
|
_instrument_flow_executor_module(tracer_provider)
|
|
585
590
|
|
|
591
|
+
if not module_is_instrumented(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME):
|
|
592
|
+
_instrument_dialog_understanding_test_io_module(tracer_provider)
|
|
593
|
+
|
|
586
594
|
if policy_subclasses:
|
|
587
595
|
for policy_subclass in policy_subclasses:
|
|
588
596
|
if policy_subclass is not None and not class_is_instrumented(
|
|
@@ -974,6 +982,18 @@ def _instrument_flow_executor_module(tracer_provider: TracerProvider) -> None:
|
|
|
974
982
|
mark_module_as_instrumented(FLOW_EXECUTOR_MODULE_NAME)
|
|
975
983
|
|
|
976
984
|
|
|
985
|
+
def _instrument_dialog_understanding_test_io_module(
|
|
986
|
+
tracer_provider: TracerProvider,
|
|
987
|
+
) -> None:
|
|
988
|
+
_instrument_function(
|
|
989
|
+
tracer_provider.get_tracer(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME),
|
|
990
|
+
DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
|
|
991
|
+
"print_test_results",
|
|
992
|
+
attribute_extractors.extract_attrs_for_du_print_test_results,
|
|
993
|
+
)
|
|
994
|
+
mark_module_as_instrumented(DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME)
|
|
995
|
+
|
|
996
|
+
|
|
977
997
|
def _instrument_advance_flows_until_next_action(
|
|
978
998
|
tracer: Tracer,
|
|
979
999
|
module_name: str,
|
|
@@ -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
|