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,266 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
from urllib.parse import ParseResult, urlparse
|
|
4
|
+
|
|
5
|
+
import questionary
|
|
6
|
+
from rasa.cli import SubParsersAction
|
|
7
|
+
|
|
8
|
+
import rasa.cli.studio.download
|
|
9
|
+
import rasa.cli.studio.train
|
|
10
|
+
import rasa.cli.studio.upload
|
|
11
|
+
from rasa.studio.auth import StudioAuth
|
|
12
|
+
from rasa.studio.config import StudioConfig
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
DEFAULT_REALM_NAME = "rasa-studio"
|
|
16
|
+
|
|
17
|
+
DEFAULT_CLIENT_ID = "admin-cli"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def add_subparser(
|
|
21
|
+
subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
22
|
+
) -> None:
|
|
23
|
+
studio_parser = subparsers.add_parser(
|
|
24
|
+
"studio",
|
|
25
|
+
parents=parents,
|
|
26
|
+
conflict_handler="resolve",
|
|
27
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
28
|
+
help="Rasa Studio commands.",
|
|
29
|
+
)
|
|
30
|
+
studio_subparsers = studio_parser.add_subparsers()
|
|
31
|
+
|
|
32
|
+
rasa.cli.studio.train.add_subparser(studio_subparsers, parents)
|
|
33
|
+
rasa.cli.studio.upload.add_subparser(studio_subparsers, parents)
|
|
34
|
+
rasa.cli.studio.download.add_subparser(studio_subparsers, parents)
|
|
35
|
+
|
|
36
|
+
_add_config_subparser(studio_subparsers, parents)
|
|
37
|
+
_add_login_subparser(studio_subparsers, parents)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _add_config_subparser(
|
|
41
|
+
studio_sub_parsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
42
|
+
) -> None:
|
|
43
|
+
studio_config_parser = studio_sub_parsers.add_parser(
|
|
44
|
+
"config",
|
|
45
|
+
parents=parents,
|
|
46
|
+
conflict_handler="resolve",
|
|
47
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
48
|
+
help="Configure communication parameters for Rasa Studio",
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
studio_config_parser.set_defaults(func=create_and_store_studio_config)
|
|
52
|
+
|
|
53
|
+
# add advanced configuration flag to trigger
|
|
54
|
+
# advanced configuration setup for authentication settings
|
|
55
|
+
studio_config_parser.add_argument(
|
|
56
|
+
"--advanced",
|
|
57
|
+
action="store_true",
|
|
58
|
+
default=False,
|
|
59
|
+
help="Configure additional authentication parameters for Rasa Studio",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _add_login_subparser(
|
|
64
|
+
studio_sub_parsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
65
|
+
) -> None:
|
|
66
|
+
login_parser = studio_sub_parsers.add_parser(
|
|
67
|
+
"login",
|
|
68
|
+
parents=parents,
|
|
69
|
+
conflict_handler="resolve",
|
|
70
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
71
|
+
help="Login to Rasa Studio",
|
|
72
|
+
)
|
|
73
|
+
login_parser.set_defaults(func=_studio_login)
|
|
74
|
+
|
|
75
|
+
login_parser.add_argument(
|
|
76
|
+
"--username",
|
|
77
|
+
type=str,
|
|
78
|
+
help="Username for Rasa Studio",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
login_parser.add_argument(
|
|
82
|
+
"--password",
|
|
83
|
+
type=str,
|
|
84
|
+
help="Password for Rasa Studio",
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def _studio_login(args: argparse.Namespace) -> None:
|
|
89
|
+
"""Login to Rasa Studio.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
args: Commandline arguments
|
|
93
|
+
"""
|
|
94
|
+
studio_config = StudioConfig.read_config()
|
|
95
|
+
studio_auth = StudioAuth(studio_config)
|
|
96
|
+
|
|
97
|
+
# show the user the studio url they are logging into
|
|
98
|
+
# urlparse will always return parseresult if a string is passed in as url
|
|
99
|
+
parsed_url: ParseResult = urlparse(studio_config.studio_url) # type: ignore[assignment]
|
|
100
|
+
studio_url = f"{parsed_url.scheme}://{parsed_url.netloc}"
|
|
101
|
+
|
|
102
|
+
rasa.shared.utils.cli.print_info(
|
|
103
|
+
f"Trying to log in to Rasa Studio at {studio_url} ..."
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
try:
|
|
107
|
+
username = args.username
|
|
108
|
+
password = args.password
|
|
109
|
+
|
|
110
|
+
if not username:
|
|
111
|
+
username = questionary.text("Please enter your username").unsafe_ask()
|
|
112
|
+
|
|
113
|
+
if not password:
|
|
114
|
+
password = questionary.password("Please enter your password").unsafe_ask()
|
|
115
|
+
|
|
116
|
+
studio_auth.login(username, password)
|
|
117
|
+
except KeyboardInterrupt:
|
|
118
|
+
rasa.shared.utils.cli.print_error("Login to Rasa Studio aborted.")
|
|
119
|
+
except Exception as e:
|
|
120
|
+
rasa.shared.utils.cli.print_error(f"Failed to login to Rasa Studio. {e}")
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def _configure_studio_url() -> Optional[str]:
|
|
124
|
+
"""Configure the Rasa Studio URL.
|
|
125
|
+
|
|
126
|
+
Returns:
|
|
127
|
+
The configured Rasa Studio URL
|
|
128
|
+
"""
|
|
129
|
+
studio_url = questionary.text(
|
|
130
|
+
"Please provide the Rasa Studio URL",
|
|
131
|
+
).unsafe_ask()
|
|
132
|
+
|
|
133
|
+
if not studio_url.endswith("/"):
|
|
134
|
+
studio_url += "/"
|
|
135
|
+
|
|
136
|
+
# prepend with https if no protocol is provided
|
|
137
|
+
if not studio_url.startswith("http"):
|
|
138
|
+
return "https://" + studio_url
|
|
139
|
+
return studio_url
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def _get_advanced_config(studio_url: str) -> tuple:
|
|
143
|
+
"""Get the advanced configuration values for Rasa Studio."""
|
|
144
|
+
keycloak_url = questionary.text(
|
|
145
|
+
"Please provide your Rasa Studio Keycloak URL",
|
|
146
|
+
default=studio_url + "auth/",
|
|
147
|
+
).unsafe_ask()
|
|
148
|
+
|
|
149
|
+
realm_name = questionary.text(
|
|
150
|
+
"Please enter Realm Name", default=DEFAULT_REALM_NAME
|
|
151
|
+
).unsafe_ask()
|
|
152
|
+
|
|
153
|
+
client_id = questionary.text(
|
|
154
|
+
"Please enter client ID", default=DEFAULT_CLIENT_ID
|
|
155
|
+
).unsafe_ask()
|
|
156
|
+
|
|
157
|
+
return keycloak_url, realm_name, client_id
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def _get_default_config(studio_url: str) -> tuple:
|
|
161
|
+
"""Get the default configuration values for Rasa Studio."""
|
|
162
|
+
keycloak_url = studio_url + "auth/"
|
|
163
|
+
realm_name = DEFAULT_REALM_NAME
|
|
164
|
+
client_id = DEFAULT_CLIENT_ID
|
|
165
|
+
|
|
166
|
+
rasa.shared.utils.cli.print_info(
|
|
167
|
+
f"Using default values for "
|
|
168
|
+
f"Keycloak URL: {keycloak_url}, "
|
|
169
|
+
f"Realm Name: '{realm_name}', "
|
|
170
|
+
f"Client ID: '{client_id}'. "
|
|
171
|
+
f"You can use '--advanced' to configure these settings."
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
return keycloak_url, realm_name, client_id
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def _create_studio_config(
|
|
178
|
+
studio_url: str, keycloak_url: str, realm_name: str, client_id: str
|
|
179
|
+
) -> StudioConfig:
|
|
180
|
+
"""Create a StudioConfig object with the provided parameters."""
|
|
181
|
+
return StudioConfig(
|
|
182
|
+
authentication_server_url=keycloak_url,
|
|
183
|
+
studio_url=studio_url + "api/graphql/",
|
|
184
|
+
client_id=client_id,
|
|
185
|
+
realm_name=realm_name,
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def _check_studio_auth(studio_auth: StudioAuth) -> bool:
|
|
190
|
+
"""Check if the Rasa Studio authentication server is reachable."""
|
|
191
|
+
if studio_auth.health_check():
|
|
192
|
+
rasa.shared.utils.cli.print_info(
|
|
193
|
+
"Tried configuration and successfully reached Rasa Studio."
|
|
194
|
+
)
|
|
195
|
+
return True
|
|
196
|
+
return False
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def _prompt_store_config_anyways() -> bool:
|
|
200
|
+
"""Prompt the user to store the configuration."""
|
|
201
|
+
should_store_config = questionary.confirm(
|
|
202
|
+
"Do you want to store the configuration anyway?"
|
|
203
|
+
).unsafe_ask()
|
|
204
|
+
|
|
205
|
+
return should_store_config
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def _configure_studio_config(args: argparse.Namespace) -> StudioConfig:
|
|
209
|
+
"""Configure the Rasa Studio connection settings."""
|
|
210
|
+
studio_url = _configure_studio_url()
|
|
211
|
+
|
|
212
|
+
# check if the user wants to configure advanced authentication settings
|
|
213
|
+
if args.advanced:
|
|
214
|
+
keycloak_url, realm_name, client_id = _get_advanced_config(studio_url)
|
|
215
|
+
else:
|
|
216
|
+
keycloak_url, realm_name, client_id = _get_default_config(studio_url)
|
|
217
|
+
|
|
218
|
+
# create a configuration and auth object to try to reach the studio
|
|
219
|
+
studio_config = _create_studio_config(
|
|
220
|
+
studio_url, keycloak_url, realm_name, client_id
|
|
221
|
+
)
|
|
222
|
+
studio_auth = StudioAuth(studio_config)
|
|
223
|
+
|
|
224
|
+
if _check_studio_auth(studio_auth):
|
|
225
|
+
return studio_config
|
|
226
|
+
|
|
227
|
+
rasa.shared.utils.cli.print_error(
|
|
228
|
+
f"Failed to reach Rasa Studio authentication server at "
|
|
229
|
+
f"{studio_config.authentication_server_url}."
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
if _prompt_store_config_anyways():
|
|
233
|
+
return studio_config
|
|
234
|
+
|
|
235
|
+
rasa.shared.utils.cli.print_info(
|
|
236
|
+
"The config was not stored, you can change the values "
|
|
237
|
+
"again or abort with Ctrl-C."
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
return _configure_studio_config(args)
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
def create_and_store_studio_config(args: argparse.Namespace) -> None:
|
|
244
|
+
"""Create and store the Rasa Studio configuration.
|
|
245
|
+
|
|
246
|
+
Args:
|
|
247
|
+
args: Commandline arguments
|
|
248
|
+
"""
|
|
249
|
+
try:
|
|
250
|
+
rasa.shared.utils.cli.print_info(
|
|
251
|
+
"Configuring Rasa Studio connection settings ..."
|
|
252
|
+
)
|
|
253
|
+
studio_config = _configure_studio_config(args)
|
|
254
|
+
|
|
255
|
+
if studio_config:
|
|
256
|
+
studio_config.write_config()
|
|
257
|
+
|
|
258
|
+
rasa.shared.utils.cli.print_success(
|
|
259
|
+
"Successfully configured Rasa Pro to connect to Studio."
|
|
260
|
+
)
|
|
261
|
+
else:
|
|
262
|
+
rasa.shared.utils.cli.print_error(
|
|
263
|
+
"Failed to configure Rasa Pro to connect to Studio."
|
|
264
|
+
)
|
|
265
|
+
except KeyboardInterrupt:
|
|
266
|
+
rasa.shared.utils.cli.print_error("Configuration of Rasa Studio aborted.")
|
rasa/cli/studio/train.py
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from rasa.cli import SubParsersAction
|
|
5
|
+
from rasa.cli.arguments.train import set_train_arguments
|
|
6
|
+
|
|
7
|
+
from rasa.studio.train import handle_train
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def add_subparser(
|
|
11
|
+
subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
12
|
+
) -> None:
|
|
13
|
+
"""Add the studio train parser.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
subparsers: subparser we are going to attach to
|
|
17
|
+
parents: Parent parsers, needed to ensure tree structure in argparse
|
|
18
|
+
"""
|
|
19
|
+
train_parser = subparsers.add_parser(
|
|
20
|
+
"train",
|
|
21
|
+
parents=parents,
|
|
22
|
+
conflict_handler="resolve",
|
|
23
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
24
|
+
help=(
|
|
25
|
+
"Trains a Rasa model using Rasa Studio "
|
|
26
|
+
"data and your NLU data and stories."
|
|
27
|
+
),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
train_parser.set_defaults(func=handle_train)
|
|
31
|
+
set_train_arguments(train_parser)
|
|
32
|
+
set_studio_train_arguments(train_parser)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def set_studio_train_arguments(parser: argparse.ArgumentParser) -> None:
|
|
36
|
+
"""Add arguments for running `rasa studio train`."""
|
|
37
|
+
parser.add_argument(
|
|
38
|
+
"assistant_name",
|
|
39
|
+
default=None,
|
|
40
|
+
nargs=1,
|
|
41
|
+
type=str,
|
|
42
|
+
help="Name of the assistant on Rasa Studio",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
parser.add_argument(
|
|
46
|
+
"--entities",
|
|
47
|
+
default=None,
|
|
48
|
+
nargs="+",
|
|
49
|
+
type=str,
|
|
50
|
+
help="Name of entities to download from Rasa Studio",
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
parser.add_argument(
|
|
54
|
+
"--intents",
|
|
55
|
+
default=None,
|
|
56
|
+
nargs="+",
|
|
57
|
+
type=str,
|
|
58
|
+
help="Name of intents to download from Rasa Studio",
|
|
59
|
+
)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from rasa.cli import SubParsersAction
|
|
5
|
+
from rasa.cli.arguments.default_arguments import (
|
|
6
|
+
add_config_param,
|
|
7
|
+
add_data_param,
|
|
8
|
+
add_domain_param,
|
|
9
|
+
add_endpoint_param,
|
|
10
|
+
)
|
|
11
|
+
from rasa.studio.upload import handle_upload
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def add_subparser(
|
|
15
|
+
subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
16
|
+
) -> None:
|
|
17
|
+
"""Add the upload parser.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
subparsers: subparser we are going to attach to
|
|
21
|
+
parents: Parent parsers, needed to ensure tree structure in argparse
|
|
22
|
+
"""
|
|
23
|
+
upload_parser = subparsers.add_parser(
|
|
24
|
+
"upload",
|
|
25
|
+
parents=parents,
|
|
26
|
+
conflict_handler="resolve",
|
|
27
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
28
|
+
help="Upload primitives to Rasa Studio. Only works with NLU assistants.",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
upload_parser.set_defaults(func=handle_upload)
|
|
32
|
+
set_upload_arguments(upload_parser)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def add_flows_param(
|
|
36
|
+
parser: argparse.ArgumentParser,
|
|
37
|
+
help_text: str = "Name of flows file to upload to Rasa Studio. Works with --calm",
|
|
38
|
+
default_path: str = "flows.yml",
|
|
39
|
+
) -> None:
|
|
40
|
+
parser.add_argument(
|
|
41
|
+
"--flows",
|
|
42
|
+
default=default_path,
|
|
43
|
+
nargs="+",
|
|
44
|
+
type=str,
|
|
45
|
+
help=help_text,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def set_upload_arguments(parser: argparse.ArgumentParser) -> None:
|
|
50
|
+
"""Add arguments for running `rasa upload`."""
|
|
51
|
+
add_data_param(parser, data_type="training")
|
|
52
|
+
add_domain_param(parser)
|
|
53
|
+
add_flows_param(parser)
|
|
54
|
+
add_config_param(parser)
|
|
55
|
+
add_endpoint_param(parser, help_text="Path to the endpoints file.")
|
|
56
|
+
|
|
57
|
+
parser.add_argument(
|
|
58
|
+
"--entities",
|
|
59
|
+
default=None,
|
|
60
|
+
nargs="+",
|
|
61
|
+
type=str,
|
|
62
|
+
help="Name of entities to upload to Rasa Studio",
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
parser.add_argument(
|
|
66
|
+
"--intents",
|
|
67
|
+
default=None,
|
|
68
|
+
nargs="+",
|
|
69
|
+
type=str,
|
|
70
|
+
help="Name of intents to upload to Rasa Studio",
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
parser.add_argument(
|
|
74
|
+
"--calm",
|
|
75
|
+
action="store_true",
|
|
76
|
+
help="If set, creates a new CALM assistant in Rasa Studio.",
|
|
77
|
+
)
|
rasa/cli/telemetry.py
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import textwrap
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from rasa import telemetry
|
|
6
|
+
from rasa.cli import SubParsersAction
|
|
7
|
+
import rasa.cli.utils
|
|
8
|
+
from rasa.shared.constants import DOCS_URL_TELEMETRY
|
|
9
|
+
import rasa.shared.utils.cli
|
|
10
|
+
from rasa.utils import licensing
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def add_subparser(
|
|
14
|
+
subparsers: SubParsersAction, parents: List[argparse.ArgumentParser]
|
|
15
|
+
) -> None:
|
|
16
|
+
"""Add all telemetry tracking parsers.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
subparsers: subparser we are going to attach to
|
|
20
|
+
parents: Parent parsers, needed to ensure tree structure in argparse
|
|
21
|
+
"""
|
|
22
|
+
telemetry_parser = subparsers.add_parser(
|
|
23
|
+
"telemetry",
|
|
24
|
+
parents=parents,
|
|
25
|
+
help="Configuration of Rasa Pro telemetry reporting.",
|
|
26
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
telemetry_subparsers = telemetry_parser.add_subparsers()
|
|
30
|
+
telemetry_disable_parser = telemetry_subparsers.add_parser(
|
|
31
|
+
"disable",
|
|
32
|
+
parents=parents,
|
|
33
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
34
|
+
help="Disable Rasa Pro Telemetry reporting.",
|
|
35
|
+
)
|
|
36
|
+
telemetry_disable_parser.set_defaults(func=disable_telemetry)
|
|
37
|
+
|
|
38
|
+
telemetry_enable_parser = telemetry_subparsers.add_parser(
|
|
39
|
+
"enable",
|
|
40
|
+
parents=parents,
|
|
41
|
+
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
42
|
+
help="Enable Rasa Pro Telemetry reporting.",
|
|
43
|
+
)
|
|
44
|
+
telemetry_enable_parser.set_defaults(func=enable_telemetry)
|
|
45
|
+
telemetry_parser.set_defaults(func=inform_about_telemetry)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def inform_about_telemetry(_: argparse.Namespace) -> None:
|
|
49
|
+
"""Inform user about telemetry tracking."""
|
|
50
|
+
is_enabled = telemetry.is_telemetry_enabled()
|
|
51
|
+
if is_enabled:
|
|
52
|
+
rasa.shared.utils.cli.print_success(
|
|
53
|
+
"Telemetry reporting is currently enabled for this installation."
|
|
54
|
+
)
|
|
55
|
+
else:
|
|
56
|
+
rasa.shared.utils.cli.print_success(
|
|
57
|
+
"Telemetry reporting is currently disabled for this installation."
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
print(
|
|
61
|
+
textwrap.dedent(
|
|
62
|
+
"""
|
|
63
|
+
Rasa uses telemetry to report anonymous usage information. This information
|
|
64
|
+
is essential to help improve Rasa Pro for all users."""
|
|
65
|
+
)
|
|
66
|
+
)
|
|
67
|
+
if licensing.is_champion_server_license():
|
|
68
|
+
print(
|
|
69
|
+
"\nYou are using a developer license, which requires telemetry "
|
|
70
|
+
"reporting to be enabled."
|
|
71
|
+
)
|
|
72
|
+
elif not is_enabled:
|
|
73
|
+
print("\nYou can enable telemetry reporting using")
|
|
74
|
+
rasa.shared.utils.cli.print_info("\n\trasa telemetry enable")
|
|
75
|
+
else:
|
|
76
|
+
print("\nYou can disable telemetry reporting using:")
|
|
77
|
+
rasa.shared.utils.cli.print_info("\n\trasa telemetry disable")
|
|
78
|
+
|
|
79
|
+
rasa.shared.utils.cli.print_success(
|
|
80
|
+
"\nYou can find more information about telemetry reporting at "
|
|
81
|
+
"" + DOCS_URL_TELEMETRY
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def disable_telemetry(_: argparse.Namespace) -> None:
|
|
86
|
+
"""Disable telemetry tracking."""
|
|
87
|
+
if licensing.is_champion_server_license():
|
|
88
|
+
rasa.shared.utils.cli.print_error(
|
|
89
|
+
"You are using a developer license, which requires telemetry "
|
|
90
|
+
"reporting to be enabled."
|
|
91
|
+
)
|
|
92
|
+
return
|
|
93
|
+
|
|
94
|
+
telemetry.track_telemetry_disabled()
|
|
95
|
+
telemetry.toggle_telemetry_reporting(is_enabled=False)
|
|
96
|
+
rasa.shared.utils.cli.print_success("Disabled telemetry reporting.")
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def enable_telemetry(_: argparse.Namespace) -> None:
|
|
100
|
+
"""Enable telemetry tracking."""
|
|
101
|
+
telemetry.toggle_telemetry_reporting(is_enabled=True)
|
|
102
|
+
rasa.shared.utils.cli.print_success("Enabled telemetry reporting.")
|