rasa-pro 3.11.5__py3-none-any.whl → 3.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rasa-pro might be problematic. Click here for more details.
- README.md +10 -13
- 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 +17 -11
- rasa/anonymization/anonymization_rule_orchestrator.py +2 -3
- rasa/cli/arguments/data.py +2 -2
- rasa/cli/arguments/default_arguments.py +1 -1
- 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 +20 -3
- rasa/cli/dialogue_understanding_test.py +386 -0
- rasa/cli/evaluate.py +1 -1
- rasa/cli/export.py +6 -6
- rasa/cli/inspect.py +20 -1
- rasa/cli/interactive.py +4 -5
- rasa/cli/llm_fine_tuning.py +51 -16
- rasa/cli/markers.py +1 -2
- rasa/cli/project_templates/calm/actions/add_contact.py +1 -1
- rasa/cli/project_templates/calm/config.yml +2 -2
- rasa/cli/project_templates/calm/domain/list_contacts.yml +1 -2
- rasa/cli/project_templates/calm/domain/remove_contact.yml +1 -2
- rasa/cli/project_templates/calm/domain/shared.yml +1 -4
- rasa/cli/project_templates/calm/endpoints.yml +2 -2
- rasa/cli/project_templates/tutorial/actions/actions.py +3 -2
- rasa/cli/shell.py +5 -6
- 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/train.py +3 -0
- rasa/cli/utils.py +25 -5
- rasa/constants.py +0 -1
- rasa/core/__init__.py +0 -1
- rasa/core/actions/action.py +135 -208
- rasa/core/actions/action_handle_digressions.py +164 -0
- 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 +18 -6
- 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/custom_action_executor.py +1 -1
- rasa/core/actions/direct_custom_actions_executor.py +1 -0
- rasa/core/actions/forms.py +22 -15
- 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 +7 -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 +80 -24
- rasa/core/channels/facebook.py +5 -5
- rasa/core/channels/hangouts.py +7 -8
- rasa/core/channels/inspector/dist/assets/{arc-f0f8bd46.js → arc-9f1365dc.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-7162c77d.js → blockDiagram-38ab4fdb-e0f81b12.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-b1d0d098.js → c4Diagram-3d4e48cf-9deaee1c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-44956714.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-807a1b27.js → classDiagram-70f12bd4-20450a96.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-5238dcdb.js → classDiagram-v2-f2320105-749d2abf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-a9475142.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-75dfaa67.js → createText-2e5e7dd3-bef0b38c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-df20501d.js → edges-e0da2a9e-943801a7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-13cf4797.js → erDiagram-9861fffd-d523a948.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-a4991264.js → flowDb-956e92f1-54e4cf19.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-ccecf773.js → flowDiagram-66a62f08-48bfbbe8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-43fa749a.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-b5801783.js → flowchart-elk-definition-4a651766-17c30827.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-161e079a.js → ganttDiagram-c361ad54-43086f2d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-f38e86a4.js → gitGraphDiagram-72cf32ee-5c8b693e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-be6ef5d8.js → graph-41a90d26.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-d9ce8994.js → index-3862675e-b43eeae9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-7794b245.js → index-e8affe45.js} +155 -155
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-5000a3dc.js → infoDiagram-f8f76790-0b20676b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-8ef0a17a.js → journeyDiagram-49397b02-39bce7b5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-d649bc98.js → layout-dc8eeea4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-95add810.js → line-c4d2e756.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-f6025094.js → linear-86f6f2d9.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-2e8531c4.js → mindmap-definition-fc14e90a-4216f771.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-918adfdb.js → pieDiagram-8a3498a8-1a0cfa96.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-cbd01797.js → quadrantDiagram-120e2f19-f91e67cf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-6a8b877b.js → requirementDiagram-deff3bca-d4046bed.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-c377c3fe.js → sankeyDiagram-04a897e0-2cf6d1d7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-ab9e9b7f.js → sequenceDiagram-704730f1-751ac4f5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-5e6ae67d.js → stateDiagram-587899a1-f734f4d4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-40643476.js → stateDiagram-v2-d93cdb3a-91c65710.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-afb8d108.js → styles-6aaf32cf-e0cff7be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-7edc9423.js → styles-9a916d00-c8029e5d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-c1d8f7e9.js → styles-c10674c1-114f312a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-f494b2ef.js → svgDrawCommon-08f97a94-b7b9dc00.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-11c7cdd0.js → timeline-definition-85554ec2-9536d189.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-3f191ec1.js → xychartDiagram-e933f94c-bf3b0f36.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +1 -0
- rasa/core/channels/inspector/src/App.tsx +15 -2
- rasa/core/channels/inspector/src/components/RasaLogo.tsx +31 -0
- rasa/core/channels/inspector/src/components/RecruitmentPanel.tsx +68 -0
- rasa/core/channels/inspector/src/components/Welcome.tsx +19 -13
- rasa/core/channels/inspector/yarn.lock +5 -0
- 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 +8 -28
- rasa/core/channels/studio_chat.py +212 -0
- rasa/core/channels/telegram.py +105 -55
- rasa/core/channels/twilio.py +3 -3
- rasa/core/channels/vier_cvg.py +2 -2
- rasa/core/channels/voice_ready/audiocodes.py +9 -9
- 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 +2 -2
- rasa/core/channels/voice_stream/asr/asr_engine.py +12 -6
- rasa/core/channels/voice_stream/asr/asr_event.py +5 -0
- rasa/core/channels/voice_stream/asr/azure.py +16 -3
- rasa/core/channels/voice_stream/asr/deepgram.py +76 -19
- rasa/core/channels/voice_stream/audiocodes.py +292 -0
- rasa/core/channels/voice_stream/browser_audio.py +14 -7
- rasa/core/channels/voice_stream/call_state.py +6 -2
- rasa/core/channels/voice_stream/genesys.py +320 -0
- rasa/core/channels/voice_stream/tts/azure.py +13 -5
- rasa/core/channels/voice_stream/tts/cartesia.py +34 -14
- 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 +12 -8
- rasa/core/channels/voice_stream/util.py +1 -1
- rasa/core/channels/voice_stream/voice_channel.py +100 -56
- rasa/core/channels/webexteams.py +3 -4
- rasa/core/constants.py +2 -0
- 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 +12 -9
- rasa/core/nlg/__init__.py +1 -1
- rasa/core/nlg/callback.py +2 -3
- rasa/core/nlg/contextual_response_rephraser.py +82 -14
- rasa/core/nlg/generator.py +85 -17
- rasa/core/nlg/interpolator.py +4 -3
- rasa/core/nlg/response.py +9 -7
- rasa/core/nlg/summarize.py +1 -0
- rasa/core/nlg/translate.py +55 -0
- rasa/core/persistor.py +3 -3
- rasa/core/policies/ensemble.py +10 -9
- rasa/core/policies/enterprise_search_policy.py +87 -21
- rasa/core/policies/enterprise_search_prompt_with_citation_template.jinja2 +1 -1
- rasa/core/policies/flow_policy.py +13 -14
- rasa/core/policies/flows/flow_executor.py +85 -55
- 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 +167 -74
- rasa/core/run.py +5 -4
- 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 +138 -49
- 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 +38 -1
- rasa/dialogue_understanding/commands/cancel_flow_command.py +96 -9
- rasa/dialogue_understanding/commands/change_flow_command.py +36 -2
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +36 -4
- rasa/dialogue_understanding/commands/clarify_command.py +46 -4
- rasa/dialogue_understanding/commands/command.py +3 -2
- rasa/dialogue_understanding/commands/command_syntax_manager.py +55 -0
- rasa/dialogue_understanding/commands/correct_slots_command.py +14 -5
- 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/handle_digressions_command.py +144 -0
- rasa/dialogue_understanding/commands/human_handoff_command.py +34 -4
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +36 -4
- rasa/dialogue_understanding/commands/noop_command.py +2 -1
- rasa/dialogue_understanding/commands/prompt_command.py +94 -0
- rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +34 -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 +55 -16
- rasa/dialogue_understanding/commands/skip_question_command.py +34 -4
- rasa/dialogue_understanding/commands/start_flow_command.py +78 -2
- rasa/dialogue_understanding/commands/user_silence_command.py +3 -5
- rasa/dialogue_understanding/commands/utils.py +126 -43
- rasa/dialogue_understanding/constants.py +2 -0
- rasa/dialogue_understanding/generator/__init__.py +2 -0
- rasa/dialogue_understanding/generator/command_generator.py +120 -79
- rasa/dialogue_understanding/generator/command_parser.py +245 -0
- rasa/dialogue_understanding/generator/constants.py +12 -4
- rasa/dialogue_understanding/generator/flow_retrieval.py +7 -7
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +187 -59
- rasa/dialogue_understanding/generator/llm_command_generator.py +6 -3
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +106 -110
- rasa/dialogue_understanding/generator/nlu_command_adapter.py +53 -11
- rasa/dialogue_understanding/generator/prompt_templates/__init__.py +0 -0
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +58 -0
- rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +57 -0
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +574 -0
- rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +41 -386
- rasa/dialogue_understanding/generator/utils.py +76 -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 +7 -4
- rasa/dialogue_understanding/patterns/completed.py +1 -1
- rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -1
- rasa/dialogue_understanding/patterns/correction.py +17 -3
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +78 -2
- rasa/dialogue_understanding/patterns/handle_digressions.py +81 -0
- 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/patterns/validate_slot.py +65 -0
- rasa/dialogue_understanding/processor/command_processor.py +193 -43
- 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 +56 -10
- rasa/dialogue_understanding/utils.py +164 -0
- rasa/dialogue_understanding_test/README.md +429 -0
- rasa/dialogue_understanding_test/__init__.py +0 -0
- rasa/dialogue_understanding_test/command_comparison.py +60 -0
- rasa/dialogue_understanding_test/command_metric_calculation.py +122 -0
- rasa/dialogue_understanding_test/constants.py +22 -0
- rasa/dialogue_understanding_test/du_test_case.py +448 -0
- rasa/dialogue_understanding_test/du_test_result.py +390 -0
- rasa/dialogue_understanding_test/du_test_runner.py +322 -0
- rasa/dialogue_understanding_test/du_test_schema.yml +161 -0
- rasa/dialogue_understanding_test/io.py +443 -0
- 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 +77 -0
- rasa/e2e_test/aggregate_test_stats_calculator.py +1 -1
- rasa/e2e_test/assertions.py +202 -175
- rasa/e2e_test/assertions_schema.yml +6 -0
- rasa/e2e_test/constants.py +16 -1
- rasa/e2e_test/e2e_config.py +102 -41
- rasa/e2e_test/e2e_config_schema.yml +28 -10
- rasa/e2e_test/e2e_test_case.py +5 -5
- 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 +143 -38
- rasa/e2e_test/llm_judge_prompts/answer_relevance_prompt_template.jinja2 +93 -0
- rasa/e2e_test/llm_judge_prompts/groundedness_prompt_template.jinja2 +169 -0
- rasa/e2e_test/stub_custom_action.py +1 -1
- rasa/e2e_test/utils/generative_assertions.py +243 -0
- rasa/e2e_test/utils/io.py +123 -93
- rasa/e2e_test/utils/validation.py +101 -3
- rasa/engine/caching.py +5 -7
- rasa/engine/constants.py +1 -1
- rasa/engine/graph.py +3 -2
- rasa/engine/language.py +182 -0
- rasa/engine/recipes/config_files/default_config.yml +4 -0
- rasa/engine/recipes/default_components.py +13 -15
- rasa/engine/recipes/default_recipe.py +65 -49
- rasa/engine/recipes/graph_recipe.py +10 -7
- 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 +6 -4
- rasa/engine/storage/resource.py +2 -1
- rasa/engine/storage/storage.py +8 -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 +36 -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 +19 -14
- rasa/jupyter.py +2 -2
- rasa/llm_fine_tuning/annotation_module.py +4 -4
- rasa/llm_fine_tuning/conversations.py +5 -33
- rasa/llm_fine_tuning/llm_data_preparation_module.py +6 -4
- rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +4 -4
- rasa/llm_fine_tuning/paraphrasing/rephrase_validator.py +18 -13
- rasa/llm_fine_tuning/paraphrasing_module.py +6 -2
- rasa/llm_fine_tuning/storage.py +3 -3
- rasa/llm_fine_tuning/train_test_split_module.py +27 -27
- rasa/llm_fine_tuning/utils.py +7 -0
- 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 +13 -10
- rasa/model_manager/socket_bridge.py +15 -9
- 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 -9
- rasa/model_service.py +5 -6
- rasa/model_testing.py +13 -15
- rasa/model_training.py +29 -29
- rasa/nlu/classifiers/diet_classifier.py +72 -73
- rasa/nlu/classifiers/fallback_classifier.py +9 -8
- rasa/nlu/classifiers/keyword_intent_classifier.py +7 -6
- rasa/nlu/classifiers/logistic_regression_classifier.py +3 -3
- rasa/nlu/classifiers/mitie_intent_classifier.py +5 -4
- rasa/nlu/classifiers/regex_message_handler.py +3 -2
- rasa/nlu/classifiers/sklearn_intent_classifier.py +2 -2
- rasa/nlu/convert.py +2 -2
- rasa/nlu/emulators/dialogflow.py +3 -3
- rasa/nlu/emulators/luis.py +5 -5
- rasa/nlu/emulators/no_emulator.py +1 -0
- rasa/nlu/emulators/wit.py +4 -4
- rasa/nlu/extractors/crf_entity_extractor.py +11 -11
- rasa/nlu/extractors/duckling_entity_extractor.py +7 -6
- rasa/nlu/extractors/entity_synonyms.py +10 -9
- rasa/nlu/extractors/extractor.py +16 -16
- rasa/nlu/extractors/mitie_entity_extractor.py +10 -9
- rasa/nlu/extractors/regex_entity_extractor.py +11 -10
- rasa/nlu/extractors/spacy_entity_extractor.py +2 -2
- rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +15 -14
- rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +2 -1
- rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +10 -9
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +9 -7
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +13 -12
- rasa/nlu/featurizers/featurizer.py +5 -4
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +6 -6
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -4
- rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +4 -4
- rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +2 -0
- rasa/nlu/model.py +0 -1
- rasa/nlu/selectors/response_selector.py +67 -68
- rasa/nlu/test.py +38 -38
- rasa/nlu/tokenizers/jieba_tokenizer.py +1 -2
- rasa/nlu/tokenizers/mitie_tokenizer.py +2 -2
- rasa/nlu/tokenizers/spacy_tokenizer.py +3 -3
- rasa/nlu/tokenizers/tokenizer.py +6 -7
- rasa/nlu/tokenizers/whitespace_tokenizer.py +1 -1
- rasa/nlu/utils/bilou_utils.py +7 -7
- rasa/nlu/utils/hugging_face/registry.py +22 -22
- rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +2 -1
- rasa/nlu/utils/mitie_utils.py +2 -1
- rasa/nlu/utils/pattern_utils.py +1 -1
- rasa/nlu/utils/spacy_utils.py +3 -3
- rasa/plugin.py +12 -1
- rasa/server.py +3 -2
- rasa/shared/constants.py +45 -18
- rasa/shared/core/command_payload_reader.py +15 -7
- rasa/shared/core/constants.py +34 -4
- rasa/shared/core/conversation.py +1 -2
- rasa/shared/core/domain.py +19 -20
- rasa/shared/core/events.py +60 -39
- rasa/shared/core/flows/__init__.py +0 -1
- rasa/shared/core/flows/constants.py +11 -0
- rasa/shared/core/flows/flow.py +107 -26
- rasa/shared/core/flows/flow_step.py +4 -3
- rasa/shared/core/flows/flow_step_links.py +1 -2
- rasa/shared/core/flows/flow_step_sequence.py +1 -1
- rasa/shared/core/flows/flows_list.py +3 -3
- rasa/shared/core/flows/flows_yaml_schema.json +69 -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 +1 -1
- rasa/shared/core/flows/steps/call.py +1 -1
- rasa/shared/core/flows/steps/collect.py +22 -40
- rasa/shared/core/flows/steps/internal.py +1 -1
- rasa/shared/core/flows/steps/link.py +1 -1
- rasa/shared/core/flows/steps/no_operation.py +2 -2
- rasa/shared/core/flows/steps/set_slots.py +1 -1
- rasa/shared/core/flows/utils.py +44 -4
- rasa/shared/core/flows/validation.py +4 -6
- rasa/shared/core/generator.py +20 -21
- rasa/shared/core/slot_mappings.py +360 -121
- rasa/shared/core/slots.py +163 -6
- rasa/shared/core/trackers.py +108 -33
- 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/importer.py +58 -2
- rasa/shared/importers/rasa.py +5 -6
- rasa/shared/importers/utils.py +1 -1
- rasa/shared/nlu/constants.py +9 -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 +19 -11
- 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_entra_id_config.py +541 -0
- rasa/shared/providers/_configs/azure_openai_client_config.py +150 -15
- rasa/shared/providers/_configs/client_config.py +3 -1
- rasa/shared/providers/_configs/default_litellm_client_config.py +9 -7
- rasa/shared/providers/_configs/huggingface_local_embedding_client_config.py +13 -11
- rasa/shared/providers/_configs/litellm_router_client_config.py +12 -10
- rasa/shared/providers/_configs/model_group_config.py +8 -5
- rasa/shared/providers/_configs/oauth_config.py +33 -0
- rasa/shared/providers/_configs/openai_client_config.py +14 -12
- rasa/shared/providers/_configs/rasa_llm_client_config.py +5 -3
- rasa/shared/providers/_configs/self_hosted_llm_client_config.py +12 -11
- 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/constants.py +6 -0
- rasa/shared/providers/embedding/_base_litellm_embedding_client.py +1 -1
- rasa/shared/providers/embedding/azure_openai_embedding_client.py +32 -7
- rasa/shared/providers/embedding/embedding_client.py +1 -1
- rasa/shared/providers/embedding/litellm_router_embedding_client.py +5 -2
- rasa/shared/providers/llm/_base_litellm_client.py +43 -18
- rasa/shared/providers/llm/azure_openai_llm_client.py +90 -34
- rasa/shared/providers/llm/default_litellm_llm_client.py +4 -2
- rasa/shared/providers/llm/litellm_router_llm_client.py +32 -9
- rasa/shared/providers/llm/llm_client.py +24 -8
- rasa/shared/providers/llm/llm_response.py +61 -2
- rasa/shared/providers/llm/openai_llm_client.py +11 -5
- rasa/shared/providers/llm/rasa_llm_client.py +17 -14
- rasa/shared/providers/llm/self_hosted_llm_client.py +35 -15
- rasa/shared/providers/mappings.py +18 -19
- rasa/shared/providers/router/_base_litellm_router_client.py +48 -15
- rasa/shared/providers/router/router_client.py +3 -1
- rasa/shared/utils/cli.py +1 -1
- rasa/shared/utils/common.py +15 -1
- rasa/shared/utils/constants.py +3 -0
- 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 +100 -18
- rasa/shared/utils/pykwalify_extensions.py +25 -1
- rasa/shared/utils/schemas/domain.yml +26 -1
- rasa/shared/utils/schemas/events.py +1 -1
- rasa/shared/utils/yaml.py +24 -20
- 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 +21 -5
- rasa/telemetry.py +127 -48
- rasa/tracing/config.py +5 -3
- rasa/tracing/constants.py +12 -0
- rasa/tracing/instrumentation/attribute_extractors.py +92 -14
- rasa/tracing/instrumentation/instrumentation.py +61 -5
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +1 -1
- rasa/tracing/instrumentation/metrics.py +52 -11
- rasa/tracing/metric_instrument_provider.py +54 -14
- rasa/utils/common.py +12 -24
- 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 +594 -115
- rasa/version.py +1 -1
- {rasa_pro-3.11.5.dist-info → rasa_pro-3.12.0.dist-info}/METADATA +23 -26
- rasa_pro-3.12.0.dist-info/RECORD +829 -0
- rasa/core/channels/inspector/dist/assets/channel-e265ea59.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-21f8a43d.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-5c8ce12d.js +0 -1
- rasa_pro-3.11.5.dist-info/RECORD +0 -785
- /rasa/dialogue_understanding/generator/{single_step → prompt_templates}/command_prompt_template.jinja2 +0 -0
- {rasa_pro-3.11.5.dist-info → rasa_pro-3.12.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.11.5.dist-info → rasa_pro-3.12.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.11.5.dist-info → rasa_pro-3.12.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
from rasa.core.policies.enterprise_search_policy import EnterpriseSearchPolicy
|
|
2
2
|
from rasa.core.policies.flow_policy import FlowPolicy
|
|
3
|
+
from rasa.core.policies.intentless_policy import IntentlessPolicy
|
|
4
|
+
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
5
|
+
from rasa.core.policies.rule_policy import RulePolicy
|
|
6
|
+
from rasa.core.policies.ted_policy import TEDPolicy
|
|
7
|
+
from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
3
8
|
from rasa.dialogue_understanding.coexistence.intent_based_router import (
|
|
4
9
|
IntentBasedRouter,
|
|
5
10
|
)
|
|
6
11
|
from rasa.dialogue_understanding.coexistence.llm_based_router import LLMBasedRouter
|
|
7
|
-
from rasa.
|
|
12
|
+
from rasa.dialogue_understanding.generator import (
|
|
13
|
+
LLMCommandGenerator,
|
|
14
|
+
)
|
|
8
15
|
from rasa.dialogue_understanding.generator.nlu_command_adapter import NLUCommandAdapter
|
|
9
16
|
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
10
17
|
from rasa.nlu.classifiers.fallback_classifier import FallbackClassifier
|
|
11
18
|
from rasa.nlu.classifiers.keyword_intent_classifier import KeywordIntentClassifier
|
|
12
|
-
from rasa.dialogue_understanding.generator import (
|
|
13
|
-
LLMCommandGenerator,
|
|
14
|
-
)
|
|
15
19
|
from rasa.nlu.classifiers.logistic_regression_classifier import (
|
|
16
20
|
LogisticRegressionClassifier,
|
|
17
21
|
)
|
|
@@ -21,18 +25,18 @@ from rasa.nlu.extractors.crf_entity_extractor import CRFEntityExtractor
|
|
|
21
25
|
from rasa.nlu.extractors.duckling_entity_extractor import DucklingEntityExtractor
|
|
22
26
|
from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
|
|
23
27
|
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
24
|
-
from rasa.nlu.extractors.spacy_entity_extractor import SpacyEntityExtractor
|
|
25
28
|
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
26
|
-
from rasa.nlu.
|
|
27
|
-
LexicalSyntacticFeaturizer,
|
|
28
|
-
)
|
|
29
|
+
from rasa.nlu.extractors.spacy_entity_extractor import SpacyEntityExtractor
|
|
29
30
|
from rasa.nlu.featurizers.dense_featurizer.convert_featurizer import ConveRTFeaturizer
|
|
31
|
+
from rasa.nlu.featurizers.dense_featurizer.lm_featurizer import LanguageModelFeaturizer
|
|
30
32
|
from rasa.nlu.featurizers.dense_featurizer.mitie_featurizer import MitieFeaturizer
|
|
31
33
|
from rasa.nlu.featurizers.dense_featurizer.spacy_featurizer import SpacyFeaturizer
|
|
32
34
|
from rasa.nlu.featurizers.sparse_featurizer.count_vectors_featurizer import (
|
|
33
35
|
CountVectorsFeaturizer,
|
|
34
36
|
)
|
|
35
|
-
from rasa.nlu.featurizers.
|
|
37
|
+
from rasa.nlu.featurizers.sparse_featurizer.lexical_syntactic_featurizer import (
|
|
38
|
+
LexicalSyntacticFeaturizer,
|
|
39
|
+
)
|
|
36
40
|
from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
|
|
37
41
|
from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
38
42
|
from rasa.nlu.tokenizers.jieba_tokenizer import JiebaTokenizer
|
|
@@ -42,12 +46,6 @@ from rasa.nlu.tokenizers.whitespace_tokenizer import WhitespaceTokenizer
|
|
|
42
46
|
from rasa.nlu.utils.mitie_utils import MitieNLP
|
|
43
47
|
from rasa.nlu.utils.spacy_utils import SpacyNLP
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
from rasa.core.policies.ted_policy import TEDPolicy
|
|
47
|
-
from rasa.core.policies.memoization import MemoizationPolicy, AugmentedMemoizationPolicy
|
|
48
|
-
from rasa.core.policies.rule_policy import RulePolicy
|
|
49
|
-
from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
50
|
-
|
|
51
49
|
DEFAULT_COMPONENTS = [
|
|
52
50
|
# Message Classifiers
|
|
53
51
|
DIETClassifier,
|
|
@@ -1,65 +1,72 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import copy
|
|
4
|
+
import dataclasses
|
|
4
5
|
import enum
|
|
5
6
|
import logging
|
|
6
7
|
import math
|
|
7
8
|
from enum import Enum
|
|
8
|
-
from typing import
|
|
9
|
-
|
|
10
|
-
import dataclasses
|
|
9
|
+
from typing import Any, Callable, Dict, List, Optional, Set, Text, Tuple, Type, Union
|
|
11
10
|
|
|
11
|
+
import rasa.shared.constants
|
|
12
12
|
from rasa.core.featurizers.precomputation import (
|
|
13
|
-
CoreFeaturizationInputConverter,
|
|
14
13
|
CoreFeaturizationCollector,
|
|
14
|
+
CoreFeaturizationInputConverter,
|
|
15
15
|
)
|
|
16
|
-
from rasa.
|
|
16
|
+
from rasa.core.policies.ensemble import DefaultPolicyPredictionEnsemble
|
|
17
17
|
from rasa.dialogue_understanding.processor.command_processor_component import (
|
|
18
18
|
CommandProcessorComponent,
|
|
19
19
|
)
|
|
20
|
-
from rasa.shared.exceptions import FileNotFoundException
|
|
21
|
-
from rasa.core.policies.ensemble import DefaultPolicyPredictionEnsemble
|
|
22
|
-
|
|
23
|
-
from rasa.engine.graph import (
|
|
24
|
-
GraphSchema,
|
|
25
|
-
GraphComponent,
|
|
26
|
-
SchemaNode,
|
|
27
|
-
GraphModelConfiguration,
|
|
28
|
-
)
|
|
29
20
|
from rasa.engine.constants import (
|
|
21
|
+
PLACEHOLDER_ENDPOINTS,
|
|
30
22
|
PLACEHOLDER_IMPORTER,
|
|
31
23
|
PLACEHOLDER_MESSAGE,
|
|
32
24
|
PLACEHOLDER_TRACKER,
|
|
33
|
-
|
|
25
|
+
)
|
|
26
|
+
from rasa.engine.graph import (
|
|
27
|
+
GraphComponent,
|
|
28
|
+
GraphModelConfiguration,
|
|
29
|
+
GraphSchema,
|
|
30
|
+
SchemaNode,
|
|
34
31
|
)
|
|
35
32
|
from rasa.engine.recipes.recipe import Recipe
|
|
36
33
|
from rasa.engine.storage.resource import Resource
|
|
37
34
|
from rasa.graph_components.converters.nlu_message_converter import NLUMessageConverter
|
|
38
|
-
from rasa.graph_components.providers.domain_provider import DomainProvider
|
|
39
|
-
from rasa.graph_components.providers.forms_provider import FormsProvider
|
|
40
|
-
from rasa.graph_components.providers.responses_provider import ResponsesProvider
|
|
41
35
|
from rasa.graph_components.providers.domain_for_core_training_provider import (
|
|
42
36
|
DomainForCoreTrainingProvider,
|
|
43
37
|
)
|
|
38
|
+
from rasa.graph_components.providers.domain_provider import DomainProvider
|
|
39
|
+
from rasa.graph_components.providers.flows_provider import FlowsProvider
|
|
40
|
+
from rasa.graph_components.providers.forms_provider import FormsProvider
|
|
44
41
|
from rasa.graph_components.providers.nlu_training_data_provider import (
|
|
45
42
|
NLUTrainingDataProvider,
|
|
46
43
|
)
|
|
44
|
+
from rasa.graph_components.providers.responses_provider import ResponsesProvider
|
|
47
45
|
from rasa.graph_components.providers.rule_only_provider import RuleOnlyDataProvider
|
|
48
46
|
from rasa.graph_components.providers.story_graph_provider import StoryGraphProvider
|
|
49
47
|
from rasa.graph_components.providers.training_tracker_provider import (
|
|
50
48
|
TrainingTrackerProvider,
|
|
51
49
|
)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
from rasa.shared.constants import (
|
|
51
|
+
ASSISTANT_ID_KEY,
|
|
52
|
+
CONFIG_ADDITIONAL_LANGUAGES_KEY,
|
|
53
|
+
CONFIG_LANGUAGE_KEY,
|
|
54
|
+
CONFIG_NAME_KEY,
|
|
55
|
+
CONFIG_PIPELINE_KEY,
|
|
56
|
+
CONFIG_POLICIES_KEY,
|
|
57
|
+
)
|
|
55
58
|
from rasa.shared.data import TrainingType
|
|
56
|
-
from rasa.shared.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
from rasa.shared.exceptions import (
|
|
60
|
+
FileNotFoundException,
|
|
61
|
+
InvalidConfigException,
|
|
62
|
+
RasaException,
|
|
63
|
+
)
|
|
59
64
|
from rasa.shared.utils.common import (
|
|
60
65
|
class_from_module_path,
|
|
61
66
|
transform_collection_to_sentence,
|
|
62
67
|
)
|
|
68
|
+
from rasa.shared.utils.yaml import read_config_file
|
|
69
|
+
from rasa.utils.tensorflow.constants import EPOCHS
|
|
63
70
|
|
|
64
71
|
logger = logging.getLogger(__name__)
|
|
65
72
|
|
|
@@ -67,13 +74,13 @@ logger = logging.getLogger(__name__)
|
|
|
67
74
|
DEFAULT_PREDICT_KWARGS = dict(constructor_name="load", eager=True, is_target=False)
|
|
68
75
|
|
|
69
76
|
COMMENTS_FOR_KEYS = {
|
|
70
|
-
|
|
77
|
+
CONFIG_PIPELINE_KEY: (
|
|
71
78
|
f"# # No configuration for the NLU pipeline was provided. The following "
|
|
72
79
|
f"default pipeline was used to train your model.\n"
|
|
73
80
|
f"# # If you'd like to customize it, uncomment and adjust the pipeline.\n"
|
|
74
81
|
f"# # See {rasa.shared.constants.DOCS_URL_PIPELINE} for more information.\n"
|
|
75
82
|
),
|
|
76
|
-
|
|
83
|
+
CONFIG_POLICIES_KEY: (
|
|
77
84
|
f"# # No configuration for policies was provided. The following default "
|
|
78
85
|
f"policies were used to train your model.\n"
|
|
79
86
|
f"# # If you'd like to customize them, uncomment and adjust the policies.\n"
|
|
@@ -82,6 +89,10 @@ COMMENTS_FOR_KEYS = {
|
|
|
82
89
|
}
|
|
83
90
|
|
|
84
91
|
|
|
92
|
+
GRAPH_NODE_RUN_PREFIX = "run_"
|
|
93
|
+
GRAPH_NODE_TRAIN_PREFIX = "train_"
|
|
94
|
+
|
|
95
|
+
|
|
85
96
|
class DefaultV1RecipeRegisterException(RasaException):
|
|
86
97
|
"""If you register a class which is not of type `GraphComponent`."""
|
|
87
98
|
|
|
@@ -194,10 +205,12 @@ class DefaultV1Recipe(Recipe):
|
|
|
194
205
|
) -> GraphModelConfiguration:
|
|
195
206
|
"""Converts the default config to graphs (see interface for full docstring)."""
|
|
196
207
|
self._use_core = (
|
|
197
|
-
bool(config.get(
|
|
208
|
+
bool(config.get(CONFIG_POLICIES_KEY))
|
|
209
|
+
and not training_type == TrainingType.NLU
|
|
198
210
|
)
|
|
199
211
|
self._use_nlu = (
|
|
200
|
-
bool(config.get(
|
|
212
|
+
bool(config.get(CONFIG_PIPELINE_KEY))
|
|
213
|
+
and not training_type == TrainingType.CORE
|
|
201
214
|
)
|
|
202
215
|
|
|
203
216
|
if not self._use_nlu and training_type == TrainingType.NLU:
|
|
@@ -232,9 +245,10 @@ class DefaultV1Recipe(Recipe):
|
|
|
232
245
|
predict_schema=GraphSchema(predict_nodes),
|
|
233
246
|
training_type=training_type,
|
|
234
247
|
assistant_id=config.get(ASSISTANT_ID_KEY),
|
|
235
|
-
language=config.get(
|
|
248
|
+
language=config.get(CONFIG_LANGUAGE_KEY),
|
|
236
249
|
core_target=core_target,
|
|
237
|
-
nlu_target=f"
|
|
250
|
+
nlu_target=f"{GRAPH_NODE_RUN_PREFIX}{RegexMessageHandler.__name__}",
|
|
251
|
+
additional_languages=config.get(CONFIG_ADDITIONAL_LANGUAGES_KEY),
|
|
238
252
|
)
|
|
239
253
|
|
|
240
254
|
def _create_train_nodes(
|
|
@@ -317,7 +331,7 @@ class DefaultV1Recipe(Recipe):
|
|
|
317
331
|
constructor_name="create",
|
|
318
332
|
fn="provide",
|
|
319
333
|
config={
|
|
320
|
-
"language": train_config.get(
|
|
334
|
+
"language": train_config.get(CONFIG_LANGUAGE_KEY),
|
|
321
335
|
"persist": persist_nlu_data,
|
|
322
336
|
},
|
|
323
337
|
is_target=persist_nlu_data,
|
|
@@ -327,8 +341,8 @@ class DefaultV1Recipe(Recipe):
|
|
|
327
341
|
last_run_node = "nlu_training_data_provider"
|
|
328
342
|
preprocessors: List[Text] = []
|
|
329
343
|
|
|
330
|
-
for idx, config in enumerate(train_config[
|
|
331
|
-
component_name = config.pop(
|
|
344
|
+
for idx, config in enumerate(train_config[CONFIG_PIPELINE_KEY]):
|
|
345
|
+
component_name = config.pop(CONFIG_NAME_KEY)
|
|
332
346
|
component = self._from_registry(component_name)
|
|
333
347
|
component_name = f"{component_name}{idx}"
|
|
334
348
|
|
|
@@ -451,7 +465,7 @@ class DefaultV1Recipe(Recipe):
|
|
|
451
465
|
needs.update(self._get_model_provider_needs(train_nodes, component))
|
|
452
466
|
needs["training_data"] = last_run_node
|
|
453
467
|
|
|
454
|
-
train_node_name = f"
|
|
468
|
+
train_node_name = f"{GRAPH_NODE_TRAIN_PREFIX}{component_name}"
|
|
455
469
|
train_nodes[train_node_name] = SchemaNode(
|
|
456
470
|
needs=needs,
|
|
457
471
|
uses=component,
|
|
@@ -469,10 +483,10 @@ class DefaultV1Recipe(Recipe):
|
|
|
469
483
|
component_config: Dict[Text, Any],
|
|
470
484
|
) -> Dict[Text, Any]:
|
|
471
485
|
from rasa.nlu.classifiers.mitie_intent_classifier import MitieIntentClassifier
|
|
472
|
-
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
473
486
|
from rasa.nlu.classifiers.sklearn_intent_classifier import (
|
|
474
487
|
SklearnIntentClassifier,
|
|
475
488
|
)
|
|
489
|
+
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
476
490
|
|
|
477
491
|
cli_args_mapping: Dict[Type[GraphComponent], List[Text]] = {
|
|
478
492
|
MitieIntentClassifier: ["num_threads"],
|
|
@@ -520,7 +534,7 @@ class DefaultV1Recipe(Recipe):
|
|
|
520
534
|
|
|
521
535
|
needs["training_data"] = last_run_node
|
|
522
536
|
|
|
523
|
-
node_name = f"
|
|
537
|
+
node_name = f"{GRAPH_NODE_RUN_PREFIX}{component_name}"
|
|
524
538
|
train_nodes[node_name] = SchemaNode(
|
|
525
539
|
needs=needs,
|
|
526
540
|
uses=component_class,
|
|
@@ -627,8 +641,8 @@ class DefaultV1Recipe(Recipe):
|
|
|
627
641
|
)
|
|
628
642
|
|
|
629
643
|
policy_with_end_to_end_support_used = False
|
|
630
|
-
for idx, config in enumerate(train_config[
|
|
631
|
-
component_name = config.pop(
|
|
644
|
+
for idx, config in enumerate(train_config[CONFIG_POLICIES_KEY]):
|
|
645
|
+
component_name = config.pop(CONFIG_NAME_KEY)
|
|
632
646
|
component = self._from_registry(component_name)
|
|
633
647
|
|
|
634
648
|
extra_config_from_cli = self._extra_config_from_cli(
|
|
@@ -647,7 +661,7 @@ class DefaultV1Recipe(Recipe):
|
|
|
647
661
|
needs["precomputations"] = "end_to_end_features_provider"
|
|
648
662
|
# during core training we use a stripped down version of the domain
|
|
649
663
|
needs["domain"] = "domain_for_core_training_provider"
|
|
650
|
-
train_nodes[f"
|
|
664
|
+
train_nodes[f"{GRAPH_NODE_TRAIN_PREFIX}{component_name}{idx}"] = SchemaNode(
|
|
651
665
|
needs=needs,
|
|
652
666
|
uses=component.clazz,
|
|
653
667
|
constructor_name="load" if self._is_finetuning else "create",
|
|
@@ -722,7 +736,9 @@ class DefaultV1Recipe(Recipe):
|
|
|
722
736
|
if self._use_core:
|
|
723
737
|
domain_needs["domain"] = "domain_provider"
|
|
724
738
|
|
|
725
|
-
regex_handler_node_name =
|
|
739
|
+
regex_handler_node_name = (
|
|
740
|
+
f"{GRAPH_NODE_RUN_PREFIX}{RegexMessageHandler.__name__}"
|
|
741
|
+
)
|
|
726
742
|
predict_nodes[regex_handler_node_name] = SchemaNode(
|
|
727
743
|
**DEFAULT_PREDICT_KWARGS,
|
|
728
744
|
needs={"messages": last_run_nlu_node, **domain_needs},
|
|
@@ -762,8 +778,8 @@ class DefaultV1Recipe(Recipe):
|
|
|
762
778
|
resource=Resource("domain_provider"),
|
|
763
779
|
)
|
|
764
780
|
|
|
765
|
-
for idx, config in enumerate(predict_config[
|
|
766
|
-
component_name = config.pop(
|
|
781
|
+
for idx, config in enumerate(predict_config[CONFIG_PIPELINE_KEY]):
|
|
782
|
+
component_name = config.pop(CONFIG_NAME_KEY)
|
|
767
783
|
component = self._from_registry(component_name)
|
|
768
784
|
component_name = f"{component_name}{idx}"
|
|
769
785
|
if self.ComponentType.MODEL_LOADER in component.types:
|
|
@@ -830,10 +846,10 @@ class DefaultV1Recipe(Recipe):
|
|
|
830
846
|
item_config: Dict[Text, Any],
|
|
831
847
|
from_resource: bool = False,
|
|
832
848
|
) -> Text:
|
|
833
|
-
train_node_name = f"
|
|
849
|
+
train_node_name = f"{GRAPH_NODE_RUN_PREFIX}{node_name}"
|
|
834
850
|
resource = None
|
|
835
851
|
if from_resource:
|
|
836
|
-
train_node_name = f"
|
|
852
|
+
train_node_name = f"{GRAPH_NODE_TRAIN_PREFIX}{node_name}"
|
|
837
853
|
resource = Resource(train_node_name)
|
|
838
854
|
|
|
839
855
|
return self._add_nlu_predict_node(
|
|
@@ -852,7 +868,7 @@ class DefaultV1Recipe(Recipe):
|
|
|
852
868
|
component_name: Text,
|
|
853
869
|
last_run_node: Text,
|
|
854
870
|
) -> Text:
|
|
855
|
-
node_name = f"
|
|
871
|
+
node_name = f"{GRAPH_NODE_RUN_PREFIX}{component_name}"
|
|
856
872
|
|
|
857
873
|
needs = self._get_needs_from_args(node.uses, "process")
|
|
858
874
|
needs.update(self._get_model_provider_needs(predict_nodes, node.uses))
|
|
@@ -919,12 +935,12 @@ class DefaultV1Recipe(Recipe):
|
|
|
919
935
|
rule_policy_resource = None
|
|
920
936
|
policies: List[Text] = []
|
|
921
937
|
|
|
922
|
-
for idx, config in enumerate(predict_config[
|
|
923
|
-
component_name = config.pop(
|
|
938
|
+
for idx, config in enumerate(predict_config[CONFIG_POLICIES_KEY]):
|
|
939
|
+
component_name = config.pop(CONFIG_NAME_KEY)
|
|
924
940
|
component = self._from_registry(component_name)
|
|
925
941
|
|
|
926
|
-
train_node_name = f"
|
|
927
|
-
node_name = f"
|
|
942
|
+
train_node_name = f"{GRAPH_NODE_TRAIN_PREFIX}{component_name}{idx}"
|
|
943
|
+
node_name = f"{GRAPH_NODE_RUN_PREFIX}{component_name}{idx}"
|
|
928
944
|
|
|
929
945
|
from rasa.core.policies.rule_policy import RulePolicy
|
|
930
946
|
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from typing import Any, Dict, Text, Tuple
|
|
2
3
|
|
|
4
|
+
from rasa.engine.graph import GraphModelConfiguration, GraphSchema
|
|
3
5
|
from rasa.engine.recipes.recipe import Recipe
|
|
4
|
-
from rasa.
|
|
5
|
-
|
|
6
|
+
from rasa.shared.constants import (
|
|
7
|
+
ASSISTANT_ID_KEY,
|
|
8
|
+
CONFIG_ADDITIONAL_LANGUAGES_KEY,
|
|
9
|
+
CONFIG_LANGUAGE_KEY,
|
|
10
|
+
DOCS_URL_GRAPH_RECIPE,
|
|
11
|
+
)
|
|
6
12
|
from rasa.shared.data import TrainingType
|
|
7
13
|
from rasa.shared.exceptions import InvalidConfigException
|
|
8
14
|
from rasa.shared.utils.common import mark_as_experimental_feature
|
|
9
15
|
from rasa.shared.utils.io import raise_warning
|
|
10
|
-
from rasa.engine.graph import GraphSchema
|
|
11
|
-
|
|
12
|
-
from typing import Dict, Text, Any, Tuple
|
|
13
|
-
|
|
14
16
|
|
|
15
17
|
logger = logging.getLogger(__name__)
|
|
16
18
|
|
|
@@ -72,7 +74,8 @@ class GraphV1Recipe(Recipe):
|
|
|
72
74
|
predict_schema=GraphSchema.from_dict(config.get("predict_schema")),
|
|
73
75
|
training_type=training_type,
|
|
74
76
|
assistant_id=config.get(ASSISTANT_ID_KEY),
|
|
75
|
-
language=config.get(
|
|
77
|
+
language=config.get(CONFIG_LANGUAGE_KEY),
|
|
76
78
|
core_target=core_target,
|
|
77
79
|
nlu_target=nlu_target,
|
|
80
|
+
additional_languages=config.get(CONFIG_ADDITIONAL_LANGUAGES_KEY),
|
|
78
81
|
)
|
rasa/engine/recipes/recipe.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import Any, Dict, Optional, Set, Text, Tuple
|
|
5
5
|
|
|
6
6
|
import rasa.shared.utils.io
|
|
7
7
|
from rasa.engine.graph import GraphModelConfiguration
|
|
8
|
-
from rasa.shared.exceptions import RasaException
|
|
9
8
|
from rasa.shared.data import TrainingType
|
|
9
|
+
from rasa.shared.exceptions import RasaException
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class InvalidRecipeException(RasaException):
|
rasa/engine/runner/dask.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import asyncio
|
|
3
4
|
import logging
|
|
4
5
|
from typing import Any, Dict, List, Optional, Text
|
|
5
6
|
|
|
6
|
-
import dask.local
|
|
7
7
|
import dask.core
|
|
8
|
-
import
|
|
8
|
+
import dask.local
|
|
9
9
|
|
|
10
10
|
from rasa.engine.exceptions import GraphRunError
|
|
11
11
|
from rasa.engine.graph import ExecutionContext, GraphNode, GraphNodeHook, GraphSchema
|
rasa/engine/runner/interface.py
CHANGED
|
@@ -8,17 +8,18 @@ import uuid
|
|
|
8
8
|
from contextlib import contextmanager
|
|
9
9
|
from datetime import datetime
|
|
10
10
|
from pathlib import Path
|
|
11
|
-
from tarsafe import TarSafe
|
|
12
11
|
from typing import Generator, Optional, Text, Tuple, Union
|
|
13
12
|
|
|
14
|
-
import
|
|
13
|
+
from tarsafe import TarSafe
|
|
14
|
+
|
|
15
|
+
import rasa.model
|
|
15
16
|
import rasa.shared.utils.io
|
|
16
|
-
|
|
17
|
+
import rasa.utils.common
|
|
17
18
|
from rasa.engine.graph import GraphModelConfiguration
|
|
18
19
|
from rasa.engine.storage.resource import Resource
|
|
20
|
+
from rasa.engine.storage.storage import ModelMetadata, ModelStorage
|
|
19
21
|
from rasa.exceptions import UnsupportedModelVersionError
|
|
20
22
|
from rasa.shared.core.domain import Domain
|
|
21
|
-
import rasa.model
|
|
22
23
|
|
|
23
24
|
logger = logging.getLogger(__name__)
|
|
24
25
|
|
|
@@ -239,6 +240,7 @@ class LocalModelStorage(ModelStorage):
|
|
|
239
240
|
training_type=model_configuration.training_type,
|
|
240
241
|
project_fingerprint=rasa.model.project_fingerprint(),
|
|
241
242
|
language=model_configuration.language,
|
|
243
|
+
additional_languages=model_configuration.additional_languages,
|
|
242
244
|
core_target=model_configuration.core_target,
|
|
243
245
|
nlu_target=model_configuration.nlu_target,
|
|
244
246
|
)
|
rasa/engine/storage/resource.py
CHANGED
rasa/engine/storage/storage.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
import abc
|
|
3
4
|
import logging
|
|
4
5
|
import typing
|
|
@@ -6,17 +7,18 @@ from contextlib import contextmanager
|
|
|
6
7
|
from dataclasses import dataclass
|
|
7
8
|
from datetime import datetime
|
|
8
9
|
from pathlib import Path
|
|
9
|
-
from typing import
|
|
10
|
+
from typing import Any, Dict, Generator, List, Optional, Text, Tuple, Union
|
|
11
|
+
|
|
10
12
|
from packaging import version
|
|
11
13
|
|
|
12
14
|
from rasa.constants import MINIMUM_COMPATIBLE_VERSION
|
|
13
|
-
from rasa.exceptions import UnsupportedModelVersionError
|
|
14
15
|
from rasa.engine.storage.resource import Resource
|
|
16
|
+
from rasa.exceptions import UnsupportedModelVersionError
|
|
15
17
|
from rasa.shared.core.domain import Domain
|
|
16
18
|
from rasa.shared.data import TrainingType
|
|
17
19
|
|
|
18
20
|
if typing.TYPE_CHECKING:
|
|
19
|
-
from rasa.engine.graph import
|
|
21
|
+
from rasa.engine.graph import GraphModelConfiguration, GraphSchema
|
|
20
22
|
|
|
21
23
|
logger = logging.getLogger(__name__)
|
|
22
24
|
|
|
@@ -140,6 +142,7 @@ class ModelMetadata:
|
|
|
140
142
|
core_target: Optional[Text]
|
|
141
143
|
nlu_target: Text
|
|
142
144
|
language: Optional[Text]
|
|
145
|
+
additional_languages: Optional[List[Text]]
|
|
143
146
|
training_type: TrainingType = TrainingType.BOTH
|
|
144
147
|
|
|
145
148
|
def __post_init__(self) -> None:
|
|
@@ -169,6 +172,7 @@ class ModelMetadata:
|
|
|
169
172
|
"core_target": self.core_target,
|
|
170
173
|
"nlu_target": self.nlu_target,
|
|
171
174
|
"language": self.language,
|
|
175
|
+
"additional_languages": self.additional_languages,
|
|
172
176
|
}
|
|
173
177
|
|
|
174
178
|
@classmethod
|
|
@@ -196,4 +200,5 @@ class ModelMetadata:
|
|
|
196
200
|
core_target=serialized["core_target"],
|
|
197
201
|
nlu_target=serialized["nlu_target"],
|
|
198
202
|
language=serialized["language"],
|
|
203
|
+
additional_languages=serialized.get("additional_languages"),
|
|
199
204
|
)
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import dataclasses
|
|
4
4
|
import uuid
|
|
5
|
+
from typing import Any, Dict, Optional, Text, Type
|
|
5
6
|
|
|
6
7
|
from rasa.engine.caching import Cacheable, TrainingCache
|
|
7
8
|
from rasa.engine.graph import ExecutionContext, GraphComponent, SchemaNode
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import inspect
|
|
2
2
|
import logging
|
|
3
3
|
from typing import Any, Dict, Text, Type
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import importlib_metadata
|
|
6
|
-
import
|
|
6
|
+
from typing_extensions import Protocol, runtime_checkable
|
|
7
|
+
|
|
7
8
|
import rasa.shared.utils.io
|
|
9
|
+
import rasa.utils.common
|
|
8
10
|
from rasa.engine.graph import GraphComponent
|
|
9
11
|
|
|
10
12
|
logger = logging.getLogger(__name__)
|
|
@@ -4,16 +4,16 @@ from pathlib import Path
|
|
|
4
4
|
from typing import Any, Dict, Text, Type, Union
|
|
5
5
|
|
|
6
6
|
from rasa.engine.caching import TrainingCache
|
|
7
|
-
from rasa.engine.graph import ExecutionContext, GraphSchema, GraphModelConfiguration
|
|
8
7
|
from rasa.engine.constants import PLACEHOLDER_IMPORTER
|
|
8
|
+
from rasa.engine.graph import ExecutionContext, GraphModelConfiguration, GraphSchema
|
|
9
9
|
from rasa.engine.runner.interface import GraphRunner
|
|
10
|
-
from rasa.engine.storage.storage import
|
|
10
|
+
from rasa.engine.storage.storage import ModelMetadata, ModelStorage
|
|
11
11
|
from rasa.engine.training.components import (
|
|
12
|
-
PrecomputedValueProvider,
|
|
13
12
|
FingerprintComponent,
|
|
14
13
|
FingerprintStatus,
|
|
14
|
+
PrecomputedValueProvider,
|
|
15
15
|
)
|
|
16
|
-
from rasa.engine.training.hooks import
|
|
16
|
+
from rasa.engine.training.hooks import LoggingHook, TrainingHook
|
|
17
17
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
18
18
|
|
|
19
19
|
logger = logging.getLogger(__name__)
|
rasa/engine/training/hooks.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from typing import Any, Dict, Text, Type
|
|
3
3
|
|
|
4
|
+
import rasa.shared.utils.io
|
|
4
5
|
from rasa.engine.caching import TrainingCache
|
|
5
6
|
from rasa.engine.graph import ExecutionContext, GraphNodeHook, GraphSchema, SchemaNode
|
|
6
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
7
|
-
from rasa.engine.training.components import PrecomputedValueProvider
|
|
8
|
-
import rasa.shared.utils.io
|
|
9
8
|
from rasa.engine.training import fingerprinting
|
|
9
|
+
from rasa.engine.training.components import PrecomputedValueProvider
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|