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
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Any, Dict, List, Optional, Text
|
|
2
2
|
|
|
3
3
|
import structlog
|
|
4
4
|
|
|
5
5
|
from rasa.dialogue_understanding.commands import (
|
|
6
6
|
Command,
|
|
7
|
-
StartFlowCommand,
|
|
8
7
|
SetSlotCommand,
|
|
8
|
+
StartFlowCommand,
|
|
9
9
|
)
|
|
10
10
|
from rasa.dialogue_understanding.commands.set_slot_command import SetSlotExtractor
|
|
11
|
-
from rasa.dialogue_understanding.
|
|
11
|
+
from rasa.dialogue_understanding.generator import CommandGenerator
|
|
12
|
+
from rasa.dialogue_understanding.generator.utils import (
|
|
12
13
|
triggerable_pattern_to_command_class,
|
|
13
14
|
)
|
|
14
|
-
from rasa.dialogue_understanding.
|
|
15
|
-
from rasa.engine.graph import
|
|
15
|
+
from rasa.dialogue_understanding.utils import add_commands_to_message_parse_data
|
|
16
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
16
17
|
from rasa.engine.recipes.default_recipe import DefaultV1Recipe
|
|
17
18
|
from rasa.engine.storage.resource import Resource
|
|
18
19
|
from rasa.engine.storage.storage import ModelStorage
|
|
@@ -20,10 +21,7 @@ from rasa.shared.constants import ROUTE_TO_CALM_SLOT
|
|
|
20
21
|
from rasa.shared.core.domain import Domain
|
|
21
22
|
from rasa.shared.core.flows.flows_list import FlowsList
|
|
22
23
|
from rasa.shared.core.flows.steps import CollectInformationFlowStep
|
|
23
|
-
from rasa.shared.core.slot_mappings import
|
|
24
|
-
SlotFillingManager,
|
|
25
|
-
extract_slot_value,
|
|
26
|
-
)
|
|
24
|
+
from rasa.shared.core.slot_mappings import SlotFillingManager, extract_slot_value
|
|
27
25
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
28
26
|
from rasa.shared.nlu.constants import ENTITIES, INTENT
|
|
29
27
|
from rasa.shared.nlu.training_data.message import Message
|
|
@@ -205,7 +203,7 @@ class NLUCommandAdapter(GraphComponent, CommandGenerator):
|
|
|
205
203
|
commands=commands,
|
|
206
204
|
)
|
|
207
205
|
|
|
208
|
-
|
|
206
|
+
add_commands_to_message_parse_data(
|
|
209
207
|
message, NLUCommandAdapter.__name__, commands
|
|
210
208
|
)
|
|
211
209
|
return commands
|
|
@@ -1,59 +1,57 @@
|
|
|
1
1
|
import importlib.resources
|
|
2
|
-
import
|
|
3
|
-
from typing import Dict, Any, List, Optional, Text
|
|
2
|
+
from typing import Any, Dict, List, Optional, Text
|
|
4
3
|
|
|
5
4
|
import structlog
|
|
6
5
|
|
|
7
6
|
import rasa.shared.utils.io
|
|
8
7
|
from rasa.dialogue_understanding.commands import (
|
|
8
|
+
CannotHandleCommand,
|
|
9
9
|
Command,
|
|
10
10
|
ErrorCommand,
|
|
11
11
|
SetSlotCommand,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
SkipQuestionCommand,
|
|
16
|
-
KnowledgeAnswerCommand,
|
|
17
|
-
ClarifyCommand,
|
|
18
|
-
CannotHandleCommand,
|
|
19
|
-
RepeatBotMessagesCommand,
|
|
12
|
+
)
|
|
13
|
+
from rasa.dialogue_understanding.generator.command_parser import (
|
|
14
|
+
parse_commands as parse_commands_using_command_parsers,
|
|
20
15
|
)
|
|
21
16
|
from rasa.dialogue_understanding.generator.constants import (
|
|
17
|
+
DEFAULT_LLM_CONFIG,
|
|
18
|
+
FLOW_RETRIEVAL_KEY,
|
|
22
19
|
LLM_CONFIG_KEY,
|
|
23
20
|
USER_INPUT_CONFIG_KEY,
|
|
24
|
-
FLOW_RETRIEVAL_KEY,
|
|
25
|
-
DEFAULT_LLM_CONFIG,
|
|
26
|
-
)
|
|
27
|
-
from rasa.dialogue_understanding.generator.flow_retrieval import (
|
|
28
|
-
FlowRetrieval,
|
|
29
21
|
)
|
|
22
|
+
from rasa.dialogue_understanding.generator.flow_retrieval import FlowRetrieval
|
|
30
23
|
from rasa.dialogue_understanding.generator.llm_based_command_generator import (
|
|
31
24
|
LLMBasedCommandGenerator,
|
|
32
25
|
)
|
|
33
26
|
from rasa.dialogue_understanding.stack.utils import top_flow_frame
|
|
27
|
+
from rasa.dialogue_understanding.utils import (
|
|
28
|
+
add_commands_to_message_parse_data,
|
|
29
|
+
add_prompt_to_message_parse_data,
|
|
30
|
+
)
|
|
34
31
|
from rasa.engine.graph import ExecutionContext
|
|
35
32
|
from rasa.engine.recipes.default_recipe import DefaultV1Recipe
|
|
36
33
|
from rasa.engine.storage.resource import Resource
|
|
37
34
|
from rasa.engine.storage.storage import ModelStorage
|
|
38
35
|
from rasa.shared.constants import (
|
|
39
|
-
|
|
36
|
+
EMBEDDINGS_CONFIG_KEY,
|
|
40
37
|
PROMPT_CONFIG_KEY,
|
|
41
38
|
PROMPT_TEMPLATE_CONFIG_KEY,
|
|
42
|
-
|
|
39
|
+
ROUTE_TO_CALM_SLOT,
|
|
43
40
|
)
|
|
44
41
|
from rasa.shared.core.flows import FlowsList
|
|
45
42
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
46
43
|
from rasa.shared.exceptions import ProviderClientAPIException
|
|
47
|
-
from rasa.shared.nlu.constants import
|
|
44
|
+
from rasa.shared.nlu.constants import LLM_COMMANDS, LLM_PROMPT, TEXT
|
|
48
45
|
from rasa.shared.nlu.training_data.message import Message
|
|
46
|
+
from rasa.shared.providers.llm.llm_response import LLMResponse
|
|
49
47
|
from rasa.shared.utils.io import deep_container_fingerprint
|
|
50
48
|
from rasa.shared.utils.llm import (
|
|
51
49
|
get_prompt_template,
|
|
52
|
-
tracker_as_readable_transcript,
|
|
53
|
-
sanitize_message_for_prompt,
|
|
54
50
|
resolve_model_client_config,
|
|
51
|
+
sanitize_message_for_prompt,
|
|
52
|
+
tracker_as_readable_transcript,
|
|
55
53
|
)
|
|
56
|
-
from rasa.utils.beta import
|
|
54
|
+
from rasa.utils.beta import BetaNotEnabledException, ensure_beta_feature_is_enabled
|
|
57
55
|
from rasa.utils.log_utils import log_llm
|
|
58
56
|
|
|
59
57
|
COMMAND_PROMPT_FILE_NAME = "command_prompt.jinja2"
|
|
@@ -264,13 +262,16 @@ class SingleStepLLMCommandGenerator(LLMBasedCommandGenerator):
|
|
|
264
262
|
prompt=flow_prompt,
|
|
265
263
|
)
|
|
266
264
|
|
|
267
|
-
|
|
265
|
+
response = await self.invoke_llm(flow_prompt)
|
|
266
|
+
llm_response = LLMResponse.ensure_llm_response(response)
|
|
268
267
|
# The check for 'None' maintains compatibility with older versions
|
|
269
268
|
# of LLMCommandGenerator. In previous implementations, 'invoke_llm'
|
|
270
269
|
# might return 'None' to indicate a failure to generate actions.
|
|
271
|
-
if
|
|
270
|
+
if llm_response is None or not llm_response.choices:
|
|
272
271
|
return [ErrorCommand()]
|
|
273
272
|
|
|
273
|
+
action_list = llm_response.choices[0]
|
|
274
|
+
|
|
274
275
|
log_llm(
|
|
275
276
|
logger=structlogger,
|
|
276
277
|
log_module="SingleStepLLMCommandGenerator",
|
|
@@ -281,14 +282,15 @@ class SingleStepLLMCommandGenerator(LLMBasedCommandGenerator):
|
|
|
281
282
|
commands = self.parse_commands(action_list, tracker, flows)
|
|
282
283
|
|
|
283
284
|
self._update_message_parse_data_for_fine_tuning(message, commands, flow_prompt)
|
|
284
|
-
|
|
285
|
+
add_commands_to_message_parse_data(
|
|
285
286
|
message, SingleStepLLMCommandGenerator.__name__, commands
|
|
286
287
|
)
|
|
287
|
-
|
|
288
|
-
message,
|
|
289
|
-
SingleStepLLMCommandGenerator.__name__,
|
|
290
|
-
"command_generator_prompt",
|
|
291
|
-
flow_prompt,
|
|
288
|
+
add_prompt_to_message_parse_data(
|
|
289
|
+
message=message,
|
|
290
|
+
component_name=SingleStepLLMCommandGenerator.__name__,
|
|
291
|
+
prompt_name="command_generator_prompt",
|
|
292
|
+
user_prompt=flow_prompt,
|
|
293
|
+
llm_response=llm_response,
|
|
292
294
|
)
|
|
293
295
|
|
|
294
296
|
return commands
|
|
@@ -323,70 +325,7 @@ class SingleStepLLMCommandGenerator(LLMBasedCommandGenerator):
|
|
|
323
325
|
Returns:
|
|
324
326
|
The parsed commands.
|
|
325
327
|
"""
|
|
326
|
-
|
|
327
|
-
return []
|
|
328
|
-
|
|
329
|
-
commands: List[Command] = []
|
|
330
|
-
|
|
331
|
-
slot_set_re = re.compile(
|
|
332
|
-
r"""SetSlot\(['"]?([a-zA-Z_][a-zA-Z0-9_-]*)['"]?, ?['"]?(.*)['"]?\)"""
|
|
333
|
-
)
|
|
334
|
-
start_flow_re = re.compile(r"StartFlow\(['\"]?([a-zA-Z0-9_-]+)['\"]?\)")
|
|
335
|
-
cancel_flow_re = re.compile(r"CancelFlow\(\)")
|
|
336
|
-
chitchat_re = re.compile(r"ChitChat\(\)")
|
|
337
|
-
skip_question_re = re.compile(r"SkipQuestion\(\)")
|
|
338
|
-
knowledge_re = re.compile(r"SearchAndReply\(\)")
|
|
339
|
-
humand_handoff_re = re.compile(r"HumanHandoff\(\)")
|
|
340
|
-
clarify_re = re.compile(r"Clarify\(([\"\'a-zA-Z0-9_, ]+)\)")
|
|
341
|
-
repeat_re = re.compile(r"RepeatLastBotMessages\(\)")
|
|
342
|
-
|
|
343
|
-
for action in actions.strip().splitlines():
|
|
344
|
-
if match := slot_set_re.search(action):
|
|
345
|
-
slot_name = match.group(1).strip()
|
|
346
|
-
slot_value = cls.clean_extracted_value(match.group(2))
|
|
347
|
-
# error case where the llm tries to start a flow using a slot set
|
|
348
|
-
if slot_name == "flow_name":
|
|
349
|
-
commands.extend(cls.start_flow_by_name(slot_value, flows))
|
|
350
|
-
else:
|
|
351
|
-
typed_slot_value = cls.get_nullable_slot_value(slot_value)
|
|
352
|
-
commands.append(
|
|
353
|
-
SetSlotCommand(name=slot_name, value=typed_slot_value)
|
|
354
|
-
)
|
|
355
|
-
elif match := start_flow_re.search(action):
|
|
356
|
-
flow_name = match.group(1).strip()
|
|
357
|
-
commands.extend(cls.start_flow_by_name(flow_name, flows))
|
|
358
|
-
elif cancel_flow_re.search(action):
|
|
359
|
-
commands.append(CancelFlowCommand())
|
|
360
|
-
elif chitchat_re.search(action):
|
|
361
|
-
commands.append(ChitChatAnswerCommand())
|
|
362
|
-
elif skip_question_re.search(action):
|
|
363
|
-
commands.append(SkipQuestionCommand())
|
|
364
|
-
elif knowledge_re.search(action):
|
|
365
|
-
commands.append(KnowledgeAnswerCommand())
|
|
366
|
-
elif humand_handoff_re.search(action):
|
|
367
|
-
commands.append(HumanHandoffCommand())
|
|
368
|
-
elif repeat_re.search(action):
|
|
369
|
-
commands.append(RepeatBotMessagesCommand())
|
|
370
|
-
elif match := clarify_re.search(action):
|
|
371
|
-
options = sorted([opt.strip() for opt in match.group(1).split(",")])
|
|
372
|
-
# Remove surrounding quotes if present
|
|
373
|
-
cleaned_options = []
|
|
374
|
-
for flow in options:
|
|
375
|
-
if (flow.startswith('"') and flow.endswith('"')) or (
|
|
376
|
-
flow.startswith("'") and flow.endswith("'")
|
|
377
|
-
):
|
|
378
|
-
cleaned_options.append(flow[1:-1])
|
|
379
|
-
else:
|
|
380
|
-
cleaned_options.append(flow)
|
|
381
|
-
# check if flow is valid
|
|
382
|
-
valid_options = [
|
|
383
|
-
flow for flow in cleaned_options if flow in flows.user_flow_ids
|
|
384
|
-
]
|
|
385
|
-
if len(set(valid_options)) == 1:
|
|
386
|
-
commands.extend(cls.start_flow_by_name(valid_options[0], flows))
|
|
387
|
-
elif len(valid_options) > 1:
|
|
388
|
-
commands.append(ClarifyCommand(valid_options))
|
|
389
|
-
|
|
328
|
+
commands = parse_commands_using_command_parsers(actions, flows)
|
|
390
329
|
if not commands:
|
|
391
330
|
structlogger.debug(
|
|
392
331
|
"single_step_llm_command_generator.parse_commands",
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from typing import Dict, Type
|
|
2
|
+
|
|
3
|
+
from rasa.dialogue_understanding.commands import (
|
|
4
|
+
CancelFlowCommand,
|
|
5
|
+
CannotHandleCommand,
|
|
6
|
+
ChitChatAnswerCommand,
|
|
7
|
+
Command,
|
|
8
|
+
HumanHandoffCommand,
|
|
9
|
+
KnowledgeAnswerCommand,
|
|
10
|
+
RestartCommand,
|
|
11
|
+
SessionStartCommand,
|
|
12
|
+
SkipQuestionCommand,
|
|
13
|
+
)
|
|
14
|
+
from rasa.dialogue_understanding.commands.user_silence_command import UserSilenceCommand
|
|
15
|
+
from rasa.dialogue_understanding.patterns.cancel import CancelPatternFlowStackFrame
|
|
16
|
+
from rasa.dialogue_understanding.patterns.cannot_handle import (
|
|
17
|
+
CannotHandlePatternFlowStackFrame,
|
|
18
|
+
)
|
|
19
|
+
from rasa.dialogue_understanding.patterns.chitchat import ChitchatPatternFlowStackFrame
|
|
20
|
+
from rasa.dialogue_understanding.patterns.human_handoff import (
|
|
21
|
+
HumanHandoffPatternFlowStackFrame,
|
|
22
|
+
)
|
|
23
|
+
from rasa.dialogue_understanding.patterns.restart import RestartPatternFlowStackFrame
|
|
24
|
+
from rasa.dialogue_understanding.patterns.search import SearchPatternFlowStackFrame
|
|
25
|
+
from rasa.dialogue_understanding.patterns.session_start import (
|
|
26
|
+
SessionStartPatternFlowStackFrame,
|
|
27
|
+
)
|
|
28
|
+
from rasa.dialogue_understanding.patterns.skip_question import (
|
|
29
|
+
SkipQuestionPatternFlowStackFrame,
|
|
30
|
+
)
|
|
31
|
+
from rasa.dialogue_understanding.patterns.user_silence import (
|
|
32
|
+
UserSilencePatternFlowStackFrame,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
triggerable_pattern_to_command_class: Dict[str, Type[Command]] = {
|
|
36
|
+
SessionStartPatternFlowStackFrame.flow_id: SessionStartCommand,
|
|
37
|
+
UserSilencePatternFlowStackFrame.flow_id: UserSilenceCommand,
|
|
38
|
+
CancelPatternFlowStackFrame.flow_id: CancelFlowCommand,
|
|
39
|
+
ChitchatPatternFlowStackFrame.flow_id: ChitChatAnswerCommand,
|
|
40
|
+
HumanHandoffPatternFlowStackFrame.flow_id: HumanHandoffCommand,
|
|
41
|
+
SearchPatternFlowStackFrame.flow_id: KnowledgeAnswerCommand,
|
|
42
|
+
SkipQuestionPatternFlowStackFrame.flow_id: SkipQuestionCommand,
|
|
43
|
+
CannotHandlePatternFlowStackFrame.flow_id: CannotHandleCommand,
|
|
44
|
+
RestartPatternFlowStackFrame.flow_id: RestartCommand,
|
|
45
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass, field
|
|
3
4
|
from typing import Any, Dict, List, Optional
|
|
4
5
|
|
|
5
6
|
import structlog
|
|
7
|
+
|
|
6
8
|
from rasa.core.actions import action
|
|
7
9
|
from rasa.core.channels.channel import OutputChannel
|
|
8
10
|
from rasa.core.nlg.generator import NaturalLanguageGenerator
|
|
@@ -18,7 +20,6 @@ from rasa.shared.core.flows.steps.constants import END_STEP
|
|
|
18
20
|
from rasa.shared.core.flows.steps.continuation import ContinueFlowStep
|
|
19
21
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
20
22
|
|
|
21
|
-
|
|
22
23
|
structlogger = structlog.get_logger()
|
|
23
24
|
|
|
24
25
|
FLOW_PATTERN_CANCEL = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "cancel_flow"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_CHITCHAT = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "chitchat"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass, field
|
|
3
4
|
from typing import Any, Dict, List, Optional
|
|
4
5
|
|
|
5
6
|
import structlog
|
|
7
|
+
|
|
6
8
|
from rasa.core.actions import action
|
|
7
9
|
from rasa.core.channels.channel import OutputChannel
|
|
8
10
|
from rasa.core.nlg.generator import NaturalLanguageGenerator
|
|
@@ -13,7 +15,6 @@ from rasa.shared.core.domain import Domain
|
|
|
13
15
|
from rasa.shared.core.events import Event
|
|
14
16
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
15
17
|
|
|
16
|
-
|
|
17
18
|
structlogger = structlog.get_logger()
|
|
18
19
|
|
|
19
20
|
FLOW_PATTERN_CLARIFICATION = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "clarification"
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict, List, Optional
|
|
4
|
-
|
|
5
|
-
from rasa.dialogue_understanding.stack.frames import
|
|
5
|
+
|
|
6
|
+
from rasa.dialogue_understanding.stack.frames import (
|
|
7
|
+
DialogueStackFrame,
|
|
8
|
+
PatternFlowStackFrame,
|
|
9
|
+
)
|
|
6
10
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
11
|
from rasa.shared.core.flows.steps.collect import SlotRejection
|
|
8
12
|
|
|
9
|
-
|
|
10
13
|
FLOW_PATTERN_COLLECT_INFORMATION = (
|
|
11
14
|
RASA_DEFAULT_FLOW_PATTERN_PREFIX + "collect_information"
|
|
12
15
|
)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_COMPLETED = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "completed"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_CONTINUE_INTERRUPTED = (
|
|
10
10
|
RASA_DEFAULT_FLOW_PATTERN_PREFIX + "continue_interrupted"
|
|
11
11
|
)
|
|
@@ -40,3 +40,12 @@ class ContinueInterruptedPatternFlowStackFrame(PatternFlowStackFrame):
|
|
|
40
40
|
step_id=data["step_id"],
|
|
41
41
|
previous_flow_name=data["previous_flow_name"],
|
|
42
42
|
)
|
|
43
|
+
|
|
44
|
+
def __eq__(self, other: Any) -> bool:
|
|
45
|
+
if not isinstance(other, ContinueInterruptedPatternFlowStackFrame):
|
|
46
|
+
return False
|
|
47
|
+
return (
|
|
48
|
+
self.flow_id == other.flow_id
|
|
49
|
+
and self.step_id == other.step_id
|
|
50
|
+
and self.previous_flow_name == other.previous_flow_name
|
|
51
|
+
)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass, field
|
|
3
|
-
from typing import Any, Dict,
|
|
4
|
+
from typing import Any, Dict, List, Optional, Text
|
|
4
5
|
|
|
5
6
|
import structlog
|
|
7
|
+
|
|
6
8
|
from rasa.core.actions import action
|
|
7
9
|
from rasa.core.channels import OutputChannel
|
|
8
10
|
from rasa.core.nlg import NaturalLanguageGenerator
|
|
@@ -26,7 +28,7 @@ from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
|
26
28
|
from rasa.shared.core.constants import ACTION_CORRECT_FLOW_SLOT
|
|
27
29
|
from rasa.shared.core.domain import Domain
|
|
28
30
|
from rasa.shared.core.events import Event, SlotSet
|
|
29
|
-
from rasa.shared.core.flows.flow import
|
|
31
|
+
from rasa.shared.core.flows.flow import END_STEP, START_STEP, ContinueFlowStep
|
|
30
32
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
31
33
|
|
|
32
34
|
structlogger = structlog.get_logger()
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_HUMAN_HANDOFF = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "human_handoff"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_SEARCH = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "search"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_SESSION_START = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "session_start"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
6
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
6
7
|
from rasa.shared.constants import RASA_DEFAULT_FLOW_PATTERN_PREFIX
|
|
7
8
|
|
|
8
|
-
|
|
9
9
|
FLOW_PATTERN_USER_SILENCE = RASA_DEFAULT_FLOW_PATTERN_PREFIX + "user_silence"
|
|
10
10
|
|
|
11
11
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
from typing import List, Optional,
|
|
1
|
+
from typing import Dict, List, Optional, Set, Type
|
|
2
2
|
|
|
3
3
|
import structlog
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
from rasa.dialogue_understanding.commands import (
|
|
6
6
|
CancelFlowCommand,
|
|
7
|
+
CannotHandleCommand,
|
|
8
|
+
ChitChatAnswerCommand,
|
|
7
9
|
ClarifyCommand,
|
|
8
10
|
Command,
|
|
9
|
-
CorrectSlotsCommand,
|
|
10
11
|
CorrectedSlot,
|
|
12
|
+
CorrectSlotsCommand,
|
|
13
|
+
FreeFormAnswerCommand,
|
|
11
14
|
RepeatBotMessagesCommand,
|
|
12
15
|
SetSlotCommand,
|
|
13
16
|
StartFlowCommand,
|
|
14
|
-
FreeFormAnswerCommand,
|
|
15
|
-
ChitChatAnswerCommand,
|
|
16
|
-
CannotHandleCommand,
|
|
17
17
|
)
|
|
18
18
|
from rasa.dialogue_understanding.commands.handle_code_change_command import (
|
|
19
19
|
HandleCodeChangeCommand,
|
|
@@ -36,16 +36,20 @@ from rasa.dialogue_understanding.stack.utils import (
|
|
|
36
36
|
)
|
|
37
37
|
from rasa.engine.graph import ExecutionContext
|
|
38
38
|
from rasa.shared.constants import (
|
|
39
|
-
ROUTE_TO_CALM_SLOT,
|
|
40
39
|
RASA_PATTERN_CANNOT_HANDLE_CHITCHAT,
|
|
40
|
+
ROUTE_TO_CALM_SLOT,
|
|
41
|
+
)
|
|
42
|
+
from rasa.shared.core.constants import (
|
|
43
|
+
ACTION_TRIGGER_CHITCHAT,
|
|
44
|
+
FLOW_HASHES_SLOT,
|
|
45
|
+
SlotMappingType,
|
|
41
46
|
)
|
|
42
|
-
from rasa.shared.core.constants import ACTION_TRIGGER_CHITCHAT, SlotMappingType
|
|
43
|
-
from rasa.shared.core.constants import FLOW_HASHES_SLOT
|
|
44
47
|
from rasa.shared.core.events import Event, SlotSet
|
|
45
48
|
from rasa.shared.core.flows import FlowsList
|
|
46
49
|
from rasa.shared.core.flows.steps.collect import CollectInformationFlowStep
|
|
47
50
|
from rasa.shared.core.slots import Slot
|
|
48
51
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
52
|
+
from rasa.shared.core.training_data.structures import StoryGraph
|
|
49
53
|
from rasa.shared.nlu.constants import COMMANDS
|
|
50
54
|
|
|
51
55
|
structlogger = structlog.get_logger()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
from typing import Any, Dict, List, Text
|
|
4
|
-
import rasa.dialogue_understanding.processor.command_processor
|
|
5
4
|
|
|
5
|
+
import rasa.dialogue_understanding.processor.command_processor
|
|
6
6
|
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
7
7
|
from rasa.engine.storage.resource import Resource
|
|
8
8
|
from rasa.engine.storage.storage import ModelStorage
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
import copy
|
|
3
2
|
|
|
3
|
+
import copy
|
|
4
|
+
import typing
|
|
4
5
|
from dataclasses import dataclass
|
|
5
6
|
from typing import Any, Callable, Dict, List, Optional
|
|
6
|
-
|
|
7
|
-
import typing
|
|
7
|
+
|
|
8
8
|
import jsonpatch
|
|
9
|
+
import structlog
|
|
9
10
|
|
|
10
11
|
if typing.TYPE_CHECKING:
|
|
11
12
|
from rasa.dialogue_understanding.stack.frames import DialogueStackFrame
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
from rasa.dialogue_understanding.stack.frames.chit_chat_frame import ChitChatStackFrame
|
|
1
2
|
from rasa.dialogue_understanding.stack.frames.dialogue_stack_frame import (
|
|
2
3
|
DialogueStackFrame,
|
|
3
4
|
)
|
|
4
5
|
from rasa.dialogue_understanding.stack.frames.flow_stack_frame import (
|
|
5
|
-
UserFlowStackFrame,
|
|
6
6
|
BaseFlowStackFrame,
|
|
7
|
+
UserFlowStackFrame,
|
|
7
8
|
)
|
|
8
9
|
from rasa.dialogue_understanding.stack.frames.pattern_frame import PatternFlowStackFrame
|
|
9
10
|
from rasa.dialogue_understanding.stack.frames.search_frame import SearchStackFrame
|
|
10
|
-
from rasa.dialogue_understanding.stack.frames.chit_chat_frame import ChitChatStackFrame
|
|
11
11
|
|
|
12
12
|
__all__ = [
|
|
13
13
|
"DialogueStackFrame",
|
|
@@ -2,7 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from typing import Any, Dict
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
from rasa.dialogue_understanding.stack.frames.dialogue_stack_frame import (
|
|
7
|
+
DialogueStackFrame,
|
|
8
|
+
)
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
@dataclass
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import dataclasses
|
|
3
4
|
import inspect
|
|
4
5
|
from dataclasses import dataclass, field
|
|
5
|
-
import dataclasses
|
|
6
6
|
from enum import Enum
|
|
7
7
|
from functools import lru_cache
|
|
8
8
|
from typing import Any, Dict, List, Tuple, Type
|
|
9
9
|
|
|
10
10
|
import structlog
|
|
11
|
-
from rasa.shared.exceptions import RasaException
|
|
12
11
|
|
|
13
12
|
import rasa.shared.utils.common
|
|
13
|
+
from rasa.shared.exceptions import RasaException
|
|
14
14
|
from rasa.shared.utils.io import random_string
|
|
15
15
|
|
|
16
|
-
|
|
17
16
|
structlogger = structlog.get_logger()
|
|
18
17
|
|
|
19
18
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from enum import Enum
|
|
4
5
|
from typing import Any, Dict, Optional
|
|
5
6
|
|
|
6
|
-
from rasa.dialogue_understanding.stack.frames import
|
|
7
|
-
|
|
7
|
+
from rasa.dialogue_understanding.stack.frames.dialogue_stack_frame import (
|
|
8
|
+
DialogueStackFrame,
|
|
9
|
+
)
|
|
8
10
|
from rasa.shared.core.flows import Flow, FlowsList, FlowStep
|
|
11
|
+
from rasa.shared.core.flows.steps.constants import START_STEP
|
|
9
12
|
from rasa.shared.exceptions import RasaException
|
|
10
13
|
|
|
11
14
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from dataclasses import dataclass
|
|
3
4
|
from typing import Any, Dict
|
|
4
5
|
|
|
5
|
-
from rasa.dialogue_understanding.stack.frames import
|
|
6
|
+
from rasa.dialogue_understanding.stack.frames.dialogue_stack_frame import (
|
|
7
|
+
DialogueStackFrame,
|
|
8
|
+
)
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
@dataclass
|