rasa-pro 3.9.18__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 +415 -0
- rasa/__init__.py +10 -0
- rasa/__main__.py +156 -0
- rasa/anonymization/__init__.py +2 -0
- rasa/anonymization/anonymisation_rule_yaml_reader.py +91 -0
- rasa/anonymization/anonymization_pipeline.py +286 -0
- rasa/anonymization/anonymization_rule_executor.py +260 -0
- rasa/anonymization/anonymization_rule_orchestrator.py +120 -0
- rasa/anonymization/schemas/config.yml +47 -0
- rasa/anonymization/utils.py +118 -0
- rasa/api.py +146 -0
- rasa/cli/__init__.py +5 -0
- rasa/cli/arguments/__init__.py +0 -0
- rasa/cli/arguments/data.py +81 -0
- rasa/cli/arguments/default_arguments.py +165 -0
- rasa/cli/arguments/evaluate.py +65 -0
- rasa/cli/arguments/export.py +51 -0
- rasa/cli/arguments/interactive.py +74 -0
- rasa/cli/arguments/run.py +204 -0
- rasa/cli/arguments/shell.py +13 -0
- rasa/cli/arguments/test.py +211 -0
- rasa/cli/arguments/train.py +263 -0
- rasa/cli/arguments/visualize.py +34 -0
- rasa/cli/arguments/x.py +30 -0
- rasa/cli/data.py +292 -0
- rasa/cli/e2e_test.py +586 -0
- rasa/cli/evaluate.py +222 -0
- rasa/cli/export.py +250 -0
- rasa/cli/inspect.py +63 -0
- rasa/cli/interactive.py +164 -0
- rasa/cli/license.py +65 -0
- rasa/cli/markers.py +78 -0
- rasa/cli/project_templates/__init__.py +0 -0
- rasa/cli/project_templates/calm/actions/__init__.py +0 -0
- rasa/cli/project_templates/calm/actions/action_template.py +27 -0
- rasa/cli/project_templates/calm/actions/add_contact.py +30 -0
- rasa/cli/project_templates/calm/actions/db.py +57 -0
- rasa/cli/project_templates/calm/actions/list_contacts.py +22 -0
- rasa/cli/project_templates/calm/actions/remove_contact.py +35 -0
- rasa/cli/project_templates/calm/config.yml +12 -0
- rasa/cli/project_templates/calm/credentials.yml +33 -0
- rasa/cli/project_templates/calm/data/flows/add_contact.yml +31 -0
- rasa/cli/project_templates/calm/data/flows/list_contacts.yml +14 -0
- rasa/cli/project_templates/calm/data/flows/remove_contact.yml +29 -0
- rasa/cli/project_templates/calm/db/contacts.json +10 -0
- rasa/cli/project_templates/calm/domain/add_contact.yml +39 -0
- rasa/cli/project_templates/calm/domain/list_contacts.yml +17 -0
- rasa/cli/project_templates/calm/domain/remove_contact.yml +38 -0
- rasa/cli/project_templates/calm/domain/shared.yml +10 -0
- rasa/cli/project_templates/calm/e2e_tests/cancelations/user_cancels_during_a_correction.yml +16 -0
- rasa/cli/project_templates/calm/e2e_tests/cancelations/user_changes_mind_on_a_whim.yml +7 -0
- rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_handle.yml +20 -0
- rasa/cli/project_templates/calm/e2e_tests/corrections/user_corrects_contact_name.yml +19 -0
- rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_adds_contact_to_their_list.yml +15 -0
- rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_lists_contacts.yml +5 -0
- rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact.yml +11 -0
- rasa/cli/project_templates/calm/e2e_tests/happy_paths/user_removes_contact_from_list.yml +12 -0
- rasa/cli/project_templates/calm/endpoints.yml +45 -0
- rasa/cli/project_templates/default/actions/__init__.py +0 -0
- rasa/cli/project_templates/default/actions/actions.py +27 -0
- rasa/cli/project_templates/default/config.yml +44 -0
- rasa/cli/project_templates/default/credentials.yml +33 -0
- rasa/cli/project_templates/default/data/nlu.yml +91 -0
- rasa/cli/project_templates/default/data/rules.yml +13 -0
- rasa/cli/project_templates/default/data/stories.yml +30 -0
- rasa/cli/project_templates/default/domain.yml +34 -0
- rasa/cli/project_templates/default/endpoints.yml +42 -0
- rasa/cli/project_templates/default/tests/test_stories.yml +91 -0
- rasa/cli/project_templates/tutorial/actions.py +22 -0
- rasa/cli/project_templates/tutorial/config.yml +11 -0
- rasa/cli/project_templates/tutorial/credentials.yml +33 -0
- rasa/cli/project_templates/tutorial/data/flows.yml +8 -0
- rasa/cli/project_templates/tutorial/data/patterns.yml +6 -0
- rasa/cli/project_templates/tutorial/domain.yml +21 -0
- rasa/cli/project_templates/tutorial/endpoints.yml +45 -0
- rasa/cli/run.py +135 -0
- rasa/cli/scaffold.py +269 -0
- rasa/cli/shell.py +141 -0
- rasa/cli/studio/__init__.py +0 -0
- rasa/cli/studio/download.py +62 -0
- rasa/cli/studio/studio.py +266 -0
- rasa/cli/studio/train.py +59 -0
- rasa/cli/studio/upload.py +77 -0
- rasa/cli/telemetry.py +102 -0
- rasa/cli/test.py +280 -0
- rasa/cli/train.py +260 -0
- rasa/cli/utils.py +464 -0
- rasa/cli/visualize.py +40 -0
- rasa/cli/x.py +206 -0
- rasa/constants.py +37 -0
- rasa/core/__init__.py +17 -0
- rasa/core/actions/__init__.py +0 -0
- rasa/core/actions/action.py +1225 -0
- rasa/core/actions/action_clean_stack.py +59 -0
- rasa/core/actions/action_exceptions.py +24 -0
- rasa/core/actions/action_run_slot_rejections.py +207 -0
- rasa/core/actions/action_trigger_chitchat.py +31 -0
- rasa/core/actions/action_trigger_flow.py +109 -0
- rasa/core/actions/action_trigger_search.py +31 -0
- rasa/core/actions/constants.py +5 -0
- rasa/core/actions/custom_action_executor.py +188 -0
- rasa/core/actions/forms.py +741 -0
- rasa/core/actions/grpc_custom_action_executor.py +251 -0
- rasa/core/actions/http_custom_action_executor.py +140 -0
- rasa/core/actions/loops.py +114 -0
- rasa/core/actions/two_stage_fallback.py +186 -0
- rasa/core/agent.py +555 -0
- rasa/core/auth_retry_tracker_store.py +122 -0
- rasa/core/brokers/__init__.py +0 -0
- rasa/core/brokers/broker.py +126 -0
- rasa/core/brokers/file.py +58 -0
- rasa/core/brokers/kafka.py +322 -0
- rasa/core/brokers/pika.py +386 -0
- rasa/core/brokers/sql.py +86 -0
- rasa/core/channels/__init__.py +55 -0
- rasa/core/channels/audiocodes.py +463 -0
- rasa/core/channels/botframework.py +338 -0
- rasa/core/channels/callback.py +84 -0
- rasa/core/channels/channel.py +419 -0
- rasa/core/channels/console.py +241 -0
- rasa/core/channels/development_inspector.py +93 -0
- rasa/core/channels/facebook.py +419 -0
- rasa/core/channels/hangouts.py +329 -0
- rasa/core/channels/inspector/.eslintrc.cjs +25 -0
- rasa/core/channels/inspector/.gitignore +23 -0
- rasa/core/channels/inspector/README.md +54 -0
- rasa/core/channels/inspector/assets/favicon.ico +0 -0
- rasa/core/channels/inspector/assets/rasa-chat.js +2 -0
- rasa/core/channels/inspector/custom.d.ts +3 -0
- rasa/core/channels/inspector/dist/assets/arc-b6e548fe.js +1 -0
- rasa/core/channels/inspector/dist/assets/array-9f3ba611.js +1 -0
- rasa/core/channels/inspector/dist/assets/c4Diagram-d0fbc5ce-fa03ac9e.js +10 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-936ed81e-ee67392a.js +2 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-v2-c3cb15f1-9b283fae.js +2 -0
- rasa/core/channels/inspector/dist/assets/createText-62fc7601-8b6fcc2a.js +7 -0
- rasa/core/channels/inspector/dist/assets/edges-f2ad444c-22e77f4f.js +4 -0
- rasa/core/channels/inspector/dist/assets/erDiagram-9d236eb7-60ffc87f.js +51 -0
- rasa/core/channels/inspector/dist/assets/flowDb-1972c806-9dd802e4.js +6 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-7ea5b25a-5fa1912f.js +4 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-1844e5a5.js +1 -0
- rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-abe16c3d-622a1fd2.js +139 -0
- rasa/core/channels/inspector/dist/assets/ganttDiagram-9b5ea136-e285a63a.js +266 -0
- rasa/core/channels/inspector/dist/assets/gitGraphDiagram-99d0ae7c-f237bdca.js +70 -0
- rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-128cfa44.ttf +0 -0
- rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-21dbcb97.woff +0 -0
- rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-222b5e26.svg +329 -0
- rasa/core/channels/inspector/dist/assets/ibm-plex-mono-v4-latin-regular-9ad89b2a.woff2 +0 -0
- rasa/core/channels/inspector/dist/assets/index-2c4b9a3b-4b03d70e.js +1 -0
- rasa/core/channels/inspector/dist/assets/index-3ee28881.css +1 -0
- rasa/core/channels/inspector/dist/assets/index-a5d3e69d.js +1040 -0
- rasa/core/channels/inspector/dist/assets/infoDiagram-736b4530-72a0fa5f.js +7 -0
- rasa/core/channels/inspector/dist/assets/init-77b53fdd.js +1 -0
- rasa/core/channels/inspector/dist/assets/journeyDiagram-df861f2b-82218c41.js +139 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-60c05ee4.woff +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-8335d9b8.svg +438 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-9cc39c75.ttf +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-700-ead13ccf.woff2 +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-16705655.woff2 +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-5aeb07f9.woff +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9c459044.ttf +0 -0
- rasa/core/channels/inspector/dist/assets/lato-v14-latin-regular-9e2898a4.svg +435 -0
- rasa/core/channels/inspector/dist/assets/layout-78cff630.js +1 -0
- rasa/core/channels/inspector/dist/assets/line-5038b469.js +1 -0
- rasa/core/channels/inspector/dist/assets/linear-c4fc4098.js +1 -0
- rasa/core/channels/inspector/dist/assets/mindmap-definition-beec6740-c33c8ea6.js +109 -0
- rasa/core/channels/inspector/dist/assets/ordinal-ba9b4969.js +1 -0
- rasa/core/channels/inspector/dist/assets/path-53f90ab3.js +1 -0
- rasa/core/channels/inspector/dist/assets/pieDiagram-dbbf0591-a8d03059.js +35 -0
- rasa/core/channels/inspector/dist/assets/quadrantDiagram-4d7f4fd6-6a0e56b2.js +7 -0
- rasa/core/channels/inspector/dist/assets/requirementDiagram-6fc4c22a-2dc7c7bd.js +52 -0
- rasa/core/channels/inspector/dist/assets/sankeyDiagram-8f13d901-2360fe39.js +8 -0
- rasa/core/channels/inspector/dist/assets/sequenceDiagram-b655622a-41b9f9ad.js +122 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-59f0c015-0aad326f.js +1 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-v2-2b26beab-9847d984.js +1 -0
- rasa/core/channels/inspector/dist/assets/styles-080da4f6-564d890e.js +110 -0
- rasa/core/channels/inspector/dist/assets/styles-3dcbcfbf-38957613.js +159 -0
- rasa/core/channels/inspector/dist/assets/styles-9c745c82-f0fc6921.js +207 -0
- rasa/core/channels/inspector/dist/assets/svgDrawCommon-4835440b-ef3c5a77.js +1 -0
- rasa/core/channels/inspector/dist/assets/timeline-definition-5b62e21b-bf3e91c1.js +61 -0
- rasa/core/channels/inspector/dist/assets/xychartDiagram-2b33534f-4d4026c0.js +7 -0
- rasa/core/channels/inspector/dist/index.html +41 -0
- rasa/core/channels/inspector/index.html +39 -0
- rasa/core/channels/inspector/jest.config.ts +13 -0
- rasa/core/channels/inspector/package.json +48 -0
- rasa/core/channels/inspector/setupTests.ts +2 -0
- rasa/core/channels/inspector/src/App.tsx +170 -0
- rasa/core/channels/inspector/src/components/DiagramFlow.tsx +107 -0
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +187 -0
- rasa/core/channels/inspector/src/components/DialogueStack.tsx +151 -0
- rasa/core/channels/inspector/src/components/ExpandIcon.tsx +16 -0
- rasa/core/channels/inspector/src/components/FullscreenButton.tsx +45 -0
- rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +19 -0
- rasa/core/channels/inspector/src/components/NoActiveFlow.tsx +21 -0
- rasa/core/channels/inspector/src/components/RasaLogo.tsx +32 -0
- rasa/core/channels/inspector/src/components/SaraDiagrams.tsx +39 -0
- rasa/core/channels/inspector/src/components/Slots.tsx +91 -0
- rasa/core/channels/inspector/src/components/Welcome.tsx +54 -0
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +382 -0
- rasa/core/channels/inspector/src/helpers/formatters.ts +240 -0
- rasa/core/channels/inspector/src/helpers/utils.ts +42 -0
- rasa/core/channels/inspector/src/main.tsx +13 -0
- rasa/core/channels/inspector/src/theme/Button/Button.ts +29 -0
- rasa/core/channels/inspector/src/theme/Heading/Heading.ts +31 -0
- rasa/core/channels/inspector/src/theme/Input/Input.ts +27 -0
- rasa/core/channels/inspector/src/theme/Link/Link.ts +10 -0
- rasa/core/channels/inspector/src/theme/Modal/Modal.ts +47 -0
- rasa/core/channels/inspector/src/theme/Table/Table.tsx +38 -0
- rasa/core/channels/inspector/src/theme/Tooltip/Tooltip.ts +12 -0
- rasa/core/channels/inspector/src/theme/base/breakpoints.ts +8 -0
- rasa/core/channels/inspector/src/theme/base/colors.ts +88 -0
- rasa/core/channels/inspector/src/theme/base/fonts/fontFaces.css +29 -0
- rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.eot +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.svg +329 -0
- rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.ttf +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/ibm-plex-mono-v4-latin/ibm-plex-mono-v4-latin-regular.woff2 +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.eot +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.svg +438 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.ttf +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-700.woff2 +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.eot +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.svg +435 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.ttf +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff +0 -0
- rasa/core/channels/inspector/src/theme/base/fonts/lato-v14-latin/lato-v14-latin-regular.woff2 +0 -0
- rasa/core/channels/inspector/src/theme/base/radii.ts +9 -0
- rasa/core/channels/inspector/src/theme/base/shadows.ts +7 -0
- rasa/core/channels/inspector/src/theme/base/sizes.ts +7 -0
- rasa/core/channels/inspector/src/theme/base/space.ts +15 -0
- rasa/core/channels/inspector/src/theme/base/styles.ts +13 -0
- rasa/core/channels/inspector/src/theme/base/typography.ts +24 -0
- rasa/core/channels/inspector/src/theme/base/zIndices.ts +19 -0
- rasa/core/channels/inspector/src/theme/index.ts +101 -0
- rasa/core/channels/inspector/src/types.ts +64 -0
- rasa/core/channels/inspector/src/vite-env.d.ts +1 -0
- rasa/core/channels/inspector/tests/__mocks__/fileMock.ts +1 -0
- rasa/core/channels/inspector/tests/__mocks__/matchMedia.ts +16 -0
- rasa/core/channels/inspector/tests/__mocks__/styleMock.ts +1 -0
- rasa/core/channels/inspector/tests/renderWithProviders.tsx +14 -0
- rasa/core/channels/inspector/tsconfig.json +26 -0
- rasa/core/channels/inspector/tsconfig.node.json +10 -0
- rasa/core/channels/inspector/vite.config.ts +8 -0
- rasa/core/channels/inspector/yarn.lock +6156 -0
- rasa/core/channels/mattermost.py +229 -0
- rasa/core/channels/rasa_chat.py +126 -0
- rasa/core/channels/rest.py +225 -0
- rasa/core/channels/rocketchat.py +174 -0
- rasa/core/channels/slack.py +620 -0
- rasa/core/channels/socketio.py +274 -0
- rasa/core/channels/telegram.py +298 -0
- rasa/core/channels/twilio.py +169 -0
- rasa/core/channels/twilio_voice.py +367 -0
- rasa/core/channels/vier_cvg.py +374 -0
- rasa/core/channels/webexteams.py +134 -0
- rasa/core/concurrent_lock_store.py +210 -0
- rasa/core/constants.py +107 -0
- rasa/core/evaluation/__init__.py +0 -0
- rasa/core/evaluation/marker.py +267 -0
- rasa/core/evaluation/marker_base.py +923 -0
- rasa/core/evaluation/marker_stats.py +293 -0
- rasa/core/evaluation/marker_tracker_loader.py +103 -0
- rasa/core/exceptions.py +29 -0
- rasa/core/exporter.py +284 -0
- rasa/core/featurizers/__init__.py +0 -0
- rasa/core/featurizers/precomputation.py +410 -0
- rasa/core/featurizers/single_state_featurizer.py +421 -0
- rasa/core/featurizers/tracker_featurizers.py +1262 -0
- rasa/core/http_interpreter.py +89 -0
- rasa/core/information_retrieval/__init__.py +7 -0
- rasa/core/information_retrieval/faiss.py +121 -0
- rasa/core/information_retrieval/information_retrieval.py +129 -0
- rasa/core/information_retrieval/milvus.py +52 -0
- rasa/core/information_retrieval/qdrant.py +95 -0
- rasa/core/jobs.py +63 -0
- rasa/core/lock.py +139 -0
- rasa/core/lock_store.py +343 -0
- rasa/core/migrate.py +403 -0
- rasa/core/nlg/__init__.py +3 -0
- rasa/core/nlg/callback.py +146 -0
- rasa/core/nlg/contextual_response_rephraser.py +270 -0
- rasa/core/nlg/generator.py +230 -0
- rasa/core/nlg/interpolator.py +143 -0
- rasa/core/nlg/response.py +155 -0
- rasa/core/nlg/summarize.py +69 -0
- rasa/core/policies/__init__.py +0 -0
- rasa/core/policies/ensemble.py +329 -0
- rasa/core/policies/enterprise_search_policy.py +781 -0
- rasa/core/policies/enterprise_search_prompt_template.jinja2 +25 -0
- rasa/core/policies/enterprise_search_prompt_with_citation_template.jinja2 +60 -0
- rasa/core/policies/flow_policy.py +205 -0
- rasa/core/policies/flows/__init__.py +0 -0
- rasa/core/policies/flows/flow_exceptions.py +44 -0
- rasa/core/policies/flows/flow_executor.py +705 -0
- rasa/core/policies/flows/flow_step_result.py +43 -0
- rasa/core/policies/intentless_policy.py +922 -0
- rasa/core/policies/intentless_prompt_template.jinja2 +22 -0
- rasa/core/policies/memoization.py +538 -0
- rasa/core/policies/policy.py +725 -0
- rasa/core/policies/rule_policy.py +1273 -0
- rasa/core/policies/ted_policy.py +2169 -0
- rasa/core/policies/unexpected_intent_policy.py +1022 -0
- rasa/core/processor.py +1422 -0
- rasa/core/run.py +331 -0
- rasa/core/secrets_manager/__init__.py +0 -0
- rasa/core/secrets_manager/constants.py +32 -0
- rasa/core/secrets_manager/endpoints.py +391 -0
- rasa/core/secrets_manager/factory.py +233 -0
- rasa/core/secrets_manager/secret_manager.py +262 -0
- rasa/core/secrets_manager/vault.py +574 -0
- rasa/core/test.py +1335 -0
- rasa/core/tracker_store.py +1699 -0
- rasa/core/train.py +105 -0
- rasa/core/training/__init__.py +89 -0
- rasa/core/training/converters/__init__.py +0 -0
- rasa/core/training/converters/responses_prefix_converter.py +119 -0
- rasa/core/training/interactive.py +1745 -0
- rasa/core/training/story_conflict.py +381 -0
- rasa/core/training/training.py +93 -0
- rasa/core/utils.py +339 -0
- rasa/core/visualize.py +70 -0
- rasa/dialogue_understanding/__init__.py +0 -0
- rasa/dialogue_understanding/coexistence/__init__.py +0 -0
- rasa/dialogue_understanding/coexistence/constants.py +4 -0
- rasa/dialogue_understanding/coexistence/intent_based_router.py +196 -0
- rasa/dialogue_understanding/coexistence/llm_based_router.py +260 -0
- rasa/dialogue_understanding/coexistence/router_template.jinja2 +12 -0
- rasa/dialogue_understanding/commands/__init__.py +49 -0
- rasa/dialogue_understanding/commands/can_not_handle_command.py +70 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +125 -0
- rasa/dialogue_understanding/commands/change_flow_command.py +44 -0
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +57 -0
- rasa/dialogue_understanding/commands/clarify_command.py +86 -0
- rasa/dialogue_understanding/commands/command.py +85 -0
- rasa/dialogue_understanding/commands/correct_slots_command.py +297 -0
- rasa/dialogue_understanding/commands/error_command.py +79 -0
- rasa/dialogue_understanding/commands/free_form_answer_command.py +9 -0
- rasa/dialogue_understanding/commands/handle_code_change_command.py +73 -0
- rasa/dialogue_understanding/commands/human_handoff_command.py +66 -0
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +57 -0
- rasa/dialogue_understanding/commands/noop_command.py +54 -0
- rasa/dialogue_understanding/commands/set_slot_command.py +160 -0
- rasa/dialogue_understanding/commands/skip_question_command.py +75 -0
- rasa/dialogue_understanding/commands/start_flow_command.py +107 -0
- rasa/dialogue_understanding/generator/__init__.py +21 -0
- rasa/dialogue_understanding/generator/command_generator.py +343 -0
- rasa/dialogue_understanding/generator/constants.py +18 -0
- rasa/dialogue_understanding/generator/flow_document_template.jinja2 +4 -0
- rasa/dialogue_understanding/generator/flow_retrieval.py +412 -0
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +467 -0
- rasa/dialogue_understanding/generator/llm_command_generator.py +67 -0
- rasa/dialogue_understanding/generator/multi_step/__init__.py +0 -0
- rasa/dialogue_understanding/generator/multi_step/fill_slots_prompt.jinja2 +62 -0
- rasa/dialogue_understanding/generator/multi_step/handle_flows_prompt.jinja2 +38 -0
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +827 -0
- rasa/dialogue_understanding/generator/nlu_command_adapter.py +218 -0
- rasa/dialogue_understanding/generator/single_step/__init__.py +0 -0
- rasa/dialogue_understanding/generator/single_step/command_prompt_template.jinja2 +57 -0
- rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +345 -0
- rasa/dialogue_understanding/patterns/__init__.py +0 -0
- rasa/dialogue_understanding/patterns/cancel.py +111 -0
- rasa/dialogue_understanding/patterns/cannot_handle.py +43 -0
- rasa/dialogue_understanding/patterns/chitchat.py +37 -0
- rasa/dialogue_understanding/patterns/clarify.py +97 -0
- rasa/dialogue_understanding/patterns/code_change.py +41 -0
- rasa/dialogue_understanding/patterns/collect_information.py +90 -0
- rasa/dialogue_understanding/patterns/completed.py +40 -0
- rasa/dialogue_understanding/patterns/continue_interrupted.py +42 -0
- rasa/dialogue_understanding/patterns/correction.py +278 -0
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +248 -0
- rasa/dialogue_understanding/patterns/human_handoff.py +37 -0
- rasa/dialogue_understanding/patterns/internal_error.py +47 -0
- rasa/dialogue_understanding/patterns/search.py +37 -0
- rasa/dialogue_understanding/patterns/skip_question.py +38 -0
- rasa/dialogue_understanding/processor/__init__.py +0 -0
- rasa/dialogue_understanding/processor/command_processor.py +687 -0
- rasa/dialogue_understanding/processor/command_processor_component.py +39 -0
- rasa/dialogue_understanding/stack/__init__.py +0 -0
- rasa/dialogue_understanding/stack/dialogue_stack.py +178 -0
- rasa/dialogue_understanding/stack/frames/__init__.py +19 -0
- rasa/dialogue_understanding/stack/frames/chit_chat_frame.py +27 -0
- rasa/dialogue_understanding/stack/frames/dialogue_stack_frame.py +137 -0
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +157 -0
- rasa/dialogue_understanding/stack/frames/pattern_frame.py +10 -0
- rasa/dialogue_understanding/stack/frames/search_frame.py +27 -0
- rasa/dialogue_understanding/stack/utils.py +211 -0
- rasa/e2e_test/__init__.py +0 -0
- rasa/e2e_test/constants.py +11 -0
- rasa/e2e_test/e2e_test_case.py +366 -0
- rasa/e2e_test/e2e_test_result.py +34 -0
- rasa/e2e_test/e2e_test_runner.py +768 -0
- rasa/e2e_test/e2e_test_schema.yml +85 -0
- rasa/engine/__init__.py +0 -0
- rasa/engine/caching.py +463 -0
- rasa/engine/constants.py +17 -0
- rasa/engine/exceptions.py +14 -0
- rasa/engine/graph.py +637 -0
- rasa/engine/loader.py +36 -0
- rasa/engine/recipes/__init__.py +0 -0
- rasa/engine/recipes/config_files/default_config.yml +44 -0
- rasa/engine/recipes/default_components.py +99 -0
- rasa/engine/recipes/default_recipe.py +1251 -0
- rasa/engine/recipes/graph_recipe.py +79 -0
- rasa/engine/recipes/recipe.py +93 -0
- rasa/engine/runner/__init__.py +0 -0
- rasa/engine/runner/dask.py +250 -0
- rasa/engine/runner/interface.py +49 -0
- rasa/engine/storage/__init__.py +0 -0
- rasa/engine/storage/local_model_storage.py +246 -0
- rasa/engine/storage/resource.py +110 -0
- rasa/engine/storage/storage.py +203 -0
- rasa/engine/training/__init__.py +0 -0
- rasa/engine/training/components.py +176 -0
- rasa/engine/training/fingerprinting.py +64 -0
- rasa/engine/training/graph_trainer.py +256 -0
- rasa/engine/training/hooks.py +164 -0
- rasa/engine/validation.py +873 -0
- rasa/env.py +5 -0
- rasa/exceptions.py +69 -0
- rasa/graph_components/__init__.py +0 -0
- rasa/graph_components/converters/__init__.py +0 -0
- rasa/graph_components/converters/nlu_message_converter.py +48 -0
- rasa/graph_components/providers/__init__.py +0 -0
- rasa/graph_components/providers/domain_for_core_training_provider.py +87 -0
- rasa/graph_components/providers/domain_provider.py +71 -0
- rasa/graph_components/providers/flows_provider.py +74 -0
- rasa/graph_components/providers/forms_provider.py +44 -0
- rasa/graph_components/providers/nlu_training_data_provider.py +56 -0
- rasa/graph_components/providers/responses_provider.py +44 -0
- rasa/graph_components/providers/rule_only_provider.py +49 -0
- rasa/graph_components/providers/story_graph_provider.py +43 -0
- rasa/graph_components/providers/training_tracker_provider.py +55 -0
- rasa/graph_components/validators/__init__.py +0 -0
- rasa/graph_components/validators/default_recipe_validator.py +550 -0
- rasa/graph_components/validators/finetuning_validator.py +302 -0
- rasa/hooks.py +112 -0
- rasa/jupyter.py +63 -0
- rasa/markers/__init__.py +0 -0
- rasa/markers/marker.py +269 -0
- rasa/markers/marker_base.py +828 -0
- rasa/markers/upload.py +74 -0
- rasa/markers/validate.py +21 -0
- rasa/model.py +118 -0
- rasa/model_testing.py +457 -0
- rasa/model_training.py +536 -0
- rasa/nlu/__init__.py +7 -0
- rasa/nlu/classifiers/__init__.py +3 -0
- rasa/nlu/classifiers/classifier.py +5 -0
- rasa/nlu/classifiers/diet_classifier.py +1881 -0
- rasa/nlu/classifiers/fallback_classifier.py +192 -0
- rasa/nlu/classifiers/keyword_intent_classifier.py +188 -0
- rasa/nlu/classifiers/llm_intent_classifier.py +519 -0
- rasa/nlu/classifiers/logistic_regression_classifier.py +253 -0
- rasa/nlu/classifiers/mitie_intent_classifier.py +156 -0
- rasa/nlu/classifiers/regex_message_handler.py +56 -0
- rasa/nlu/classifiers/sklearn_intent_classifier.py +330 -0
- rasa/nlu/constants.py +77 -0
- rasa/nlu/convert.py +40 -0
- rasa/nlu/emulators/__init__.py +0 -0
- rasa/nlu/emulators/dialogflow.py +55 -0
- rasa/nlu/emulators/emulator.py +49 -0
- rasa/nlu/emulators/luis.py +86 -0
- rasa/nlu/emulators/no_emulator.py +10 -0
- rasa/nlu/emulators/wit.py +56 -0
- rasa/nlu/extractors/__init__.py +0 -0
- rasa/nlu/extractors/crf_entity_extractor.py +715 -0
- rasa/nlu/extractors/duckling_entity_extractor.py +206 -0
- rasa/nlu/extractors/entity_synonyms.py +178 -0
- rasa/nlu/extractors/extractor.py +470 -0
- rasa/nlu/extractors/mitie_entity_extractor.py +293 -0
- rasa/nlu/extractors/regex_entity_extractor.py +220 -0
- rasa/nlu/extractors/spacy_entity_extractor.py +95 -0
- rasa/nlu/featurizers/__init__.py +0 -0
- rasa/nlu/featurizers/dense_featurizer/__init__.py +0 -0
- rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +445 -0
- rasa/nlu/featurizers/dense_featurizer/dense_featurizer.py +57 -0
- rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +768 -0
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +170 -0
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +132 -0
- rasa/nlu/featurizers/featurizer.py +89 -0
- rasa/nlu/featurizers/sparse_featurizer/__init__.py +0 -0
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +867 -0
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +571 -0
- rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +271 -0
- rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py +9 -0
- rasa/nlu/model.py +24 -0
- rasa/nlu/persistor.py +282 -0
- rasa/nlu/run.py +27 -0
- rasa/nlu/selectors/__init__.py +0 -0
- rasa/nlu/selectors/response_selector.py +987 -0
- rasa/nlu/test.py +1940 -0
- rasa/nlu/tokenizers/__init__.py +0 -0
- rasa/nlu/tokenizers/jieba_tokenizer.py +148 -0
- rasa/nlu/tokenizers/mitie_tokenizer.py +75 -0
- rasa/nlu/tokenizers/spacy_tokenizer.py +72 -0
- rasa/nlu/tokenizers/tokenizer.py +239 -0
- rasa/nlu/tokenizers/whitespace_tokenizer.py +106 -0
- rasa/nlu/utils/__init__.py +35 -0
- rasa/nlu/utils/bilou_utils.py +462 -0
- rasa/nlu/utils/hugging_face/__init__.py +0 -0
- rasa/nlu/utils/hugging_face/registry.py +108 -0
- rasa/nlu/utils/hugging_face/transformers_pre_post_processors.py +311 -0
- rasa/nlu/utils/mitie_utils.py +113 -0
- rasa/nlu/utils/pattern_utils.py +168 -0
- rasa/nlu/utils/spacy_utils.py +310 -0
- rasa/plugin.py +90 -0
- rasa/server.py +1551 -0
- rasa/shared/__init__.py +0 -0
- rasa/shared/constants.py +192 -0
- rasa/shared/core/__init__.py +0 -0
- rasa/shared/core/command_payload_reader.py +109 -0
- rasa/shared/core/constants.py +167 -0
- rasa/shared/core/conversation.py +46 -0
- rasa/shared/core/domain.py +2107 -0
- rasa/shared/core/events.py +2504 -0
- rasa/shared/core/flows/__init__.py +7 -0
- rasa/shared/core/flows/flow.py +362 -0
- rasa/shared/core/flows/flow_step.py +146 -0
- rasa/shared/core/flows/flow_step_links.py +319 -0
- rasa/shared/core/flows/flow_step_sequence.py +70 -0
- rasa/shared/core/flows/flows_list.py +223 -0
- rasa/shared/core/flows/flows_yaml_schema.json +217 -0
- rasa/shared/core/flows/nlu_trigger.py +117 -0
- rasa/shared/core/flows/steps/__init__.py +24 -0
- rasa/shared/core/flows/steps/action.py +56 -0
- rasa/shared/core/flows/steps/call.py +64 -0
- rasa/shared/core/flows/steps/collect.py +112 -0
- rasa/shared/core/flows/steps/constants.py +5 -0
- rasa/shared/core/flows/steps/continuation.py +36 -0
- rasa/shared/core/flows/steps/end.py +22 -0
- rasa/shared/core/flows/steps/internal.py +44 -0
- rasa/shared/core/flows/steps/link.py +51 -0
- rasa/shared/core/flows/steps/no_operation.py +48 -0
- rasa/shared/core/flows/steps/set_slots.py +50 -0
- rasa/shared/core/flows/steps/start.py +30 -0
- rasa/shared/core/flows/validation.py +527 -0
- rasa/shared/core/flows/yaml_flows_io.py +278 -0
- rasa/shared/core/generator.py +908 -0
- rasa/shared/core/slot_mappings.py +526 -0
- rasa/shared/core/slots.py +649 -0
- rasa/shared/core/trackers.py +1177 -0
- rasa/shared/core/training_data/__init__.py +0 -0
- rasa/shared/core/training_data/loading.py +89 -0
- rasa/shared/core/training_data/story_reader/__init__.py +0 -0
- rasa/shared/core/training_data/story_reader/story_reader.py +129 -0
- rasa/shared/core/training_data/story_reader/story_step_builder.py +168 -0
- rasa/shared/core/training_data/story_reader/yaml_story_reader.py +888 -0
- rasa/shared/core/training_data/story_writer/__init__.py +0 -0
- rasa/shared/core/training_data/story_writer/story_writer.py +76 -0
- rasa/shared/core/training_data/story_writer/yaml_story_writer.py +444 -0
- rasa/shared/core/training_data/structures.py +838 -0
- rasa/shared/core/training_data/visualization.html +146 -0
- rasa/shared/core/training_data/visualization.py +603 -0
- rasa/shared/data.py +249 -0
- rasa/shared/engine/__init__.py +0 -0
- rasa/shared/engine/caching.py +26 -0
- rasa/shared/exceptions.py +163 -0
- rasa/shared/importers/__init__.py +0 -0
- rasa/shared/importers/importer.py +704 -0
- rasa/shared/importers/multi_project.py +203 -0
- rasa/shared/importers/rasa.py +99 -0
- rasa/shared/importers/utils.py +34 -0
- rasa/shared/nlu/__init__.py +0 -0
- rasa/shared/nlu/constants.py +47 -0
- rasa/shared/nlu/interpreter.py +10 -0
- rasa/shared/nlu/training_data/__init__.py +0 -0
- rasa/shared/nlu/training_data/entities_parser.py +208 -0
- rasa/shared/nlu/training_data/features.py +492 -0
- rasa/shared/nlu/training_data/formats/__init__.py +10 -0
- rasa/shared/nlu/training_data/formats/dialogflow.py +163 -0
- rasa/shared/nlu/training_data/formats/luis.py +87 -0
- rasa/shared/nlu/training_data/formats/rasa.py +135 -0
- rasa/shared/nlu/training_data/formats/rasa_yaml.py +603 -0
- rasa/shared/nlu/training_data/formats/readerwriter.py +244 -0
- rasa/shared/nlu/training_data/formats/wit.py +52 -0
- rasa/shared/nlu/training_data/loading.py +137 -0
- rasa/shared/nlu/training_data/lookup_tables_parser.py +30 -0
- rasa/shared/nlu/training_data/message.py +490 -0
- rasa/shared/nlu/training_data/schemas/__init__.py +0 -0
- rasa/shared/nlu/training_data/schemas/data_schema.py +85 -0
- rasa/shared/nlu/training_data/schemas/nlu.yml +53 -0
- rasa/shared/nlu/training_data/schemas/responses.yml +70 -0
- rasa/shared/nlu/training_data/synonyms_parser.py +42 -0
- rasa/shared/nlu/training_data/training_data.py +730 -0
- rasa/shared/nlu/training_data/util.py +223 -0
- rasa/shared/providers/__init__.py +0 -0
- rasa/shared/providers/openai/__init__.py +0 -0
- rasa/shared/providers/openai/clients.py +43 -0
- rasa/shared/providers/openai/session_handler.py +110 -0
- rasa/shared/utils/__init__.py +0 -0
- rasa/shared/utils/cli.py +72 -0
- rasa/shared/utils/common.py +308 -0
- rasa/shared/utils/constants.py +4 -0
- rasa/shared/utils/io.py +415 -0
- rasa/shared/utils/llm.py +404 -0
- rasa/shared/utils/pykwalify_extensions.py +27 -0
- rasa/shared/utils/schemas/__init__.py +0 -0
- rasa/shared/utils/schemas/config.yml +2 -0
- rasa/shared/utils/schemas/domain.yml +145 -0
- rasa/shared/utils/schemas/events.py +212 -0
- rasa/shared/utils/schemas/model_config.yml +46 -0
- rasa/shared/utils/schemas/stories.yml +173 -0
- rasa/shared/utils/yaml.py +786 -0
- rasa/studio/__init__.py +0 -0
- rasa/studio/auth.py +268 -0
- rasa/studio/config.py +127 -0
- rasa/studio/constants.py +18 -0
- rasa/studio/data_handler.py +359 -0
- rasa/studio/download.py +483 -0
- rasa/studio/results_logger.py +137 -0
- rasa/studio/train.py +135 -0
- rasa/studio/upload.py +433 -0
- rasa/telemetry.py +1737 -0
- rasa/tracing/__init__.py +0 -0
- rasa/tracing/config.py +353 -0
- rasa/tracing/constants.py +62 -0
- rasa/tracing/instrumentation/__init__.py +0 -0
- rasa/tracing/instrumentation/attribute_extractors.py +672 -0
- rasa/tracing/instrumentation/instrumentation.py +1185 -0
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +144 -0
- rasa/tracing/instrumentation/metrics.py +294 -0
- rasa/tracing/metric_instrument_provider.py +205 -0
- rasa/utils/__init__.py +0 -0
- rasa/utils/beta.py +83 -0
- rasa/utils/cli.py +28 -0
- rasa/utils/common.py +635 -0
- rasa/utils/converter.py +53 -0
- rasa/utils/endpoints.py +302 -0
- rasa/utils/io.py +260 -0
- rasa/utils/licensing.py +534 -0
- rasa/utils/log_utils.py +174 -0
- rasa/utils/mapper.py +210 -0
- rasa/utils/ml_utils.py +145 -0
- rasa/utils/plotting.py +362 -0
- rasa/utils/singleton.py +23 -0
- rasa/utils/tensorflow/__init__.py +0 -0
- rasa/utils/tensorflow/callback.py +112 -0
- rasa/utils/tensorflow/constants.py +116 -0
- rasa/utils/tensorflow/crf.py +492 -0
- rasa/utils/tensorflow/data_generator.py +440 -0
- rasa/utils/tensorflow/environment.py +161 -0
- rasa/utils/tensorflow/exceptions.py +5 -0
- rasa/utils/tensorflow/feature_array.py +366 -0
- rasa/utils/tensorflow/layers.py +1565 -0
- rasa/utils/tensorflow/layers_utils.py +113 -0
- rasa/utils/tensorflow/metrics.py +281 -0
- rasa/utils/tensorflow/model_data.py +798 -0
- rasa/utils/tensorflow/model_data_utils.py +499 -0
- rasa/utils/tensorflow/models.py +935 -0
- rasa/utils/tensorflow/rasa_layers.py +1094 -0
- rasa/utils/tensorflow/transformer.py +640 -0
- rasa/utils/tensorflow/types.py +6 -0
- rasa/utils/train_utils.py +572 -0
- rasa/utils/url_tools.py +53 -0
- rasa/utils/yaml.py +54 -0
- rasa/validator.py +1337 -0
- rasa/version.py +3 -0
- rasa_pro-3.9.18.dist-info/METADATA +563 -0
- rasa_pro-3.9.18.dist-info/NOTICE +5 -0
- rasa_pro-3.9.18.dist-info/RECORD +662 -0
- rasa_pro-3.9.18.dist-info/WHEEL +4 -0
- rasa_pro-3.9.18.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
allowempty: True
|
|
2
|
+
mapping:
|
|
3
|
+
anonymization:
|
|
4
|
+
type: "map"
|
|
5
|
+
mapping:
|
|
6
|
+
rule_lists:
|
|
7
|
+
type: "seq"
|
|
8
|
+
matching: "any"
|
|
9
|
+
required: True
|
|
10
|
+
sequence:
|
|
11
|
+
- type: "map"
|
|
12
|
+
mapping:
|
|
13
|
+
id:
|
|
14
|
+
type: "str"
|
|
15
|
+
required: True
|
|
16
|
+
rules:
|
|
17
|
+
type: "seq"
|
|
18
|
+
required: True
|
|
19
|
+
matching: "any"
|
|
20
|
+
sequence:
|
|
21
|
+
- type: "map"
|
|
22
|
+
mapping:
|
|
23
|
+
entity:
|
|
24
|
+
type: "str"
|
|
25
|
+
required: True
|
|
26
|
+
substitution:
|
|
27
|
+
type: "str"
|
|
28
|
+
enum: ["text", "mask", "faker"]
|
|
29
|
+
required: False
|
|
30
|
+
value:
|
|
31
|
+
type: "str"
|
|
32
|
+
required: False
|
|
33
|
+
|
|
34
|
+
metadata:
|
|
35
|
+
type: "map"
|
|
36
|
+
required: True
|
|
37
|
+
mapping:
|
|
38
|
+
language:
|
|
39
|
+
type: "str"
|
|
40
|
+
required: True
|
|
41
|
+
model_name:
|
|
42
|
+
type: "any"
|
|
43
|
+
required: True
|
|
44
|
+
model_provider:
|
|
45
|
+
type: "str"
|
|
46
|
+
required: True
|
|
47
|
+
enum: ["spacy", "stanza", "transformers"]
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Any, Dict, Optional, Text
|
|
5
|
+
|
|
6
|
+
from rasa.shared.exceptions import RasaException, YamlException
|
|
7
|
+
from rasa.shared.utils.yaml import (
|
|
8
|
+
read_config_file,
|
|
9
|
+
read_yaml_file,
|
|
10
|
+
validate_yaml_content_using_schema,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
SCHEMA_FILE = Path(__file__).parent / "schemas" / "config.yml"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def read_endpoint_config(
|
|
18
|
+
filename: Optional[Text], endpoint_type: Text
|
|
19
|
+
) -> Optional[Dict[Text, Any]]:
|
|
20
|
+
"""Reads a configuration file from disk and extract one config."""
|
|
21
|
+
if not filename:
|
|
22
|
+
return None
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
content = read_config_file(filename, reader_type=["safe", "rt"])
|
|
26
|
+
|
|
27
|
+
if content.get(endpoint_type) is None:
|
|
28
|
+
return None
|
|
29
|
+
|
|
30
|
+
return content
|
|
31
|
+
except FileNotFoundError:
|
|
32
|
+
logger.error(
|
|
33
|
+
"Failed to read configuration from {}. No such file.".format(
|
|
34
|
+
os.path.abspath(filename)
|
|
35
|
+
),
|
|
36
|
+
)
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def extract_anonymization_traits(
|
|
41
|
+
anonymization_config: Optional[Dict[Text, Any]], endpoint_type: Text
|
|
42
|
+
) -> Dict[Text, Any]:
|
|
43
|
+
"""Extract anonymization traits from the anonymization config.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
anonymization_config: The anonymization config.
|
|
47
|
+
endpoint_type: The endpoint type.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
A dictionary containing the anonymization traits.
|
|
51
|
+
"""
|
|
52
|
+
if not anonymization_config:
|
|
53
|
+
return {"enabled": False}
|
|
54
|
+
|
|
55
|
+
anonymization_value = anonymization_config.get(endpoint_type)
|
|
56
|
+
if not anonymization_value:
|
|
57
|
+
logger.debug("Anonymization config found but nothing is defined.")
|
|
58
|
+
return {"enabled": False}
|
|
59
|
+
|
|
60
|
+
try:
|
|
61
|
+
validate_anonymization_yaml(anonymization_config)
|
|
62
|
+
except RasaException as exception:
|
|
63
|
+
logger.debug(exception)
|
|
64
|
+
return {"enabled": False}
|
|
65
|
+
|
|
66
|
+
rule_lists = anonymization_value.get("rule_lists", [])
|
|
67
|
+
|
|
68
|
+
traits = {
|
|
69
|
+
"enabled": True,
|
|
70
|
+
"metadata": anonymization_value.get("metadata", {}),
|
|
71
|
+
"number_of_rule_lists": len(rule_lists),
|
|
72
|
+
"number_of_rules": 0,
|
|
73
|
+
"substitutions": {
|
|
74
|
+
"mask": 0,
|
|
75
|
+
"faker": 0,
|
|
76
|
+
"text": 0,
|
|
77
|
+
"not_defined": 0,
|
|
78
|
+
},
|
|
79
|
+
"entities": set(),
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
for rule_list in rule_lists:
|
|
83
|
+
traits["number_of_rules"] += len(rule_list.get("rules", []))
|
|
84
|
+
for rule in rule_list.get("rules", []):
|
|
85
|
+
traits["substitutions"][rule.get("substitution", "not_defined")] += 1
|
|
86
|
+
traits["entities"].add(rule.get("entity"))
|
|
87
|
+
|
|
88
|
+
entities = list(traits["entities"])
|
|
89
|
+
entities.sort()
|
|
90
|
+
traits["entities"] = entities
|
|
91
|
+
|
|
92
|
+
return traits
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def validate_anonymization_yaml(yaml_content: Dict[Text, Any]) -> None:
|
|
96
|
+
"""Checks if the yaml_content adheres to the anonymization rule schema.
|
|
97
|
+
|
|
98
|
+
If the yaml_content is not in the right format, an exception will be raised.
|
|
99
|
+
"""
|
|
100
|
+
schema = read_yaml_file(SCHEMA_FILE, reader_type=("safe", "rt"))
|
|
101
|
+
try:
|
|
102
|
+
validate_yaml_content_using_schema(yaml_content, schema)
|
|
103
|
+
except YamlException as exception:
|
|
104
|
+
raise RasaException(
|
|
105
|
+
f"Invalid configuration for `anonymization_rules` : {exception}"
|
|
106
|
+
) from exception
|
|
107
|
+
|
|
108
|
+
rule_lists = yaml_content.get("anonymization", {}).get("rule_lists", [])
|
|
109
|
+
|
|
110
|
+
rule_set = set()
|
|
111
|
+
for rule_list in rule_lists:
|
|
112
|
+
rule_id = rule_list.get("id")
|
|
113
|
+
if rule_id in rule_set:
|
|
114
|
+
raise RasaException(
|
|
115
|
+
f"Invalid configuration for `anonymization_rules` :"
|
|
116
|
+
f"Duplicate rule id: '{rule_id}' encountered in rule_lists"
|
|
117
|
+
)
|
|
118
|
+
rule_set.add(rule_id)
|
rasa/api.py
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from typing import Any, Text, Dict, Union, List, Optional, TYPE_CHECKING
|
|
2
|
+
import asyncio
|
|
3
|
+
import rasa.shared.constants
|
|
4
|
+
|
|
5
|
+
# WARNING: Be careful about adding any top level imports at this place!
|
|
6
|
+
# These functions are imported in `rasa.__init__` and any top level import
|
|
7
|
+
# added here will get executed as soon as someone runs `import rasa`.
|
|
8
|
+
# Some imports are very slow (e.g. `tensorflow`) and we want them to get
|
|
9
|
+
# imported when running `import rasa`. If you add more imports here,
|
|
10
|
+
# please check that in the chain you are importing, no slow packages
|
|
11
|
+
# are getting imported.
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from rasa.model_training import TrainingResult
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(
|
|
18
|
+
model: "Text",
|
|
19
|
+
endpoints: "Text",
|
|
20
|
+
connector: "Optional[Text]" = None,
|
|
21
|
+
credentials: "Optional[Text]" = None,
|
|
22
|
+
**kwargs: "Dict[Text, Any]",
|
|
23
|
+
) -> None:
|
|
24
|
+
"""Runs a Rasa model.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
model: Path to model archive.
|
|
28
|
+
endpoints: Path to endpoints file.
|
|
29
|
+
connector: Connector which should be use (overwrites `credentials`
|
|
30
|
+
field).
|
|
31
|
+
credentials: Path to channel credentials file.
|
|
32
|
+
**kwargs: Additional arguments which are passed to
|
|
33
|
+
`rasa.core.run.serve_application`.
|
|
34
|
+
|
|
35
|
+
"""
|
|
36
|
+
import rasa.core.run
|
|
37
|
+
from rasa.core.utils import AvailableEndpoints
|
|
38
|
+
from rasa.shared.utils.cli import print_warning
|
|
39
|
+
import rasa.shared.utils.common
|
|
40
|
+
from rasa.shared.constants import DOCS_BASE_URL
|
|
41
|
+
|
|
42
|
+
_endpoints = AvailableEndpoints.read_endpoints(endpoints)
|
|
43
|
+
|
|
44
|
+
if not connector and not credentials:
|
|
45
|
+
connector = "rest"
|
|
46
|
+
|
|
47
|
+
print_warning(
|
|
48
|
+
f"No chat connector configured, falling back to the "
|
|
49
|
+
f"REST input channel. To connect your bot to another channel, "
|
|
50
|
+
f"read the docs here: {DOCS_BASE_URL}/messaging-and-voice-channels"
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
kwargs = rasa.shared.utils.common.minimal_kwargs(
|
|
54
|
+
kwargs, rasa.core.run.serve_application
|
|
55
|
+
)
|
|
56
|
+
rasa.core.run.serve_application(
|
|
57
|
+
model,
|
|
58
|
+
channel=connector,
|
|
59
|
+
credentials=credentials,
|
|
60
|
+
endpoints=_endpoints,
|
|
61
|
+
**kwargs,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def train(
|
|
66
|
+
domain: "Text",
|
|
67
|
+
config: "Text",
|
|
68
|
+
training_files: "Union[Text, List[Text]]",
|
|
69
|
+
output: "Text" = rasa.shared.constants.DEFAULT_MODELS_PATH,
|
|
70
|
+
dry_run: bool = False,
|
|
71
|
+
force_training: bool = False,
|
|
72
|
+
fixed_model_name: "Optional[Text]" = None,
|
|
73
|
+
persist_nlu_training_data: bool = False,
|
|
74
|
+
core_additional_arguments: "Optional[Dict]" = None,
|
|
75
|
+
nlu_additional_arguments: "Optional[Dict]" = None,
|
|
76
|
+
model_to_finetune: "Optional[Text]" = None,
|
|
77
|
+
finetuning_epoch_fraction: float = 1.0,
|
|
78
|
+
) -> "TrainingResult":
|
|
79
|
+
"""Runs Rasa Core and NLU training in `async` loop.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
domain: Path to the domain file.
|
|
83
|
+
config: Path to the config for Core and NLU.
|
|
84
|
+
training_files: Paths to the training data for Core and NLU.
|
|
85
|
+
output: Output path.
|
|
86
|
+
dry_run: If `True` then no training will be done, and the information about
|
|
87
|
+
whether the training needs to be done will be printed.
|
|
88
|
+
force_training: If `True` retrain model even if data has not changed.
|
|
89
|
+
fixed_model_name: Name of model to be stored.
|
|
90
|
+
persist_nlu_training_data: `True` if the NLU training data should be persisted
|
|
91
|
+
with the model.
|
|
92
|
+
core_additional_arguments: Additional training parameters for core training.
|
|
93
|
+
nlu_additional_arguments: Additional training parameters forwarded to training
|
|
94
|
+
method of each NLU component.
|
|
95
|
+
model_to_finetune: Optional path to a model which should be finetuned or
|
|
96
|
+
a directory in case the latest trained model should be used.
|
|
97
|
+
finetuning_epoch_fraction: The fraction currently specified training epochs
|
|
98
|
+
in the model configuration which should be used for finetuning.
|
|
99
|
+
|
|
100
|
+
Returns:
|
|
101
|
+
An instance of `TrainingResult`.
|
|
102
|
+
"""
|
|
103
|
+
from rasa.model_training import train
|
|
104
|
+
|
|
105
|
+
return asyncio.run(
|
|
106
|
+
train(
|
|
107
|
+
domain=domain,
|
|
108
|
+
config=config,
|
|
109
|
+
training_files=training_files,
|
|
110
|
+
output=output,
|
|
111
|
+
dry_run=dry_run,
|
|
112
|
+
force_training=force_training,
|
|
113
|
+
fixed_model_name=fixed_model_name,
|
|
114
|
+
persist_nlu_training_data=persist_nlu_training_data,
|
|
115
|
+
core_additional_arguments=core_additional_arguments,
|
|
116
|
+
nlu_additional_arguments=nlu_additional_arguments,
|
|
117
|
+
model_to_finetune=model_to_finetune,
|
|
118
|
+
finetuning_epoch_fraction=finetuning_epoch_fraction,
|
|
119
|
+
)
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def test(
|
|
124
|
+
model: "Text",
|
|
125
|
+
stories: "Text",
|
|
126
|
+
nlu_data: "Text",
|
|
127
|
+
output: "Text" = rasa.shared.constants.DEFAULT_RESULTS_PATH,
|
|
128
|
+
additional_arguments: "Optional[Dict]" = None,
|
|
129
|
+
) -> None:
|
|
130
|
+
"""Test a Rasa model against a set of test data.
|
|
131
|
+
|
|
132
|
+
Args:
|
|
133
|
+
model: model to test
|
|
134
|
+
stories: path to the dialogue test data
|
|
135
|
+
nlu_data: path to the NLU test data
|
|
136
|
+
output: path to folder where all output will be stored
|
|
137
|
+
additional_arguments: additional arguments for the test call
|
|
138
|
+
"""
|
|
139
|
+
from rasa.model_testing import test_core
|
|
140
|
+
from rasa.model_testing import test_nlu
|
|
141
|
+
|
|
142
|
+
if additional_arguments is None:
|
|
143
|
+
additional_arguments = {}
|
|
144
|
+
|
|
145
|
+
test_core(model, stories, output, additional_arguments) # type: ignore[unused-coroutine]
|
|
146
|
+
test_nlu(model, nlu_data, output, additional_arguments) # type: ignore[unused-coroutine]
|
rasa/cli/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import Text
|
|
3
|
+
|
|
4
|
+
from rasa.cli.arguments.default_arguments import (
|
|
5
|
+
add_nlu_data_param,
|
|
6
|
+
add_out_param,
|
|
7
|
+
add_data_param,
|
|
8
|
+
add_domain_param,
|
|
9
|
+
)
|
|
10
|
+
from rasa.shared.constants import DEFAULT_CONVERTED_DATA_PATH
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def set_convert_arguments(parser: argparse.ArgumentParser, data_type: Text) -> None:
|
|
14
|
+
"""Sets convert command arguments."""
|
|
15
|
+
parser.add_argument(
|
|
16
|
+
"-f",
|
|
17
|
+
"--format",
|
|
18
|
+
default="yaml",
|
|
19
|
+
choices=["json", "yaml"],
|
|
20
|
+
help="Output format the training data should be converted into.",
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
add_data_param(parser, required=True, data_type=data_type)
|
|
24
|
+
|
|
25
|
+
add_out_param(
|
|
26
|
+
parser,
|
|
27
|
+
default=DEFAULT_CONVERTED_DATA_PATH,
|
|
28
|
+
help_text="File (for `json`) or existing path (for `yaml`) "
|
|
29
|
+
"where to save training data in Rasa format.",
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
parser.add_argument("-l", "--language", default="en", help="Language of data.")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def set_split_arguments(parser: argparse.ArgumentParser) -> None:
|
|
36
|
+
add_nlu_data_param(parser, help_text="File or folder containing your NLU data.")
|
|
37
|
+
|
|
38
|
+
parser.add_argument(
|
|
39
|
+
"--training-fraction",
|
|
40
|
+
type=float,
|
|
41
|
+
default=0.8,
|
|
42
|
+
help="Percentage of the data which should be in the training data.",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
parser.add_argument(
|
|
46
|
+
"--random-seed",
|
|
47
|
+
type=int,
|
|
48
|
+
default=None,
|
|
49
|
+
help="Seed to generate the same train/test split.",
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
add_out_param(
|
|
53
|
+
parser,
|
|
54
|
+
default="train_test_split",
|
|
55
|
+
help_text="Directory where the split files should be stored.",
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def set_validator_arguments(parser: argparse.ArgumentParser) -> None:
|
|
60
|
+
parser.add_argument(
|
|
61
|
+
"--fail-on-warnings",
|
|
62
|
+
default=False,
|
|
63
|
+
action="store_true",
|
|
64
|
+
help="Fail validation on warnings and errors. "
|
|
65
|
+
"If omitted only errors will result in a non zero exit code.",
|
|
66
|
+
)
|
|
67
|
+
add_domain_param(parser)
|
|
68
|
+
add_data_param(parser)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def set_migrate_arguments(parser: argparse.ArgumentParser) -> None:
|
|
72
|
+
"""Sets migrate command arguments."""
|
|
73
|
+
add_domain_param(parser)
|
|
74
|
+
|
|
75
|
+
add_out_param(
|
|
76
|
+
parser,
|
|
77
|
+
default=None,
|
|
78
|
+
help_text="Path (for `yaml`) where to save migrated domain in Rasa 3.0 format."
|
|
79
|
+
"If none is specified, either a `new_domain.yml` file or `new_domain` folder "
|
|
80
|
+
"will be created in the folder that contains the given domain.",
|
|
81
|
+
)
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import logging
|
|
3
|
+
from typing import Text, Union, Optional
|
|
4
|
+
|
|
5
|
+
from rasa.shared.constants import (
|
|
6
|
+
DEFAULT_CONFIG_PATH,
|
|
7
|
+
DEFAULT_DOMAIN_PATH,
|
|
8
|
+
DEFAULT_MODELS_PATH,
|
|
9
|
+
DEFAULT_DATA_PATH,
|
|
10
|
+
DEFAULT_ENDPOINTS_PATH,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def add_model_param(
|
|
15
|
+
parser: argparse.ArgumentParser,
|
|
16
|
+
model_name: Text = "Rasa",
|
|
17
|
+
add_positional_arg: bool = True,
|
|
18
|
+
default: Optional[Text] = DEFAULT_MODELS_PATH,
|
|
19
|
+
) -> None:
|
|
20
|
+
help_text = (
|
|
21
|
+
"Path to a trained {} model. If a directory is specified, it will "
|
|
22
|
+
"use the latest model in this directory.".format(model_name)
|
|
23
|
+
)
|
|
24
|
+
parser.add_argument("-m", "--model", type=str, default=default, help=help_text)
|
|
25
|
+
if add_positional_arg:
|
|
26
|
+
parser.add_argument(
|
|
27
|
+
"model-as-positional-argument", nargs="?", type=str, help=help_text
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def add_stories_param(
|
|
32
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
33
|
+
stories_name: Text = "training",
|
|
34
|
+
) -> None:
|
|
35
|
+
parser.add_argument(
|
|
36
|
+
"-s",
|
|
37
|
+
"--stories",
|
|
38
|
+
type=str,
|
|
39
|
+
default=DEFAULT_DATA_PATH,
|
|
40
|
+
help=f"File or folder containing your {stories_name} stories.",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def add_nlu_data_param(
|
|
45
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
46
|
+
help_text: Text,
|
|
47
|
+
default: Optional[Text] = DEFAULT_DATA_PATH,
|
|
48
|
+
) -> None:
|
|
49
|
+
parser.add_argument("-u", "--nlu", type=str, default=default, help=help_text)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def add_domain_param(
|
|
53
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
54
|
+
default: Optional[Text] = DEFAULT_DOMAIN_PATH,
|
|
55
|
+
) -> None:
|
|
56
|
+
parser.add_argument(
|
|
57
|
+
"-d",
|
|
58
|
+
"--domain",
|
|
59
|
+
type=str,
|
|
60
|
+
default=default,
|
|
61
|
+
help="Domain specification. This can be a single YAML file, or a directory "
|
|
62
|
+
"that contains several files with domain specifications in it. The content "
|
|
63
|
+
"of these files will be read and merged together.",
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def add_config_param(
|
|
68
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
69
|
+
default: Optional[Text] = DEFAULT_CONFIG_PATH,
|
|
70
|
+
) -> None:
|
|
71
|
+
parser.add_argument(
|
|
72
|
+
"-c",
|
|
73
|
+
"--config",
|
|
74
|
+
type=str,
|
|
75
|
+
default=default,
|
|
76
|
+
help="The policy and pipeline configuration of your bot.",
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def add_out_param(
|
|
81
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
82
|
+
help_text: Text,
|
|
83
|
+
default: Optional[Text] = DEFAULT_MODELS_PATH,
|
|
84
|
+
required: bool = False,
|
|
85
|
+
) -> None:
|
|
86
|
+
parser.add_argument(
|
|
87
|
+
"--out",
|
|
88
|
+
type=str,
|
|
89
|
+
default=default,
|
|
90
|
+
help=help_text,
|
|
91
|
+
# The desired behaviour is that required indicates if this argument must
|
|
92
|
+
# have a value, but argparse interprets it as "must have a value
|
|
93
|
+
# from user input", so we toggle it only if our default is not set
|
|
94
|
+
required=required and default is None,
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def add_endpoint_param(
|
|
99
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
100
|
+
help_text: Text,
|
|
101
|
+
default: Optional[Text] = DEFAULT_ENDPOINTS_PATH,
|
|
102
|
+
) -> None:
|
|
103
|
+
"""Adds an option to an argument parser to configure endpoints path."""
|
|
104
|
+
parser.add_argument("--endpoints", type=str, default=default, help=help_text)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def add_data_param(
|
|
108
|
+
parser: Union[argparse.ArgumentParser, argparse._ActionsContainer],
|
|
109
|
+
default: Optional[Text] = DEFAULT_DATA_PATH,
|
|
110
|
+
required: bool = False,
|
|
111
|
+
data_type: Text = "Rasa ",
|
|
112
|
+
) -> None:
|
|
113
|
+
parser.add_argument(
|
|
114
|
+
"--data",
|
|
115
|
+
default=default,
|
|
116
|
+
nargs="+",
|
|
117
|
+
type=str,
|
|
118
|
+
help=f"Paths to the files or directories containing {data_type} data.",
|
|
119
|
+
# The desired behaviour is that required indicates if this argument must
|
|
120
|
+
# have a value, but argparse interprets it as "must have a value
|
|
121
|
+
# from user input", so we toggle it only if our default is not set
|
|
122
|
+
required=required and default is None,
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def add_logging_options(parser: argparse.ArgumentParser) -> None:
|
|
127
|
+
"""Add options to an argument parser to configure logging levels."""
|
|
128
|
+
logging_arguments = parser.add_argument_group(
|
|
129
|
+
"Python Logging Options",
|
|
130
|
+
"You can control level of log messages printed. "
|
|
131
|
+
"In addition to these arguments, a more fine grained configuration can be "
|
|
132
|
+
"achieved with environment variables. See online documentation for more info.",
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
# arguments for logging configuration
|
|
136
|
+
logging_arguments.add_argument(
|
|
137
|
+
"-v",
|
|
138
|
+
"--verbose",
|
|
139
|
+
help="Be verbose. Sets logging level to INFO.",
|
|
140
|
+
action="store_const",
|
|
141
|
+
dest="loglevel",
|
|
142
|
+
const=logging.INFO,
|
|
143
|
+
)
|
|
144
|
+
logging_arguments.add_argument(
|
|
145
|
+
"-vv",
|
|
146
|
+
"--debug",
|
|
147
|
+
help="Print lots of debugging statements. Sets logging level to DEBUG.",
|
|
148
|
+
action="store_const",
|
|
149
|
+
dest="loglevel",
|
|
150
|
+
const=logging.DEBUG,
|
|
151
|
+
)
|
|
152
|
+
logging_arguments.add_argument(
|
|
153
|
+
"--quiet",
|
|
154
|
+
help="Be quiet! Sets logging level to WARNING.",
|
|
155
|
+
action="store_const",
|
|
156
|
+
dest="loglevel",
|
|
157
|
+
const=logging.WARNING,
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
logging_arguments.add_argument(
|
|
161
|
+
"--logging-config-file",
|
|
162
|
+
type=str,
|
|
163
|
+
help="If set, the name of the logging configuration file will be set "
|
|
164
|
+
"to the given name.",
|
|
165
|
+
)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from rasa.cli.arguments.default_arguments import add_endpoint_param, add_domain_param
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def set_markers_arguments(parser: argparse.ArgumentParser) -> None:
|
|
7
|
+
"""Specifies arguments for `rasa evaluate markers`."""
|
|
8
|
+
parser.add_argument(
|
|
9
|
+
"output_filename",
|
|
10
|
+
type=Path,
|
|
11
|
+
help="The filename to write the extracted markers to (CSV format).",
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
parser.add_argument(
|
|
15
|
+
"--config",
|
|
16
|
+
default="markers.yml",
|
|
17
|
+
type=Path,
|
|
18
|
+
help="The marker configuration file(s) containing marker definitions. "
|
|
19
|
+
"This can be a single YAML file, or a directory that contains several "
|
|
20
|
+
"files with marker definitions in it. The content of these files will "
|
|
21
|
+
"be read and merged together.",
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
stats = parser.add_mutually_exclusive_group()
|
|
25
|
+
|
|
26
|
+
stats.add_argument(
|
|
27
|
+
"--no-stats",
|
|
28
|
+
action="store_false",
|
|
29
|
+
dest="stats",
|
|
30
|
+
help="Do not compute summary statistics.",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
stats.add_argument(
|
|
34
|
+
"--stats-file-prefix",
|
|
35
|
+
default="stats",
|
|
36
|
+
nargs="?",
|
|
37
|
+
type=Path,
|
|
38
|
+
help="The common file prefix of the files where we write out the compute "
|
|
39
|
+
"statistics. More precisely, the file prefix must consist of a common "
|
|
40
|
+
"path plus a common file prefix, to which suffixes `-overall.csv` and "
|
|
41
|
+
"`-per-session.csv` will be added automatically.",
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
add_endpoint_param(
|
|
45
|
+
parser, help_text="Configuration file for the tracker store as a yml file."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
add_domain_param(parser)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def set_markers_first_n_arguments(parser: argparse.ArgumentParser) -> None:
|
|
52
|
+
"""Specifies arguments for `rasa evaluate markers first_n`."""
|
|
53
|
+
parser.add_argument(
|
|
54
|
+
"count", type=int, help="The number of trackers to extract markers from"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def set_markers_sample_arguments(parser: argparse.ArgumentParser) -> None:
|
|
59
|
+
"""Specifies arguments for `rasa evaluate markers sample_n`."""
|
|
60
|
+
parser.add_argument(
|
|
61
|
+
"--seed", type=int, help="Seed to use if selecting trackers by 'sample_n'"
|
|
62
|
+
)
|
|
63
|
+
parser.add_argument(
|
|
64
|
+
"count", type=int, help="The number of trackers to extract markers from"
|
|
65
|
+
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
|
|
3
|
+
from rasa.cli.arguments import default_arguments
|
|
4
|
+
from rasa.shared.constants import DEFAULT_ENDPOINTS_PATH
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def set_export_arguments(parser: argparse.ArgumentParser) -> None:
|
|
8
|
+
default_arguments.add_endpoint_param(
|
|
9
|
+
parser,
|
|
10
|
+
default=DEFAULT_ENDPOINTS_PATH,
|
|
11
|
+
help_text=(
|
|
12
|
+
"Endpoint configuration file specifying the tracker store "
|
|
13
|
+
"and event broker."
|
|
14
|
+
),
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
parser.add_argument(
|
|
18
|
+
"--minimum-timestamp",
|
|
19
|
+
type=float,
|
|
20
|
+
help=(
|
|
21
|
+
"Minimum timestamp of events to be exported. The constraint is applied "
|
|
22
|
+
"in a 'greater than or equal' comparison."
|
|
23
|
+
),
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
parser.add_argument(
|
|
27
|
+
"--maximum-timestamp",
|
|
28
|
+
type=float,
|
|
29
|
+
help=(
|
|
30
|
+
"Maximum timestamp of events to be exported. The constraint is "
|
|
31
|
+
"applied in a 'less than' comparison."
|
|
32
|
+
),
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
parser.add_argument(
|
|
36
|
+
"--offset-timestamps-by-seconds",
|
|
37
|
+
type=int,
|
|
38
|
+
help=(
|
|
39
|
+
"Offset all event timestamps by the specified amount of seconds. "
|
|
40
|
+
"This won't modify the stored events in the tracker store, but only "
|
|
41
|
+
"change the timestamps in the events exported to the broker."
|
|
42
|
+
),
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
parser.add_argument(
|
|
46
|
+
"--conversation-ids",
|
|
47
|
+
help=(
|
|
48
|
+
"Comma-separated list of conversation IDs to migrate. If unset, "
|
|
49
|
+
"all available conversation IDs will be exported."
|
|
50
|
+
),
|
|
51
|
+
)
|