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,21 +1,20 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
-
from collections import deque, defaultdict
|
|
4
|
-
|
|
5
|
-
import uuid
|
|
6
3
|
import typing
|
|
4
|
+
import uuid
|
|
5
|
+
from collections import defaultdict, deque
|
|
7
6
|
from typing import (
|
|
8
|
-
|
|
9
|
-
Text,
|
|
7
|
+
Any,
|
|
10
8
|
Deque,
|
|
11
9
|
Dict,
|
|
10
|
+
List,
|
|
12
11
|
Optional,
|
|
13
|
-
|
|
14
|
-
Any,
|
|
12
|
+
Sequence,
|
|
15
13
|
Set,
|
|
16
|
-
|
|
14
|
+
Text,
|
|
15
|
+
Tuple,
|
|
17
16
|
Union,
|
|
18
|
-
|
|
17
|
+
ValuesView,
|
|
19
18
|
)
|
|
20
19
|
|
|
21
20
|
import rasa.shared.utils.io
|
|
@@ -27,16 +26,15 @@ from rasa.shared.core.constants import (
|
|
|
27
26
|
from rasa.shared.core.conversation import Dialogue
|
|
28
27
|
from rasa.shared.core.domain import Domain
|
|
29
28
|
from rasa.shared.core.events import (
|
|
30
|
-
UserUttered,
|
|
31
29
|
ActionExecuted,
|
|
32
30
|
Event,
|
|
33
31
|
SessionStarted,
|
|
34
32
|
SlotSet,
|
|
33
|
+
UserUttered,
|
|
35
34
|
)
|
|
36
35
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
37
36
|
from rasa.shared.exceptions import RasaCoreException
|
|
38
37
|
|
|
39
|
-
|
|
40
38
|
if typing.TYPE_CHECKING:
|
|
41
39
|
import networkx as nx
|
|
42
40
|
|
|
@@ -740,9 +738,10 @@ class StoryGraph:
|
|
|
740
738
|
|
|
741
739
|
def visualize(self, output_file: Optional[Text] = None) -> "nx.MultiDiGraph":
|
|
742
740
|
import networkx as nx
|
|
743
|
-
from rasa.shared.core.training_data import visualization
|
|
744
741
|
from colorhash import ColorHash
|
|
745
742
|
|
|
743
|
+
from rasa.shared.core.training_data import visualization
|
|
744
|
+
|
|
746
745
|
graph = nx.MultiDiGraph()
|
|
747
746
|
next_node_idx = [0]
|
|
748
747
|
nodes = {"STORY_START": 0, "STORY_END": -1}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
from collections import defaultdict, deque
|
|
2
|
-
|
|
3
1
|
import random
|
|
2
|
+
from collections import defaultdict, deque
|
|
4
3
|
from typing import (
|
|
4
|
+
TYPE_CHECKING,
|
|
5
5
|
Any,
|
|
6
|
-
Text,
|
|
7
|
-
List,
|
|
8
6
|
Deque,
|
|
9
7
|
Dict,
|
|
8
|
+
List,
|
|
10
9
|
Optional,
|
|
11
10
|
Set,
|
|
12
|
-
|
|
11
|
+
Text,
|
|
13
12
|
Union,
|
|
14
13
|
cast,
|
|
15
14
|
)
|
|
@@ -18,22 +17,23 @@ import rasa.shared.utils.io
|
|
|
18
17
|
from rasa.shared.constants import INTENT_MESSAGE_PREFIX
|
|
19
18
|
from rasa.shared.core.constants import ACTION_LISTEN_NAME
|
|
20
19
|
from rasa.shared.core.domain import Domain
|
|
21
|
-
from rasa.shared.core.events import
|
|
20
|
+
from rasa.shared.core.events import ActionExecuted, Event, UserUttered
|
|
22
21
|
from rasa.shared.core.generator import TrainingDataGenerator
|
|
23
22
|
from rasa.shared.core.training_data.structures import StoryGraph, StoryStep
|
|
24
23
|
from rasa.shared.nlu.constants import (
|
|
24
|
+
ENTITY_ATTRIBUTE_TYPE,
|
|
25
25
|
ENTITY_ATTRIBUTE_VALUE,
|
|
26
26
|
INTENT,
|
|
27
|
-
TEXT,
|
|
28
|
-
ENTITY_ATTRIBUTE_TYPE,
|
|
29
27
|
INTENT_NAME_KEY,
|
|
28
|
+
TEXT,
|
|
30
29
|
)
|
|
31
30
|
|
|
32
31
|
if TYPE_CHECKING:
|
|
33
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
34
|
-
from rasa.shared.nlu.training_data.message import Message
|
|
35
32
|
import networkx
|
|
36
33
|
|
|
34
|
+
from rasa.shared.nlu.training_data.message import Message
|
|
35
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
36
|
+
|
|
37
37
|
EDGE_NONE_LABEL = "NONE"
|
|
38
38
|
|
|
39
39
|
START_NODE_ID = 0
|
rasa/shared/data.py
CHANGED
|
@@ -5,16 +5,16 @@ import uuid
|
|
|
5
5
|
from enum import Enum
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
from typing import (
|
|
8
|
+
TYPE_CHECKING,
|
|
8
9
|
Any,
|
|
10
|
+
Callable,
|
|
11
|
+
Iterable,
|
|
12
|
+
List,
|
|
13
|
+
Optional,
|
|
9
14
|
Protocol,
|
|
10
|
-
|
|
15
|
+
Set,
|
|
11
16
|
Text,
|
|
12
|
-
Optional,
|
|
13
17
|
Union,
|
|
14
|
-
List,
|
|
15
|
-
Callable,
|
|
16
|
-
Set,
|
|
17
|
-
Iterable,
|
|
18
18
|
runtime_checkable,
|
|
19
19
|
)
|
|
20
20
|
|
rasa/shared/engine/caching.py
CHANGED
rasa/shared/exceptions.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import Any, Dict, Optional, Text
|
|
3
3
|
|
|
4
4
|
import jsonschema
|
|
5
5
|
from ruamel.yaml.error import (
|
|
6
6
|
MarkedYAMLError,
|
|
7
|
-
MarkedYAMLWarning,
|
|
8
7
|
MarkedYAMLFutureWarning,
|
|
8
|
+
MarkedYAMLWarning,
|
|
9
9
|
)
|
|
10
10
|
|
|
11
11
|
|
|
@@ -20,17 +20,21 @@ import rasa.shared.constants
|
|
|
20
20
|
import rasa.shared.core.constants
|
|
21
21
|
import rasa.shared.utils.common
|
|
22
22
|
import rasa.shared.utils.io
|
|
23
|
+
from rasa.shared.constants import CONFIG_ADDITIONAL_LANGUAGES_KEY, CONFIG_LANGUAGE_KEY
|
|
23
24
|
from rasa.shared.core.domain import (
|
|
24
25
|
IS_RETRIEVAL_INTENT_KEY,
|
|
25
26
|
KEY_ACTIONS,
|
|
26
27
|
KEY_E2E_ACTIONS,
|
|
27
28
|
KEY_INTENTS,
|
|
28
29
|
KEY_RESPONSES,
|
|
30
|
+
KEY_SLOTS,
|
|
29
31
|
Domain,
|
|
30
32
|
)
|
|
31
33
|
from rasa.shared.core.events import ActionExecuted, UserUttered
|
|
32
34
|
from rasa.shared.core.flows import FlowsList
|
|
35
|
+
from rasa.shared.core.slots import StrictCategoricalSlot
|
|
33
36
|
from rasa.shared.core.training_data.structures import StoryGraph
|
|
37
|
+
from rasa.shared.exceptions import RasaException
|
|
34
38
|
from rasa.shared.nlu.constants import ACTION_NAME, ENTITIES
|
|
35
39
|
from rasa.shared.nlu.training_data.message import Message
|
|
36
40
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
@@ -202,8 +206,10 @@ class TrainingDataImporter(ABC):
|
|
|
202
206
|
)
|
|
203
207
|
]
|
|
204
208
|
|
|
205
|
-
return
|
|
206
|
-
|
|
209
|
+
return LanguageImporter(
|
|
210
|
+
E2EImporter(
|
|
211
|
+
FlowSyncImporter(ResponsesSyncImporter(CombinedDataImporter(importers)))
|
|
212
|
+
)
|
|
207
213
|
)
|
|
208
214
|
|
|
209
215
|
@staticmethod
|
|
@@ -522,6 +528,56 @@ class FlowSyncImporter(PassThroughImporter):
|
|
|
522
528
|
return self._importer.get_domain()
|
|
523
529
|
|
|
524
530
|
|
|
531
|
+
class LanguageImporter(PassThroughImporter):
|
|
532
|
+
"""Importer that configures the language settings in the domain."""
|
|
533
|
+
|
|
534
|
+
@cached_method
|
|
535
|
+
def get_domain(self) -> Domain:
|
|
536
|
+
domain = self._importer.get_domain()
|
|
537
|
+
if domain.is_empty():
|
|
538
|
+
return domain
|
|
539
|
+
|
|
540
|
+
domain.remove_builtin_slots()
|
|
541
|
+
slot_name = rasa.shared.core.constants.LANGUAGE_SLOT
|
|
542
|
+
if any(slot.name == slot_name for slot in domain.slots):
|
|
543
|
+
raise RasaException(
|
|
544
|
+
f"The '{slot_name}' slot is a builtin slot that cannot be overridden. "
|
|
545
|
+
f"Please remove its definition from your domain configuration."
|
|
546
|
+
)
|
|
547
|
+
|
|
548
|
+
config = self._importer.get_config()
|
|
549
|
+
language = config.get(CONFIG_LANGUAGE_KEY)
|
|
550
|
+
additional_languages = config.get(CONFIG_ADDITIONAL_LANGUAGES_KEY) or []
|
|
551
|
+
|
|
552
|
+
values = additional_languages.copy()
|
|
553
|
+
if language and language not in values:
|
|
554
|
+
values.append(language)
|
|
555
|
+
|
|
556
|
+
# Prepare the serialized representation of the language slot
|
|
557
|
+
serialized_slot: Dict[Text, Any] = {
|
|
558
|
+
"type": StrictCategoricalSlot.type_name,
|
|
559
|
+
"initial_value": language,
|
|
560
|
+
"values": values,
|
|
561
|
+
"mappings": [],
|
|
562
|
+
"is_builtin": True,
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
domain_with_language_slot = Domain.from_dict(
|
|
566
|
+
{KEY_SLOTS: {slot_name: serialized_slot}}
|
|
567
|
+
)
|
|
568
|
+
return domain.merge(domain_with_language_slot)
|
|
569
|
+
|
|
570
|
+
@cached_method
|
|
571
|
+
def get_user_domain(self) -> Domain:
|
|
572
|
+
"""Delegate to the underlying importer to get the user domain."""
|
|
573
|
+
return self._importer.get_user_domain()
|
|
574
|
+
|
|
575
|
+
@cached_method
|
|
576
|
+
def get_user_flows(self) -> FlowsList:
|
|
577
|
+
"""Delegate to the underlying importer to get user flows."""
|
|
578
|
+
return self._importer.get_user_flows()
|
|
579
|
+
|
|
580
|
+
|
|
525
581
|
class ResponsesSyncImporter(PassThroughImporter):
|
|
526
582
|
"""Importer that syncs `responses` between Domain and NLU training data.
|
|
527
583
|
|
rasa/shared/importers/rasa.py
CHANGED
|
@@ -3,18 +3,17 @@ import os
|
|
|
3
3
|
from typing import Dict, List, Optional, Text, Union
|
|
4
4
|
|
|
5
5
|
import rasa.shared.core.flows.yaml_flows_io
|
|
6
|
-
from rasa.shared.core.flows import FlowsList
|
|
7
|
-
|
|
8
6
|
import rasa.shared.data
|
|
9
7
|
import rasa.shared.utils.io
|
|
8
|
+
from rasa.shared.core.domain import Domain, InvalidDomain
|
|
9
|
+
from rasa.shared.core.flows import FlowsList
|
|
10
|
+
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
11
|
+
YAMLStoryReader,
|
|
12
|
+
)
|
|
10
13
|
from rasa.shared.core.training_data.structures import StoryGraph
|
|
11
14
|
from rasa.shared.importers import utils
|
|
12
15
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
13
16
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
14
|
-
from rasa.shared.core.domain import InvalidDomain, Domain
|
|
15
|
-
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
16
|
-
YAMLStoryReader,
|
|
17
|
-
)
|
|
18
17
|
from rasa.shared.utils.common import cached_method
|
|
19
18
|
from rasa.shared.utils.yaml import read_model_configuration
|
|
20
19
|
|
rasa/shared/importers/utils.py
CHANGED
rasa/shared/nlu/constants.py
CHANGED
|
@@ -2,6 +2,14 @@ TEXT = "text"
|
|
|
2
2
|
TEXT_TOKENS = "text_tokens"
|
|
3
3
|
INTENT = "intent"
|
|
4
4
|
COMMANDS = "commands"
|
|
5
|
+
PREDICTED_COMMANDS = "predicted_commands"
|
|
6
|
+
PROMPTS = "prompts"
|
|
7
|
+
KEY_USER_PROMPT = "user_prompt"
|
|
8
|
+
KEY_SYSTEM_PROMPT = "system_prompt"
|
|
9
|
+
KEY_LLM_RESPONSE_METADATA = "llm_response_metadata"
|
|
10
|
+
KEY_PROMPT_NAME = "prompt_name"
|
|
11
|
+
KEY_COMPONENT_NAME = "component_name"
|
|
12
|
+
KEY_LATENCY = "latency"
|
|
5
13
|
LLM_COMMANDS = "llm_commands" # needed for fine-tuning
|
|
6
14
|
LLM_PROMPT = "llm_prompt" # needed for fine-tuning
|
|
7
15
|
FLOWS_FROM_SEMANTIC_SEARCH = "flows_from_semantic_search"
|
|
@@ -47,3 +55,4 @@ SPLIT_ENTITIES_BY_COMMA_DEFAULT_VALUE = True
|
|
|
47
55
|
SINGLE_ENTITY_ALLOWED_INTERLEAVING_CHARSET = {".", ",", " ", ";"}
|
|
48
56
|
|
|
49
57
|
SET_SLOT_COMMAND = "set slot"
|
|
58
|
+
HANDLE_DIGRESSIONS_COMMAND = "handle digressions"
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
+
import logging
|
|
1
2
|
import re
|
|
2
3
|
from json import JSONDecodeError
|
|
3
|
-
from typing import
|
|
4
|
-
import logging
|
|
4
|
+
from typing import Any, Dict, List, Match, NamedTuple, Optional, Text
|
|
5
5
|
|
|
6
6
|
import rasa.shared.nlu.training_data.util
|
|
7
7
|
from rasa.shared.constants import DOCS_URL_TRAINING_DATA_NLU
|
|
8
8
|
from rasa.shared.exceptions import InvalidEntityFormatException
|
|
9
9
|
from rasa.shared.nlu.constants import (
|
|
10
|
-
ENTITY_ATTRIBUTE_VALUE,
|
|
11
|
-
ENTITY_ATTRIBUTE_TYPE,
|
|
12
10
|
ENTITY_ATTRIBUTE_GROUP,
|
|
13
11
|
ENTITY_ATTRIBUTE_ROLE,
|
|
12
|
+
ENTITY_ATTRIBUTE_TYPE,
|
|
13
|
+
ENTITY_ATTRIBUTE_VALUE,
|
|
14
14
|
)
|
|
15
15
|
from rasa.shared.nlu.training_data.message import Message
|
|
16
16
|
|
|
17
|
-
|
|
18
17
|
GROUP_ENTITY_VALUE = "value"
|
|
19
18
|
GROUP_ENTITY_TYPE = "entity"
|
|
20
19
|
GROUP_ENTITY_DICT = "entity_dict"
|
|
@@ -167,8 +166,9 @@ def get_validated_dict(json_str: Text) -> Dict[Text, Text]:
|
|
|
167
166
|
Deserialized and validated `json_str`.
|
|
168
167
|
"""
|
|
169
168
|
import json
|
|
170
|
-
|
|
169
|
+
|
|
171
170
|
import rasa.shared.nlu.training_data.schemas.data_schema as schema
|
|
171
|
+
from rasa.shared.utils.yaml import validate_training_data
|
|
172
172
|
|
|
173
173
|
# add {} as they are not part of the regex
|
|
174
174
|
try:
|
|
@@ -2,15 +2,15 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import itertools
|
|
4
4
|
from dataclasses import dataclass
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Any, Dict, Iterable, List, Optional, Set, Text, Tuple, Union
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import scipy.sparse
|
|
9
|
-
from safetensors.numpy import
|
|
9
|
+
from safetensors.numpy import load_file, save_file
|
|
10
10
|
|
|
11
11
|
import rasa.shared.nlu.training_data.util
|
|
12
12
|
import rasa.shared.utils.io
|
|
13
|
-
from rasa.shared.nlu.constants import
|
|
13
|
+
from rasa.shared.nlu.constants import FEATURE_TYPE_SENTENCE, FEATURE_TYPE_SEQUENCE
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
@dataclass
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from rasa.shared.nlu.training_data.formats.rasa_yaml import RasaYAMLReader # noqa: F401
|
|
2
1
|
from rasa.shared.nlu.training_data.formats.dialogflow import ( # noqa: F401
|
|
3
2
|
DialogflowReader,
|
|
4
3
|
)
|
|
@@ -7,4 +6,5 @@ from rasa.shared.nlu.training_data.formats.rasa import ( # noqa: F401
|
|
|
7
6
|
RasaReader,
|
|
8
7
|
RasaWriter,
|
|
9
8
|
)
|
|
9
|
+
from rasa.shared.nlu.training_data.formats.rasa_yaml import RasaYAMLReader # noqa: F401
|
|
10
10
|
from rasa.shared.nlu.training_data.formats.wit import WitReader # noqa: F401
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import Any, Dict, Optional, Text,
|
|
4
|
+
from typing import Any, Dict, List, Optional, Text, Tuple, Union
|
|
5
5
|
|
|
6
6
|
import rasa.shared.nlu.training_data.util
|
|
7
|
+
import rasa.shared.utils.io
|
|
7
8
|
from rasa.shared.constants import DOCS_BASE_URL
|
|
8
9
|
from rasa.shared.nlu.training_data.formats.readerwriter import TrainingDataReader
|
|
9
|
-
from rasa.shared.nlu.training_data.util import transform_entity_synonyms
|
|
10
|
-
import rasa.shared.utils.io
|
|
11
|
-
|
|
12
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
13
10
|
from rasa.shared.nlu.training_data.message import Message
|
|
11
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
12
|
+
from rasa.shared.nlu.training_data.util import transform_entity_synonyms
|
|
14
13
|
|
|
15
14
|
logger = logging.getLogger(__name__)
|
|
16
15
|
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from typing import Any, Dict, List, Text
|
|
3
3
|
|
|
4
|
+
import rasa.shared.utils.io
|
|
4
5
|
from rasa.shared.nlu.constants import (
|
|
5
|
-
TEXT,
|
|
6
|
-
INTENT,
|
|
7
6
|
ENTITIES,
|
|
8
|
-
|
|
7
|
+
ENTITY_ATTRIBUTE_END,
|
|
9
8
|
ENTITY_ATTRIBUTE_ROLE,
|
|
10
|
-
ENTITY_ATTRIBUTE_VALUE,
|
|
11
9
|
ENTITY_ATTRIBUTE_START,
|
|
12
|
-
|
|
10
|
+
ENTITY_ATTRIBUTE_TYPE,
|
|
11
|
+
ENTITY_ATTRIBUTE_VALUE,
|
|
12
|
+
INTENT,
|
|
13
13
|
NO_ENTITY_TAG,
|
|
14
|
+
TEXT,
|
|
14
15
|
)
|
|
15
16
|
from rasa.shared.nlu.training_data.formats.readerwriter import JsonTrainingDataReader
|
|
16
|
-
import rasa.shared.utils.io
|
|
17
|
-
|
|
18
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
19
17
|
from rasa.shared.nlu.training_data.message import Message
|
|
18
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
20
19
|
|
|
21
20
|
logger = logging.getLogger(__name__)
|
|
22
21
|
|
|
@@ -2,18 +2,17 @@ import logging
|
|
|
2
2
|
from collections import defaultdict
|
|
3
3
|
from typing import Any, Dict, Text
|
|
4
4
|
|
|
5
|
+
import rasa.shared.utils.io
|
|
5
6
|
from rasa.shared.constants import DOCS_URL_MIGRATION_GUIDE
|
|
6
|
-
from rasa.shared.nlu.constants import
|
|
7
|
+
from rasa.shared.nlu.constants import ENTITIES, INTENT, TEXT
|
|
7
8
|
from rasa.shared.nlu.training_data.formats.readerwriter import (
|
|
8
9
|
JsonTrainingDataReader,
|
|
9
10
|
TrainingDataWriter,
|
|
10
11
|
)
|
|
12
|
+
from rasa.shared.nlu.training_data.message import Message
|
|
13
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
11
14
|
from rasa.shared.nlu.training_data.util import transform_entity_synonyms
|
|
12
15
|
from rasa.shared.utils.io import json_to_string
|
|
13
|
-
|
|
14
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
15
|
-
from rasa.shared.nlu.training_data.message import Message
|
|
16
|
-
import rasa.shared.utils.io
|
|
17
16
|
from rasa.shared.utils.yaml import validate_training_data
|
|
18
17
|
|
|
19
18
|
logger = logging.getLogger(__name__)
|
|
@@ -2,42 +2,42 @@ import logging
|
|
|
2
2
|
from collections import OrderedDict
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import (
|
|
5
|
-
ClassVar,
|
|
6
|
-
Text,
|
|
7
5
|
Any,
|
|
8
|
-
|
|
6
|
+
Callable,
|
|
7
|
+
ClassVar,
|
|
9
8
|
Dict,
|
|
10
|
-
Tuple,
|
|
11
|
-
Union,
|
|
12
9
|
Iterator,
|
|
10
|
+
List,
|
|
13
11
|
Optional,
|
|
14
|
-
|
|
12
|
+
Text,
|
|
13
|
+
Tuple,
|
|
14
|
+
Union,
|
|
15
15
|
)
|
|
16
16
|
|
|
17
|
-
import rasa.shared.data
|
|
18
|
-
from rasa.shared.core.domain import Domain
|
|
19
|
-
from rasa.shared.exceptions import YamlException
|
|
20
17
|
from ruamel.yaml import StringIO
|
|
21
18
|
from ruamel.yaml.scalarstring import LiteralScalarString
|
|
22
19
|
|
|
20
|
+
import rasa.shared.data
|
|
21
|
+
import rasa.shared.nlu.training_data.util
|
|
22
|
+
import rasa.shared.utils.io
|
|
23
23
|
from rasa.shared.constants import (
|
|
24
24
|
DOCS_URL_TRAINING_DATA,
|
|
25
25
|
LATEST_TRAINING_DATA_FORMAT_VERSION,
|
|
26
26
|
)
|
|
27
|
-
from rasa.shared.
|
|
27
|
+
from rasa.shared.core.domain import Domain
|
|
28
|
+
from rasa.shared.exceptions import YamlException
|
|
29
|
+
from rasa.shared.nlu.constants import METADATA_EXAMPLE, METADATA_INTENT
|
|
28
30
|
from rasa.shared.nlu.training_data.formats.readerwriter import (
|
|
29
31
|
TrainingDataReader,
|
|
30
32
|
TrainingDataWriter,
|
|
31
33
|
)
|
|
32
|
-
import rasa.shared.utils.io
|
|
33
|
-
import rasa.shared.nlu.training_data.util
|
|
34
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
35
34
|
from rasa.shared.nlu.training_data.message import Message
|
|
35
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
36
36
|
from rasa.shared.utils.yaml import (
|
|
37
|
+
is_key_in_yaml,
|
|
38
|
+
read_yaml,
|
|
37
39
|
validate_raw_yaml_using_schema_file_with_responses,
|
|
38
40
|
validate_training_data_format_version,
|
|
39
|
-
read_yaml,
|
|
40
|
-
is_key_in_yaml,
|
|
41
41
|
write_yaml,
|
|
42
42
|
)
|
|
43
43
|
|
|
@@ -409,9 +409,10 @@ class RasaYAMLWriter(TrainingDataWriter):
|
|
|
409
409
|
Returns:
|
|
410
410
|
`OrderedDict` containing all training data.
|
|
411
411
|
"""
|
|
412
|
-
from rasa.shared.utils.yaml import KEY_TRAINING_DATA_FORMAT_VERSION
|
|
413
412
|
from ruamel.yaml.scalarstring import DoubleQuotedScalarString
|
|
414
413
|
|
|
414
|
+
from rasa.shared.utils.yaml import KEY_TRAINING_DATA_FORMAT_VERSION
|
|
415
|
+
|
|
415
416
|
nlu_items = []
|
|
416
417
|
nlu_items.extend(cls.process_intents(training_data))
|
|
417
418
|
nlu_items.extend(cls.process_synonyms(training_data))
|
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
import json
|
|
3
|
-
|
|
3
|
+
import typing
|
|
4
|
+
from collections import OrderedDict, defaultdict
|
|
4
5
|
from pathlib import Path
|
|
6
|
+
from typing import Any, Dict, List, Text, Union
|
|
5
7
|
|
|
6
8
|
import rasa.shared.nlu.training_data.util
|
|
9
|
+
import rasa.shared.utils.io
|
|
7
10
|
from rasa.shared.constants import INTENT_MESSAGE_PREFIX
|
|
8
|
-
|
|
9
11
|
from rasa.shared.nlu.constants import (
|
|
10
|
-
INTENT,
|
|
11
|
-
ENTITY_ATTRIBUTE_VALUE,
|
|
12
|
-
ENTITY_ATTRIBUTE_START,
|
|
13
12
|
ENTITY_ATTRIBUTE_END,
|
|
14
|
-
ENTITY_ATTRIBUTE_TYPE,
|
|
15
13
|
ENTITY_ATTRIBUTE_GROUP,
|
|
16
14
|
ENTITY_ATTRIBUTE_ROLE,
|
|
15
|
+
ENTITY_ATTRIBUTE_START,
|
|
16
|
+
ENTITY_ATTRIBUTE_TYPE,
|
|
17
|
+
ENTITY_ATTRIBUTE_VALUE,
|
|
18
|
+
INTENT,
|
|
17
19
|
)
|
|
18
20
|
|
|
19
|
-
import rasa.shared.utils.io
|
|
20
|
-
import typing
|
|
21
|
-
from typing import Text, Dict, Any, Union, List
|
|
22
|
-
from collections import defaultdict
|
|
23
|
-
|
|
24
21
|
if typing.TYPE_CHECKING:
|
|
25
22
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
26
23
|
|
|
@@ -3,17 +3,16 @@ from typing import Any, Dict, Text
|
|
|
3
3
|
|
|
4
4
|
from rasa.shared.core.constants import USER_INTENT_OUT_OF_SCOPE
|
|
5
5
|
from rasa.shared.nlu.constants import (
|
|
6
|
-
INTENT,
|
|
7
6
|
ENTITIES,
|
|
8
|
-
TEXT,
|
|
9
7
|
ENTITY_ATTRIBUTE_ROLE,
|
|
10
8
|
ENTITY_ATTRIBUTE_TYPE,
|
|
11
9
|
ENTITY_ATTRIBUTE_VALUE,
|
|
10
|
+
INTENT,
|
|
11
|
+
TEXT,
|
|
12
12
|
)
|
|
13
13
|
from rasa.shared.nlu.training_data.formats.readerwriter import JsonTrainingDataReader
|
|
14
|
-
|
|
15
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
16
14
|
from rasa.shared.nlu.training_data.message import Message
|
|
15
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
17
16
|
|
|
18
17
|
logger = logging.getLogger(__name__)
|
|
19
18
|
|
|
@@ -2,7 +2,7 @@ import json
|
|
|
2
2
|
import logging
|
|
3
3
|
import os
|
|
4
4
|
import typing
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import Any, Callable, Dict, List, Optional, Text
|
|
6
6
|
|
|
7
7
|
import rasa.shared.utils.io
|
|
8
8
|
from rasa.shared.nlu.training_data.formats.dialogflow import (
|
|
@@ -69,11 +69,11 @@ def load_data(resource_name: Text, language: Optional[Text] = "en") -> "Training
|
|
|
69
69
|
def _reader_factory(fformat: Text) -> Optional["TrainingDataReader"]:
|
|
70
70
|
"""Generates the appropriate reader class based on the file format."""
|
|
71
71
|
from rasa.shared.nlu.training_data.formats import (
|
|
72
|
-
|
|
73
|
-
WitReader,
|
|
72
|
+
DialogflowReader,
|
|
74
73
|
LuisReader,
|
|
75
74
|
RasaReader,
|
|
76
|
-
|
|
75
|
+
RasaYAMLReader,
|
|
76
|
+
WitReader,
|
|
77
77
|
)
|
|
78
78
|
|
|
79
79
|
reader: Optional["TrainingDataReader"] = None
|
|
@@ -1,30 +1,29 @@
|
|
|
1
|
-
from typing import Any, Optional, Tuple, Text, Dict, Set, List
|
|
2
|
-
|
|
3
|
-
import typing
|
|
4
1
|
import copy
|
|
2
|
+
import typing
|
|
3
|
+
from typing import Any, Dict, List, Optional, Set, Text, Tuple
|
|
5
4
|
|
|
6
5
|
import rasa.shared.utils.io
|
|
6
|
+
from rasa.shared.constants import DIAGNOSTIC_DATA
|
|
7
7
|
from rasa.shared.exceptions import RasaException
|
|
8
8
|
from rasa.shared.nlu.constants import (
|
|
9
|
+
ACTION_NAME,
|
|
10
|
+
ACTION_TEXT,
|
|
9
11
|
COMMANDS,
|
|
10
|
-
|
|
12
|
+
ENTITIES,
|
|
13
|
+
ENTITY_ATTRIBUTE_END,
|
|
14
|
+
ENTITY_ATTRIBUTE_START,
|
|
15
|
+
FEATURE_TYPE_SENTENCE,
|
|
16
|
+
FEATURE_TYPE_SEQUENCE,
|
|
11
17
|
INTENT,
|
|
12
|
-
RESPONSE,
|
|
13
18
|
INTENT_RESPONSE_KEY,
|
|
14
19
|
METADATA,
|
|
15
|
-
METADATA_INTENT,
|
|
16
20
|
METADATA_EXAMPLE,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
ENTITY_ATTRIBUTE_END,
|
|
21
|
+
METADATA_INTENT,
|
|
22
|
+
RESPONSE,
|
|
20
23
|
RESPONSE_IDENTIFIER_DELIMITER,
|
|
21
|
-
|
|
22
|
-
FEATURE_TYPE_SEQUENCE,
|
|
23
|
-
ACTION_TEXT,
|
|
24
|
-
ACTION_NAME,
|
|
24
|
+
TEXT,
|
|
25
25
|
TEXT_TOKENS,
|
|
26
26
|
)
|
|
27
|
-
from rasa.shared.constants import DIAGNOSTIC_DATA
|
|
28
27
|
|
|
29
28
|
if typing.TYPE_CHECKING:
|
|
30
29
|
from rasa.shared.nlu.training_data.features import Features
|