rasa-pro 3.11.4__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 +137 -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/Tableau10-1b767f5e.js +1 -0
- rasa/core/channels/inspector/dist/assets/arc-9f1365dc.js +1 -0
- rasa/core/channels/inspector/dist/assets/blockDiagram-38ab4fdb-e0f81b12.js +118 -0
- rasa/core/channels/inspector/dist/assets/c4Diagram-3d4e48cf-9deaee1c.js +10 -0
- rasa/core/channels/inspector/dist/assets/channel-44956714.js +1 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-70f12bd4-20450a96.js +2 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-v2-f2320105-749d2abf.js +2 -0
- rasa/core/channels/inspector/dist/assets/clone-a9475142.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-62fc7601-89c73b31.js → createText-2e5e7dd3-bef0b38c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/edges-e0da2a9e-943801a7.js +4 -0
- rasa/core/channels/inspector/dist/assets/{erDiagram-9d236eb7-907e0440.js → erDiagram-9861fffd-d523a948.js} +4 -4
- rasa/core/channels/inspector/dist/assets/flowDb-956e92f1-54e4cf19.js +10 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-66a62f08-48bfbbe8.js +4 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-43fa749a.js +1 -0
- rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-4a651766-17c30827.js +139 -0
- rasa/core/channels/inspector/dist/assets/ganttDiagram-c361ad54-43086f2d.js +257 -0
- rasa/core/channels/inspector/dist/assets/gitGraphDiagram-72cf32ee-5c8b693e.js +70 -0
- rasa/core/channels/inspector/dist/assets/graph-41a90d26.js +1 -0
- rasa/core/channels/inspector/dist/assets/index-3862675e-b43eeae9.js +1 -0
- rasa/core/channels/inspector/dist/assets/{index-e793d777.js → index-e8affe45.js} +201 -196
- rasa/core/channels/inspector/dist/assets/{infoDiagram-736b4530-8ceba4db.js → infoDiagram-f8f76790-0b20676b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-df861f2b-960d3809.js → journeyDiagram-49397b02-39bce7b5.js} +4 -4
- rasa/core/channels/inspector/dist/assets/katex-498eb57e.js +261 -0
- rasa/core/channels/inspector/dist/assets/layout-dc8eeea4.js +1 -0
- rasa/core/channels/inspector/dist/assets/{line-eeccc4e2.js → line-c4d2e756.js} +1 -1
- rasa/core/channels/inspector/dist/assets/linear-86f6f2d9.js +1 -0
- rasa/core/channels/inspector/dist/assets/mindmap-definition-fc14e90a-4216f771.js +312 -0
- rasa/core/channels/inspector/dist/assets/{pieDiagram-dbbf0591-dc9b5e1b.js → pieDiagram-8a3498a8-1a0cfa96.js} +7 -7
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-4d7f4fd6-a08cba6d.js → quadrantDiagram-120e2f19-f91e67cf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-6fc4c22a-87242b9e.js → requirementDiagram-deff3bca-d4046bed.js} +2 -2
- rasa/core/channels/inspector/dist/assets/sankeyDiagram-04a897e0-2cf6d1d7.js +8 -0
- rasa/core/channels/inspector/dist/assets/sequenceDiagram-704730f1-751ac4f5.js +122 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-587899a1-f734f4d4.js +1 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-v2-d93cdb3a-91c65710.js +1 -0
- rasa/core/channels/inspector/dist/assets/{styles-9c745c82-cef936a6.js → styles-6aaf32cf-e0cff7be.js} +1 -1
- rasa/core/channels/inspector/dist/assets/styles-9a916d00-c8029e5d.js +160 -0
- rasa/core/channels/inspector/dist/assets/styles-c10674c1-114f312a.js +116 -0
- rasa/core/channels/inspector/dist/assets/svgDrawCommon-08f97a94-b7b9dc00.js +1 -0
- rasa/core/channels/inspector/dist/assets/{timeline-definition-5b62e21b-0d39bdb2.js → timeline-definition-85554ec2-9536d189.js} +3 -3
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-2b33534f-a03fa445.js → xychartDiagram-e933f94c-bf3b0f36.js} +3 -3
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +11 -3
- 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 +94 -99
- 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 +51 -32
- 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 +6 -3
- 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.4.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/arc-632a63ec.js +0 -1
- rasa/core/channels/inspector/dist/assets/c4Diagram-d0fbc5ce-081e0df4.js +0 -10
- rasa/core/channels/inspector/dist/assets/classDiagram-936ed81e-3df0afc2.js +0 -2
- rasa/core/channels/inspector/dist/assets/classDiagram-v2-c3cb15f1-8c5ed31e.js +0 -2
- rasa/core/channels/inspector/dist/assets/edges-f2ad444c-4fc48c3e.js +0 -4
- rasa/core/channels/inspector/dist/assets/flowDb-1972c806-9ec53a3c.js +0 -6
- rasa/core/channels/inspector/dist/assets/flowDiagram-7ea5b25a-41da787a.js +0 -4
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-8bea338b.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-abe16c3d-ce370633.js +0 -139
- rasa/core/channels/inspector/dist/assets/ganttDiagram-9b5ea136-90a36523.js +0 -266
- rasa/core/channels/inspector/dist/assets/gitGraphDiagram-99d0ae7c-41e1aa3f.js +0 -70
- rasa/core/channels/inspector/dist/assets/index-2c4b9a3b-e6f2af62.js +0 -1
- rasa/core/channels/inspector/dist/assets/layout-498807d8.js +0 -1
- rasa/core/channels/inspector/dist/assets/linear-8a078617.js +0 -1
- rasa/core/channels/inspector/dist/assets/mindmap-definition-beec6740-396d17dd.js +0 -109
- rasa/core/channels/inspector/dist/assets/sankeyDiagram-8f13d901-53f6f391.js +0 -8
- rasa/core/channels/inspector/dist/assets/sequenceDiagram-b655622a-715c9c20.js +0 -122
- rasa/core/channels/inspector/dist/assets/stateDiagram-59f0c015-2e8fb31f.js +0 -1
- rasa/core/channels/inspector/dist/assets/stateDiagram-v2-2b26beab-7e2d2aa0.js +0 -1
- rasa/core/channels/inspector/dist/assets/styles-080da4f6-4420cea6.js +0 -110
- rasa/core/channels/inspector/dist/assets/styles-3dcbcfbf-28676cf4.js +0 -159
- rasa/core/channels/inspector/dist/assets/svgDrawCommon-4835440b-151251e9.js +0 -1
- rasa_pro-3.11.4.dist-info/RECORD +0 -779
- /rasa/dialogue_understanding/generator/{single_step → prompt_templates}/command_prompt_template.jinja2 +0 -0
- {rasa_pro-3.11.4.dist-info → rasa_pro-3.12.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.11.4.dist-info → rasa_pro-3.12.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.11.4.dist-info → rasa_pro-3.12.0.dist-info}/entry_points.txt +0 -0
rasa/engine/validation.py
CHANGED
|
@@ -5,31 +5,32 @@ import re
|
|
|
5
5
|
import sys
|
|
6
6
|
import typing
|
|
7
7
|
from typing import (
|
|
8
|
-
|
|
8
|
+
Any,
|
|
9
9
|
Callable,
|
|
10
|
+
Dict,
|
|
11
|
+
List,
|
|
12
|
+
Literal,
|
|
13
|
+
Optional,
|
|
14
|
+
Set,
|
|
10
15
|
Text,
|
|
11
16
|
Tuple,
|
|
12
|
-
Dict,
|
|
13
17
|
Type,
|
|
14
|
-
Any,
|
|
15
|
-
Set,
|
|
16
|
-
Union,
|
|
17
18
|
TypeVar,
|
|
18
|
-
|
|
19
|
-
Literal,
|
|
19
|
+
Union,
|
|
20
20
|
)
|
|
21
21
|
|
|
22
|
-
import rasa.utils.common
|
|
23
22
|
import structlog
|
|
24
23
|
import typing_utils
|
|
25
|
-
|
|
24
|
+
|
|
25
|
+
import rasa.utils.common
|
|
26
|
+
from rasa.core import ContextualResponseRephraser, IntentlessPolicy
|
|
26
27
|
from rasa.core.policies.policy import PolicyPrediction
|
|
27
28
|
from rasa.core.utils import AvailableEndpoints
|
|
28
29
|
from rasa.dialogue_understanding.coexistence.constants import (
|
|
29
|
-
NLU_ENTRY,
|
|
30
30
|
CALM_ENTRY,
|
|
31
|
-
|
|
31
|
+
NLU_ENTRY,
|
|
32
32
|
NON_STICKY,
|
|
33
|
+
STICKY,
|
|
33
34
|
)
|
|
34
35
|
from rasa.dialogue_understanding.coexistence.intent_based_router import (
|
|
35
36
|
IntentBasedRouter,
|
|
@@ -39,55 +40,56 @@ from rasa.dialogue_understanding.generator import (
|
|
|
39
40
|
LLMBasedCommandGenerator,
|
|
40
41
|
)
|
|
41
42
|
from rasa.dialogue_understanding.generator.constants import (
|
|
42
|
-
LLM_CONFIG_KEY,
|
|
43
43
|
FLOW_RETRIEVAL_KEY,
|
|
44
|
+
LLM_CONFIG_KEY,
|
|
44
45
|
)
|
|
45
46
|
from rasa.dialogue_understanding.patterns.chitchat import FLOW_PATTERN_CHITCHAT
|
|
46
47
|
from rasa.engine.constants import RESERVED_PLACEHOLDERS
|
|
47
48
|
from rasa.engine.exceptions import GraphSchemaValidationException
|
|
48
49
|
from rasa.engine.graph import (
|
|
49
|
-
GraphSchema,
|
|
50
|
-
GraphComponent,
|
|
51
|
-
SchemaNode,
|
|
52
50
|
ExecutionContext,
|
|
51
|
+
GraphComponent,
|
|
53
52
|
GraphModelConfiguration,
|
|
53
|
+
GraphSchema,
|
|
54
|
+
SchemaNode,
|
|
54
55
|
)
|
|
55
56
|
from rasa.engine.storage.resource import Resource
|
|
56
|
-
from rasa.engine.storage.storage import
|
|
57
|
+
from rasa.engine.storage.storage import ModelMetadata, ModelStorage
|
|
57
58
|
from rasa.engine.training.fingerprinting import Fingerprintable
|
|
58
59
|
from rasa.shared.constants import (
|
|
59
|
-
DOCS_URL_GRAPH_COMPONENTS,
|
|
60
|
-
ROUTE_TO_CALM_SLOT,
|
|
61
|
-
EMBEDDINGS_CONFIG_KEY,
|
|
62
60
|
API_BASE_CONFIG_KEY,
|
|
63
|
-
DEPLOYMENT_CONFIG_KEY,
|
|
64
|
-
API_VERSION_CONFIG_KEY,
|
|
65
61
|
API_KEY,
|
|
62
|
+
API_TYPE_CONFIG_KEY,
|
|
63
|
+
API_VERSION_CONFIG_KEY,
|
|
64
|
+
AWS_ACCESS_KEY_ID_CONFIG_KEY,
|
|
66
65
|
AWS_REGION_NAME_CONFIG_KEY,
|
|
66
|
+
AWS_SECRET_ACCESS_KEY_CONFIG_KEY,
|
|
67
|
+
AWS_SESSION_TOKEN_CONFIG_KEY,
|
|
68
|
+
DEPLOYMENT_CONFIG_KEY,
|
|
69
|
+
DOCS_URL_GRAPH_COMPONENTS,
|
|
70
|
+
EMBEDDINGS_CONFIG_KEY,
|
|
71
|
+
MODEL_GROUP_CONFIG_KEY,
|
|
67
72
|
MODEL_GROUP_ID_CONFIG_KEY,
|
|
68
|
-
ROUTER_CONFIG_KEY,
|
|
69
73
|
MODELS_CONFIG_KEY,
|
|
70
|
-
|
|
71
|
-
ROUTING_STRATEGY_CONFIG_KEY,
|
|
72
|
-
VALID_ROUTING_STRATEGIES,
|
|
73
|
-
ROUTING_STRATEGIES_REQUIRING_REDIS_CACHE,
|
|
74
|
-
ROUTING_STRATEGIES_NOT_REQUIRING_CACHE,
|
|
74
|
+
PROVIDER_CONFIG_KEY,
|
|
75
75
|
REDIS_HOST_CONFIG_KEY,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
ROUTE_TO_CALM_SLOT,
|
|
77
|
+
ROUTER_CONFIG_KEY,
|
|
78
|
+
ROUTING_STRATEGIES_NOT_REQUIRING_CACHE,
|
|
79
|
+
ROUTING_STRATEGIES_REQUIRING_REDIS_CACHE,
|
|
80
|
+
ROUTING_STRATEGY_CONFIG_KEY,
|
|
79
81
|
SENSITIVE_DATA,
|
|
80
82
|
USE_CHAT_COMPLETIONS_ENDPOINT_CONFIG_KEY,
|
|
81
|
-
API_TYPE_CONFIG_KEY,
|
|
82
83
|
VALID_PROVIDERS_FOR_API_TYPE_CONFIG_KEY,
|
|
83
|
-
|
|
84
|
+
VALID_ROUTING_STRATEGIES,
|
|
84
85
|
)
|
|
85
86
|
from rasa.shared.core.constants import ACTION_RESET_ROUTING, ACTION_TRIGGER_CHITCHAT
|
|
86
87
|
from rasa.shared.core.domain import Domain
|
|
87
|
-
from rasa.shared.core.flows import
|
|
88
|
+
from rasa.shared.core.flows import Flow, FlowsList
|
|
88
89
|
from rasa.shared.core.slots import Slot
|
|
89
90
|
from rasa.shared.exceptions import RasaException
|
|
90
91
|
from rasa.shared.nlu.training_data.message import Message
|
|
92
|
+
from rasa.shared.utils.common import display_research_study_prompt
|
|
91
93
|
|
|
92
94
|
TypeAnnotation = Union[TypeVar, Text, Type, Optional[AvailableEndpoints]]
|
|
93
95
|
|
|
@@ -1448,4 +1450,5 @@ def validate_api_type_config_key_usage(
|
|
|
1448
1450
|
f"For other providers, please use the '{PROVIDER_CONFIG_KEY}' key."
|
|
1449
1451
|
),
|
|
1450
1452
|
)
|
|
1453
|
+
display_research_study_prompt()
|
|
1451
1454
|
sys.exit(1)
|
rasa/exceptions.py
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
1
2
|
from typing import Text
|
|
3
|
+
|
|
2
4
|
from packaging import version
|
|
3
|
-
from dataclasses import dataclass
|
|
4
5
|
|
|
5
|
-
from rasa.shared.exceptions import RasaException
|
|
6
6
|
from rasa.constants import MINIMUM_COMPATIBLE_VERSION
|
|
7
|
+
from rasa.shared.exceptions import RasaException
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
@dataclass
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Dict, Text, Any, List
|
|
3
2
|
|
|
4
|
-
from
|
|
3
|
+
from typing import Any, Dict, List, Text
|
|
5
4
|
|
|
6
|
-
from rasa.
|
|
5
|
+
from rasa.core.channels.channel import UserMessage
|
|
6
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
7
7
|
from rasa.engine.storage.resource import Resource
|
|
8
8
|
from rasa.engine.storage.storage import ModelStorage
|
|
9
9
|
from rasa.shared.nlu.constants import TEXT, TEXT_TOKENS
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import copy
|
|
4
|
-
from typing import Dict, Text
|
|
4
|
+
from typing import Any, Dict, Text
|
|
5
5
|
|
|
6
|
-
from rasa.engine.graph import
|
|
6
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
7
7
|
from rasa.engine.storage.resource import Resource
|
|
8
8
|
from rasa.engine.storage.storage import ModelStorage
|
|
9
9
|
from rasa.shared.constants import REQUIRED_SLOTS_KEY
|
|
10
|
-
from rasa.shared.core.domain import
|
|
10
|
+
from rasa.shared.core.domain import KEY_FORMS, KEY_RESPONSES, SESSION_CONFIG_KEY, Domain
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class DomainForCoreTrainingProvider(GraphComponent):
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Dict, Text, Any, Optional
|
|
3
2
|
|
|
4
|
-
from
|
|
3
|
+
from typing import Any, Dict, Optional, Text
|
|
4
|
+
|
|
5
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
5
6
|
from rasa.engine.storage.resource import Resource
|
|
6
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
7
8
|
from rasa.shared.core.domain import Domain
|
|
@@ -5,10 +5,9 @@ from typing import Any, Dict, Text
|
|
|
5
5
|
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
6
6
|
from rasa.engine.storage.resource import Resource
|
|
7
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
8
|
-
from rasa.shared.importers.importer import TrainingDataImporter
|
|
9
|
-
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader, YamlFlowsWriter
|
|
10
|
-
|
|
11
8
|
from rasa.shared.core.flows import FlowsList
|
|
9
|
+
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader, YamlFlowsWriter
|
|
10
|
+
from rasa.shared.importers.importer import TrainingDataImporter
|
|
12
11
|
|
|
13
12
|
FLOWS_PERSISTENCE_FILE_NAME = "flows.yml"
|
|
14
13
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
import dataclasses
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import dataclasses
|
|
4
|
+
from typing import Any, Dict, Text
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import rasa.shared.utils.io
|
|
7
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
7
8
|
from rasa.engine.storage.resource import Resource
|
|
8
9
|
from rasa.engine.storage.storage import ModelStorage
|
|
9
10
|
from rasa.shared.core.domain import Domain
|
|
10
|
-
import rasa.shared.utils.io
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@dataclasses.dataclass
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, Text
|
|
4
|
+
|
|
5
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
4
6
|
from rasa.engine.storage.resource import Resource
|
|
5
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
6
8
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
7
9
|
from rasa.shared.nlu.training_data.training_data import (
|
|
8
|
-
TrainingData,
|
|
9
10
|
DEFAULT_TRAINING_DATA_OUTPUT_PATH,
|
|
11
|
+
TrainingData,
|
|
10
12
|
)
|
|
11
13
|
|
|
12
14
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
import dataclasses
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import dataclasses
|
|
4
|
+
from typing import Any, Dict, List, Text
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
import rasa.shared.utils.io
|
|
7
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
7
8
|
from rasa.engine.storage.resource import Resource
|
|
8
9
|
from rasa.engine.storage.storage import ModelStorage
|
|
9
10
|
from rasa.shared.core.domain import Domain
|
|
10
|
-
import rasa.shared.utils.io
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@dataclasses.dataclass
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
import dataclasses
|
|
3
4
|
import logging
|
|
4
|
-
from typing import Dict, Text
|
|
5
|
+
from typing import Any, Dict, Text
|
|
5
6
|
|
|
6
7
|
import rasa.shared.utils.io
|
|
7
|
-
from rasa.engine.graph import
|
|
8
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
8
9
|
from rasa.engine.storage.resource import Resource
|
|
9
10
|
from rasa.engine.storage.storage import ModelStorage
|
|
10
11
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Dict, Text, Any, List
|
|
3
2
|
|
|
4
|
-
from
|
|
3
|
+
from typing import Any, Dict, List, Text
|
|
4
|
+
|
|
5
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
5
6
|
from rasa.engine.storage.resource import Resource
|
|
6
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
7
|
-
from rasa.shared.core.training_data.structures import StoryGraph, StoryStep
|
|
8
|
-
from rasa.shared.importers.importer import TrainingDataImporter
|
|
9
|
-
from rasa.shared.core.training_data.story_writer.yaml_story_writer import (
|
|
10
|
-
YAMLStoryWriter,
|
|
11
|
-
)
|
|
12
8
|
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
13
9
|
YAMLStoryReader,
|
|
14
10
|
)
|
|
15
|
-
|
|
11
|
+
from rasa.shared.core.training_data.story_writer.yaml_story_writer import (
|
|
12
|
+
YAMLStoryWriter,
|
|
13
|
+
)
|
|
14
|
+
from rasa.shared.core.training_data.structures import StoryGraph, StoryStep
|
|
15
|
+
from rasa.shared.importers.importer import TrainingDataImporter
|
|
16
16
|
|
|
17
17
|
STORIES_PERSISTENCE_FILE_NAME = "stories.yml"
|
|
18
18
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import Dict, Text, Any, List
|
|
3
2
|
|
|
4
|
-
from
|
|
3
|
+
from typing import Any, Dict, List, Text
|
|
4
|
+
|
|
5
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
5
6
|
from rasa.engine.storage.resource import Resource
|
|
6
7
|
from rasa.engine.storage.storage import ModelStorage
|
|
7
8
|
from rasa.shared.core.domain import Domain
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from collections import defaultdict
|
|
3
|
-
from typing import
|
|
4
|
+
from typing import Any, Dict, Iterable, List, Set, Text, Type, cast
|
|
4
5
|
|
|
6
|
+
import rasa.shared.utils.io
|
|
7
|
+
from rasa.core.constants import POLICY_PRIORITY
|
|
5
8
|
from rasa.core.featurizers.precomputation import CoreFeaturizationInputConverter
|
|
9
|
+
from rasa.core.policies.flow_policy import FlowPolicy
|
|
10
|
+
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
11
|
+
from rasa.core.policies.policy import Policy, SupportedData
|
|
12
|
+
from rasa.core.policies.rule_policy import RulePolicy
|
|
13
|
+
from rasa.core.policies.ted_policy import TEDPolicy
|
|
6
14
|
from rasa.core.policies.unexpected_intent_policy import UnexpecTEDIntentPolicy
|
|
7
15
|
from rasa.engine.graph import ExecutionContext, GraphComponent, GraphSchema, SchemaNode
|
|
8
|
-
from rasa.engine.storage.storage import ModelStorage
|
|
9
16
|
from rasa.engine.storage.resource import Resource
|
|
10
|
-
from rasa.
|
|
11
|
-
from rasa.nlu.
|
|
12
|
-
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
17
|
+
from rasa.engine.storage.storage import ModelStorage
|
|
18
|
+
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
13
19
|
from rasa.nlu.extractors.crf_entity_extractor import (
|
|
14
20
|
CRFEntityExtractor,
|
|
15
21
|
CRFEntityExtractorOptions,
|
|
16
22
|
)
|
|
17
23
|
from rasa.nlu.extractors.entity_synonyms import EntitySynonymMapper
|
|
24
|
+
from rasa.nlu.extractors.mitie_entity_extractor import MitieEntityExtractor
|
|
25
|
+
from rasa.nlu.extractors.regex_entity_extractor import RegexEntityExtractor
|
|
26
|
+
from rasa.nlu.featurizers.featurizer import Featurizer
|
|
18
27
|
from rasa.nlu.featurizers.sparse_featurizer.regex_featurizer import RegexFeaturizer
|
|
19
|
-
from rasa.nlu.classifiers.diet_classifier import DIETClassifier
|
|
20
28
|
from rasa.nlu.selectors.response_selector import ResponseSelector
|
|
21
29
|
from rasa.nlu.tokenizers.tokenizer import Tokenizer
|
|
22
|
-
from rasa.core.policies.rule_policy import RulePolicy
|
|
23
|
-
from rasa.core.policies.policy import Policy, SupportedData
|
|
24
|
-
from rasa.core.policies.memoization import AugmentedMemoizationPolicy, MemoizationPolicy
|
|
25
|
-
from rasa.core.policies.ted_policy import TEDPolicy
|
|
26
|
-
from rasa.core.policies.flow_policy import FlowPolicy
|
|
27
|
-
from rasa.core.constants import POLICY_PRIORITY
|
|
28
|
-
from rasa.shared.core.training_data.structures import RuleStep, StoryGraph
|
|
29
30
|
from rasa.shared.constants import (
|
|
30
31
|
DEFAULT_CONFIG_PATH,
|
|
31
32
|
DOCS_URL_COMPONENTS,
|
|
@@ -33,18 +34,17 @@ from rasa.shared.constants import (
|
|
|
33
34
|
DOCS_URL_NLU_BASED_POLICIES,
|
|
34
35
|
DOCS_URL_RULES,
|
|
35
36
|
)
|
|
36
|
-
from rasa.shared.core.domain import Domain, InvalidDomain
|
|
37
37
|
from rasa.shared.core.constants import (
|
|
38
38
|
ACTION_BACK_NAME,
|
|
39
39
|
ACTION_RESTART_NAME,
|
|
40
40
|
USER_INTENT_BACK,
|
|
41
41
|
USER_INTENT_RESTART,
|
|
42
42
|
)
|
|
43
|
+
from rasa.shared.core.domain import Domain, InvalidDomain
|
|
44
|
+
from rasa.shared.core.training_data.structures import RuleStep, StoryGraph
|
|
43
45
|
from rasa.shared.exceptions import InvalidConfigException
|
|
44
46
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
45
47
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
46
|
-
import rasa.shared.utils.io
|
|
47
|
-
|
|
48
48
|
|
|
49
49
|
# TODO: Can we replace this with the registered types from the regitry?
|
|
50
50
|
TRAINABLE_EXTRACTORS = [MitieEntityExtractor, CRFEntityExtractor, DIETClassifier]
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import copy
|
|
4
4
|
import logging
|
|
5
|
+
from typing import Any, Dict, Optional, Text
|
|
5
6
|
|
|
6
7
|
from packaging import version
|
|
8
|
+
|
|
9
|
+
import rasa.shared.utils.io
|
|
7
10
|
from rasa.constants import MINIMUM_COMPATIBLE_VERSION
|
|
8
|
-
from rasa.engine.graph import
|
|
9
|
-
from rasa.engine.storage.storage import ModelStorage
|
|
11
|
+
from rasa.engine.graph import ExecutionContext, GraphComponent
|
|
10
12
|
from rasa.engine.storage.resource import Resource
|
|
11
|
-
from rasa.
|
|
12
|
-
from rasa.shared.core.domain import Domain
|
|
13
|
-
from rasa.shared.importers.importer import TrainingDataImporter
|
|
14
|
-
import rasa.shared.utils.io
|
|
15
|
-
from rasa.utils.tensorflow.constants import EPOCHS
|
|
13
|
+
from rasa.engine.storage.storage import ModelStorage
|
|
16
14
|
from rasa.graph_components.providers.domain_for_core_training_provider import (
|
|
17
15
|
DomainForCoreTrainingProvider,
|
|
18
16
|
)
|
|
17
|
+
from rasa.shared.core.domain import Domain
|
|
18
|
+
from rasa.shared.exceptions import InvalidConfigException
|
|
19
|
+
from rasa.shared.importers.importer import TrainingDataImporter
|
|
20
|
+
from rasa.utils.tensorflow.constants import EPOCHS
|
|
19
21
|
|
|
20
22
|
FINGERPRINT_CONFIG = "fingerprint-config"
|
|
21
23
|
FINGERPRINT_CORE = "fingerprint-core"
|
rasa/hooks.py
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import argparse
|
|
2
2
|
import logging
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import TYPE_CHECKING, List, Optional, Text, Union
|
|
4
4
|
|
|
5
5
|
import pluggy
|
|
6
|
-
from rasa.cli import SubParsersAction
|
|
7
6
|
|
|
8
|
-
from rasa
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
from rasa.core.auth_retry_tracker_store import AuthRetryTrackerStore
|
|
12
|
-
from rasa.core.secrets_manager.factory import load_secret_manager
|
|
13
|
-
|
|
14
|
-
from rasa.tracing import config
|
|
7
|
+
# IMPORTANT: do not import anything from rasa here - use scoped imports
|
|
8
|
+
# this avoids circular imports, as the hooks are used in different places
|
|
9
|
+
# across the codebase.
|
|
15
10
|
|
|
16
11
|
if TYPE_CHECKING:
|
|
12
|
+
from rasa.anonymization.anonymization_pipeline import AnonymizationPipeline
|
|
13
|
+
from rasa.cli import SubParsersAction
|
|
17
14
|
from rasa.core.brokers.broker import EventBroker
|
|
18
15
|
from rasa.core.tracker_store import TrackerStore
|
|
19
16
|
from rasa.shared.core.domain import Domain
|
|
20
|
-
from rasa.
|
|
17
|
+
from rasa.utils.endpoints import EndpointConfig
|
|
21
18
|
|
|
22
19
|
hookimpl = pluggy.HookimplMarker("rasa")
|
|
23
20
|
logger = logging.getLogger(__name__)
|
|
@@ -25,15 +22,15 @@ logger = logging.getLogger(__name__)
|
|
|
25
22
|
|
|
26
23
|
@hookimpl # type: ignore[misc]
|
|
27
24
|
def refine_cli(
|
|
28
|
-
subparsers: SubParsersAction,
|
|
25
|
+
subparsers: "SubParsersAction",
|
|
29
26
|
parent_parsers: List[argparse.ArgumentParser],
|
|
30
27
|
) -> None:
|
|
31
|
-
from rasa.cli import e2e_test, inspect, markers
|
|
32
|
-
from rasa.cli.studio import studio
|
|
33
|
-
|
|
28
|
+
from rasa.cli import dialogue_understanding_test, e2e_test, inspect, markers
|
|
34
29
|
from rasa.cli import license as license_cli
|
|
30
|
+
from rasa.cli.studio import studio
|
|
35
31
|
|
|
36
32
|
e2e_test.add_subparser(subparsers, parent_parsers)
|
|
33
|
+
dialogue_understanding_test.add_subparser(subparsers, parent_parsers)
|
|
37
34
|
studio.add_subparser(subparsers, parent_parsers)
|
|
38
35
|
license_cli.add_subparser(subparsers, parent_parsers)
|
|
39
36
|
markers.add_subparser(subparsers, parent_parsers)
|
|
@@ -43,6 +40,9 @@ def refine_cli(
|
|
|
43
40
|
|
|
44
41
|
@hookimpl # type: ignore[misc]
|
|
45
42
|
def configure_commandline(cmdline_arguments: argparse.Namespace) -> Optional[Text]:
|
|
43
|
+
from rasa.cli import x as rasa_x
|
|
44
|
+
from rasa.tracing import config
|
|
45
|
+
|
|
46
46
|
endpoints_file = None
|
|
47
47
|
|
|
48
48
|
if cmdline_arguments.func.__name__ == "rasa_x":
|
|
@@ -69,6 +69,8 @@ def init_telemetry(endpoints_file: Optional[Text]) -> None:
|
|
|
69
69
|
|
|
70
70
|
@hookimpl # type: ignore[misc]
|
|
71
71
|
def init_managers(endpoints_file: Optional[Text]) -> None:
|
|
72
|
+
from rasa.core.secrets_manager.factory import load_secret_manager
|
|
73
|
+
|
|
72
74
|
load_secret_manager(endpoints_file)
|
|
73
75
|
|
|
74
76
|
|
|
@@ -78,6 +80,9 @@ def create_tracker_store(
|
|
|
78
80
|
domain: "Domain",
|
|
79
81
|
event_broker: Optional["EventBroker"],
|
|
80
82
|
) -> "TrackerStore":
|
|
83
|
+
from rasa.core.auth_retry_tracker_store import AuthRetryTrackerStore
|
|
84
|
+
from rasa.utils.endpoints import EndpointConfig
|
|
85
|
+
|
|
81
86
|
if isinstance(endpoint_config, EndpointConfig):
|
|
82
87
|
return AuthRetryTrackerStore(
|
|
83
88
|
endpoint_config=endpoint_config, domain=domain, event_broker=event_broker
|
rasa/jupyter.py
CHANGED
|
@@ -3,10 +3,10 @@ import pprint as pretty_print
|
|
|
3
3
|
import typing
|
|
4
4
|
from typing import Any, Dict, Optional, Text
|
|
5
5
|
|
|
6
|
-
from rasa.shared.exceptions import RasaException
|
|
7
|
-
from rasa.shared.utils.cli import print_success
|
|
8
6
|
import rasa.core.agent
|
|
9
7
|
import rasa.utils.common
|
|
8
|
+
from rasa.shared.exceptions import RasaException
|
|
9
|
+
from rasa.shared.utils.cli import print_success
|
|
10
10
|
|
|
11
11
|
if typing.TYPE_CHECKING:
|
|
12
12
|
from rasa.core.agent import Agent
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from contextlib import contextmanager
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Generator, List, Optional, Tuple, Union
|
|
4
4
|
|
|
5
5
|
import structlog
|
|
6
6
|
|
|
7
7
|
from rasa.dialogue_understanding.commands import Command
|
|
8
|
-
from rasa.e2e_test.e2e_test_case import
|
|
9
|
-
from rasa.e2e_test.e2e_test_runner import
|
|
8
|
+
from rasa.e2e_test.e2e_test_case import ActualStepOutput, TestCase, TestStep, TestSuite
|
|
9
|
+
from rasa.e2e_test.e2e_test_runner import TEST_TURNS_TYPE, E2ETestRunner
|
|
10
10
|
from rasa.llm_fine_tuning.conversations import Conversation, ConversationStep
|
|
11
11
|
from rasa.llm_fine_tuning.storage import StorageContext
|
|
12
12
|
from rasa.shared.core.constants import USER
|
|
13
13
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
14
|
-
from rasa.shared.nlu.constants import
|
|
14
|
+
from rasa.shared.nlu.constants import LLM_COMMANDS, LLM_PROMPT
|
|
15
15
|
from rasa.shared.utils.llm import tracker_as_readable_transcript
|
|
16
16
|
|
|
17
17
|
ANNOTATION_MODULE_STORAGE_LOCATION = "1_command_annotations"
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
|
-
from typing import
|
|
3
|
-
|
|
4
|
-
from rasa.dialogue_understanding.commands import
|
|
5
|
-
Command,
|
|
6
|
-
StartFlowCommand,
|
|
7
|
-
SetSlotCommand,
|
|
8
|
-
CancelFlowCommand,
|
|
9
|
-
ChitChatAnswerCommand,
|
|
10
|
-
SkipQuestionCommand,
|
|
11
|
-
HumanHandoffCommand,
|
|
12
|
-
KnowledgeAnswerCommand,
|
|
13
|
-
ClarifyCommand,
|
|
14
|
-
)
|
|
2
|
+
from typing import Any, Dict, Iterator, List, Optional, Union
|
|
3
|
+
|
|
4
|
+
from rasa.dialogue_understanding.commands.prompt_command import PromptCommand
|
|
15
5
|
from rasa.e2e_test.e2e_test_case import TestCase, TestStep
|
|
16
6
|
from rasa.shared.core.constants import USER
|
|
17
7
|
|
|
@@ -19,7 +9,7 @@ from rasa.shared.core.constants import USER
|
|
|
19
9
|
@dataclass
|
|
20
10
|
class ConversationStep:
|
|
21
11
|
original_test_step: TestStep
|
|
22
|
-
llm_commands: List[
|
|
12
|
+
llm_commands: List[PromptCommand]
|
|
23
13
|
llm_prompt: str
|
|
24
14
|
failed_rephrasings: List[str] = field(default_factory=list)
|
|
25
15
|
passed_rephrasings: List[str] = field(default_factory=list)
|
|
@@ -38,25 +28,7 @@ class ConversationStep:
|
|
|
38
28
|
return data
|
|
39
29
|
|
|
40
30
|
def _commands_to_str(self) -> List[str]:
|
|
41
|
-
|
|
42
|
-
for command in self.llm_commands:
|
|
43
|
-
if isinstance(command, StartFlowCommand):
|
|
44
|
-
output.append(f"StartFlow({command.flow})")
|
|
45
|
-
elif isinstance(command, SetSlotCommand):
|
|
46
|
-
output.append(f"SetSlot({command.name}, {command.value})")
|
|
47
|
-
elif isinstance(command, ClarifyCommand):
|
|
48
|
-
output.append(f"Clarify({command.options})")
|
|
49
|
-
elif isinstance(command, CancelFlowCommand):
|
|
50
|
-
output.append("CancelFlow()")
|
|
51
|
-
elif isinstance(command, ChitChatAnswerCommand):
|
|
52
|
-
output.append("ChitChat()")
|
|
53
|
-
elif isinstance(command, SkipQuestionCommand):
|
|
54
|
-
output.append("SkipQuestion()")
|
|
55
|
-
elif isinstance(command, KnowledgeAnswerCommand):
|
|
56
|
-
output.append("SearchAndReply()")
|
|
57
|
-
elif isinstance(command, HumanHandoffCommand):
|
|
58
|
-
output.append("HumanHandoff()")
|
|
59
|
-
return output
|
|
31
|
+
return [command.to_dsl() for command in self.llm_commands]
|
|
60
32
|
|
|
61
33
|
def commands_as_string(self) -> str:
|
|
62
34
|
return "\n".join(self._commands_to_str())
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import Any, Dict, List, Optional
|
|
3
3
|
|
|
4
4
|
import structlog
|
|
5
5
|
from tqdm import tqdm
|
|
6
6
|
|
|
7
|
+
from rasa.dialogue_understanding.commands.prompt_command import PromptCommand
|
|
7
8
|
from rasa.llm_fine_tuning.conversations import Conversation, ConversationStep
|
|
8
9
|
from rasa.llm_fine_tuning.storage import StorageContext
|
|
10
|
+
from rasa.llm_fine_tuning.utils import commands_as_string
|
|
9
11
|
|
|
10
12
|
LLM_DATA_PREPARATION_MODULE_STORAGE_LOCATION = "3_llm_finetune_data/llm_ft_data.jsonl"
|
|
11
13
|
|
|
@@ -15,7 +17,7 @@ structlogger = structlog.get_logger()
|
|
|
15
17
|
@dataclass
|
|
16
18
|
class LLMDataExample:
|
|
17
19
|
prompt: str
|
|
18
|
-
output:
|
|
20
|
+
output: List[PromptCommand]
|
|
19
21
|
original_test_name: str
|
|
20
22
|
original_user_utterance: str
|
|
21
23
|
rephrased_user_utterance: str
|
|
@@ -23,7 +25,7 @@ class LLMDataExample:
|
|
|
23
25
|
def as_dict(self) -> Dict[str, Any]:
|
|
24
26
|
return {
|
|
25
27
|
"prompt": self.prompt,
|
|
26
|
-
"output": self.output,
|
|
28
|
+
"output": commands_as_string(self.output),
|
|
27
29
|
"original_test_name": self.original_test_name,
|
|
28
30
|
"original_user_utterance": self.original_user_utterance,
|
|
29
31
|
"rephrased_user_utterance": self.rephrased_user_utterance,
|
|
@@ -38,7 +40,7 @@ def _create_data_point(
|
|
|
38
40
|
) -> LLMDataExample:
|
|
39
41
|
return LLMDataExample(
|
|
40
42
|
prompt,
|
|
41
|
-
step.
|
|
43
|
+
step.llm_commands,
|
|
42
44
|
conversation.get_full_name(),
|
|
43
45
|
step.original_test_step.text,
|
|
44
46
|
rephrased_user_message,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import importlib.resources
|
|
2
2
|
import re
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
4
4
|
|
|
5
5
|
import structlog
|
|
6
6
|
from jinja2 import Template
|
|
@@ -10,9 +10,9 @@ from rasa.llm_fine_tuning.paraphrasing.rephrased_user_message import (
|
|
|
10
10
|
RephrasedUserMessage,
|
|
11
11
|
)
|
|
12
12
|
from rasa.shared.constants import (
|
|
13
|
-
MODEL_NAME_CONFIG_KEY,
|
|
14
|
-
MODEL_CONFIG_KEY,
|
|
15
13
|
LLM_CONFIG_KEY,
|
|
14
|
+
MODEL_CONFIG_KEY,
|
|
15
|
+
MODEL_NAME_CONFIG_KEY,
|
|
16
16
|
PROMPT_TEMPLATE_CONFIG_KEY,
|
|
17
17
|
PROVIDER_CONFIG_KEY,
|
|
18
18
|
TIMEOUT_CONFIG_KEY,
|
|
@@ -20,9 +20,9 @@ from rasa.shared.constants import (
|
|
|
20
20
|
from rasa.shared.exceptions import ProviderClientAPIException
|
|
21
21
|
from rasa.shared.providers.mappings import OPENAI_PROVIDER
|
|
22
22
|
from rasa.shared.utils.llm import (
|
|
23
|
+
USER,
|
|
23
24
|
get_prompt_template,
|
|
24
25
|
llm_factory,
|
|
25
|
-
USER,
|
|
26
26
|
)
|
|
27
27
|
|
|
28
28
|
SEPARATOR = "\n\n"
|