rasa-pro 3.11.3__py3-none-any.whl → 3.11.3a1.dev4__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.
- rasa/core/actions/direct_custom_actions_executor.py +31 -2
- rasa/core/channels/development_inspector.py +3 -0
- rasa/core/channels/inspector/dist/assets/{arc-632a63ec.js → arc-861ddd57.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-d0fbc5ce-081e0df4.js → c4Diagram-d0fbc5ce-921f02db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-936ed81e-3df0afc2.js → classDiagram-936ed81e-b436c4f8.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-c3cb15f1-8c5ed31e.js → classDiagram-v2-c3cb15f1-511a23cb.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{createText-62fc7601-89c73b31.js → createText-62fc7601-ef476ecd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-f2ad444c-4fc48c3e.js → edges-f2ad444c-f1878e0a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9d236eb7-907e0440.js → erDiagram-9d236eb7-fac75185.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-1972c806-9ec53a3c.js → flowDb-1972c806-201c5bbc.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-7ea5b25a-41da787a.js → flowDiagram-7ea5b25a-f904ae41.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-b080d6f2.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-abe16c3d-ce370633.js → flowchart-elk-definition-abe16c3d-1813da66.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-9b5ea136-90a36523.js → ganttDiagram-9b5ea136-872af172.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-99d0ae7c-41e1aa3f.js → gitGraphDiagram-99d0ae7c-34a0af5a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-2c4b9a3b-e6f2af62.js → index-2c4b9a3b-42ba3e3d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-e793d777.js → index-37817b51.js} +3 -3
- rasa/core/channels/inspector/dist/assets/{infoDiagram-736b4530-8ceba4db.js → infoDiagram-736b4530-6b731386.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-df861f2b-960d3809.js → journeyDiagram-df861f2b-e8579ac6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-498807d8.js → layout-89e6403a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-eeccc4e2.js → line-dc73d3fc.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-8a078617.js → linear-f5b1d2bc.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-beec6740-396d17dd.js → mindmap-definition-beec6740-82cb74fa.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-dbbf0591-dc9b5e1b.js → pieDiagram-dbbf0591-bdf5f29b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-4d7f4fd6-a08cba6d.js → quadrantDiagram-4d7f4fd6-c7a0cbe4.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-6fc4c22a-87242b9e.js → requirementDiagram-6fc4c22a-7ec5410f.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-8f13d901-53f6f391.js → sankeyDiagram-8f13d901-caee5554.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-b655622a-715c9c20.js → sequenceDiagram-b655622a-2935f8db.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-59f0c015-2e8fb31f.js → stateDiagram-59f0c015-8f5d9693.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-2b26beab-7e2d2aa0.js → stateDiagram-v2-2b26beab-d565d1de.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-080da4f6-4420cea6.js → styles-080da4f6-75ad421d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-3dcbcfbf-28676cf4.js → styles-3dcbcfbf-7e764226.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9c745c82-cef936a6.js → styles-9c745c82-7a4e0e61.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-4835440b-151251e9.js → svgDrawCommon-4835440b-4019d1bf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-5b62e21b-0d39bdb2.js → timeline-definition-5b62e21b-01ea12df.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-2b33534f-a03fa445.js → xychartDiagram-2b33534f-89407137.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -3
- rasa/core/channels/inspector/index.html +0 -2
- rasa/core/channels/inspector/src/App.tsx +4 -1
- rasa/core/channels/socketio.py +40 -0
- rasa/core/policies/flows/flow_executor.py +26 -2
- rasa/dialogue_understanding/generator/command_generator.py +126 -5
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +28 -1
- rasa/dialogue_understanding/generator/nlu_command_adapter.py +3 -0
- rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +9 -1
- rasa/dialogue_understanding/utils.py +14 -0
- rasa/dialogue_understanding_test/__init__.py +0 -0
- rasa/dialogue_understanding_test/constants.py +15 -0
- rasa/dialogue_understanding_test/du_test_case.py +118 -0
- rasa/dialogue_understanding_test/du_test_result.py +11 -0
- rasa/e2e_test/e2e_test_case.py +2 -1
- rasa/e2e_test/utils/e2e_yaml_utils.py +1 -1
- rasa/e2e_test/utils/io.py +1 -1
- rasa/e2e_test/utils/validation.py +100 -2
- rasa/engine/recipes/default_recipe.py +63 -49
- rasa/engine/recipes/graph_recipe.py +8 -7
- rasa/model_manager/runner_service.py +1 -0
- rasa/model_manager/socket_bridge.py +8 -2
- rasa/model_training.py +2 -1
- rasa/server.py +1 -37
- rasa/shared/constants.py +17 -6
- rasa/shared/nlu/constants.py +4 -0
- rasa/shared/utils/llm.py +1 -1
- rasa/shared/utils/yaml.py +6 -5
- rasa/studio/upload.py +19 -5
- rasa/telemetry.py +40 -33
- rasa/tracing/instrumentation/attribute_extractors.py +10 -9
- rasa/validator.py +32 -41
- rasa/version.py +1 -1
- {rasa_pro-3.11.3.dist-info → rasa_pro-3.11.3a1.dev4.dist-info}/METADATA +6 -6
- {rasa_pro-3.11.3.dist-info → rasa_pro-3.11.3a1.dev4.dist-info}/RECORD +74 -69
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-8bea338b.js +0 -1
- {rasa_pro-3.11.3.dist-info → rasa_pro-3.11.3a1.dev4.dist-info}/NOTICE +0 -0
- {rasa_pro-3.11.3.dist-info → rasa_pro-3.11.3a1.dev4.dist-info}/WHEEL +0 -0
- {rasa_pro-3.11.3.dist-info → rasa_pro-3.11.3a1.dev4.dist-info}/entry_points.txt +0 -0
rasa/server.py
CHANGED
|
@@ -62,11 +62,9 @@ from rasa.shared.constants import (
|
|
|
62
62
|
DOCS_BASE_URL,
|
|
63
63
|
DOCS_URL_TRAINING_DATA,
|
|
64
64
|
TEST_STORIES_FILE_PREFIX,
|
|
65
|
-
DOCS_URL_FLOWS,
|
|
66
65
|
)
|
|
67
66
|
from rasa.shared.core.domain import Domain, InvalidDomain
|
|
68
67
|
from rasa.shared.core.events import Event
|
|
69
|
-
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader
|
|
70
68
|
from rasa.shared.core.trackers import (
|
|
71
69
|
DialogueStateTracker,
|
|
72
70
|
EventVerbosity,
|
|
@@ -74,7 +72,6 @@ from rasa.shared.core.trackers import (
|
|
|
74
72
|
from rasa.shared.core.training_data.story_writer.yaml_story_writer import (
|
|
75
73
|
YAMLStoryWriter,
|
|
76
74
|
)
|
|
77
|
-
from rasa.shared.exceptions import YamlException, RasaException
|
|
78
75
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
79
76
|
from rasa.shared.nlu.training_data.formats import RasaYAMLReader
|
|
80
77
|
from rasa.shared.utils.schemas.events import EVENTS_SCHEMA
|
|
@@ -1569,8 +1566,7 @@ def _nlu_training_payload_from_json(
|
|
|
1569
1566
|
)
|
|
1570
1567
|
|
|
1571
1568
|
|
|
1572
|
-
def
|
|
1573
|
-
"""Validate the NLU training data payload of the request body."""
|
|
1569
|
+
def _validate_yaml_training_payload(yaml_text: Text) -> None:
|
|
1574
1570
|
try:
|
|
1575
1571
|
RasaYAMLReader().validate(yaml_text)
|
|
1576
1572
|
except Exception as e:
|
|
@@ -1582,38 +1578,6 @@ def _validate_nlu_training_data_payload(yaml_text: str) -> None:
|
|
|
1582
1578
|
)
|
|
1583
1579
|
|
|
1584
1580
|
|
|
1585
|
-
def _validate_flows_payload(yaml_text: str) -> None:
|
|
1586
|
-
"""Validate the flows payload of the request body."""
|
|
1587
|
-
try:
|
|
1588
|
-
YAMLFlowsReader().read_from_string(yaml_text)
|
|
1589
|
-
except (YamlException, RasaException) as exc:
|
|
1590
|
-
# if the payload does not contain any flows, we can ignore the error
|
|
1591
|
-
if (
|
|
1592
|
-
hasattr(exc, "validation_errors")
|
|
1593
|
-
and exc.validation_errors is not None
|
|
1594
|
-
and any(
|
|
1595
|
-
[
|
|
1596
|
-
"'flows' is a required property" in error.message
|
|
1597
|
-
for error in exc.validation_errors
|
|
1598
|
-
]
|
|
1599
|
-
)
|
|
1600
|
-
):
|
|
1601
|
-
return None
|
|
1602
|
-
|
|
1603
|
-
raise ErrorResponse(
|
|
1604
|
-
HTTPStatus.BAD_REQUEST,
|
|
1605
|
-
"BadRequest",
|
|
1606
|
-
f"The request body does not contain valid YAML. Error: {exc}",
|
|
1607
|
-
help_url=DOCS_URL_FLOWS,
|
|
1608
|
-
)
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
def _validate_yaml_training_payload(yaml_text: str) -> None:
|
|
1612
|
-
"""Validate the YAML training payload of the request body."""
|
|
1613
|
-
_validate_nlu_training_data_payload(yaml_text)
|
|
1614
|
-
_validate_flows_payload(yaml_text)
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
1581
|
def _extract_core_additional_arguments(request: Request) -> Dict[Text, Any]:
|
|
1618
1582
|
return {
|
|
1619
1583
|
"augmentation_factor": rasa.utils.endpoints.int_arg(request, "augmentation", 50)
|
rasa/shared/constants.py
CHANGED
|
@@ -19,7 +19,6 @@ DOCS_URL_GRAPH_COMPONENTS = DOCS_URL_CONCEPTS + "/components/custom-graph-compon
|
|
|
19
19
|
DOCS_URL_GRAPH_RECIPE = DOCS_URL_CONCEPTS + "/components/graph-recipe"
|
|
20
20
|
DOCS_URL_CATEGORICAL_SLOTS = DOCS_URL_CONCEPTS + "/domain#categorical-slot"
|
|
21
21
|
DOCS_URL_DOMAIN = DOCS_URL_CONCEPTS + "/domain"
|
|
22
|
-
DOCS_URL_FLOWS = DOCS_URL_CONCEPTS + "/flows"
|
|
23
22
|
|
|
24
23
|
# Docs URLs for NLU-based assistants
|
|
25
24
|
DOCS_URL_TRAINING_DATA = DOCS_URL_NLU_BASED + "/training-data-format"
|
|
@@ -102,16 +101,28 @@ ASSISTANT_ID_KEY = "assistant_id"
|
|
|
102
101
|
ASSISTANT_ID_DEFAULT_VALUE = "placeholder_default"
|
|
103
102
|
|
|
104
103
|
CONFIG_MANDATORY_COMMON_KEYS = [ASSISTANT_ID_KEY]
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
CONFIG_NAME_KEY = "name"
|
|
105
|
+
CONFIG_POLICIES_KEY = "policies"
|
|
106
|
+
CONFIG_PIPELINE_KEY = "pipeline"
|
|
107
|
+
CONFIG_LANGUAGE_KEY = "language"
|
|
108
|
+
CONFIG_RECIPE_KEY = "recipe"
|
|
109
|
+
CONFIG_LLM_KEY = "llm"
|
|
110
|
+
CONFIG_MODEL_NAME_KEY = "model_name"
|
|
111
|
+
CONFIG_TRAIN_SCHEMA = "train_schema"
|
|
112
|
+
CONFIG_PREDICT_SCHEMA = "predict_schema"
|
|
113
|
+
CONFIG_AUTOCONFIGURABLE_KEYS_CORE = [CONFIG_POLICIES_KEY]
|
|
114
|
+
CONFIG_AUTOCONFIGURABLE_KEYS_NLU = [CONFIG_PIPELINE_KEY]
|
|
107
115
|
CONFIG_AUTOCONFIGURABLE_KEYS = (
|
|
108
116
|
CONFIG_AUTOCONFIGURABLE_KEYS_CORE + CONFIG_AUTOCONFIGURABLE_KEYS_NLU
|
|
109
117
|
)
|
|
110
|
-
CONFIG_KEYS_CORE = [
|
|
111
|
-
CONFIG_KEYS_NLU = [
|
|
118
|
+
CONFIG_KEYS_CORE = [CONFIG_POLICIES_KEY] + CONFIG_MANDATORY_COMMON_KEYS
|
|
119
|
+
CONFIG_KEYS_NLU = [
|
|
120
|
+
CONFIG_LANGUAGE_KEY,
|
|
121
|
+
CONFIG_PIPELINE_KEY,
|
|
122
|
+
] + CONFIG_MANDATORY_COMMON_KEYS
|
|
112
123
|
CONFIG_KEYS = CONFIG_KEYS_CORE + CONFIG_KEYS_NLU
|
|
113
124
|
CONFIG_MANDATORY_KEYS_CORE: List[Text] = [] + CONFIG_MANDATORY_COMMON_KEYS
|
|
114
|
-
CONFIG_MANDATORY_KEYS_NLU = [
|
|
125
|
+
CONFIG_MANDATORY_KEYS_NLU = [CONFIG_LANGUAGE_KEY] + CONFIG_MANDATORY_COMMON_KEYS
|
|
115
126
|
CONFIG_MANDATORY_KEYS = CONFIG_MANDATORY_KEYS_CORE + CONFIG_MANDATORY_KEYS_NLU
|
|
116
127
|
|
|
117
128
|
# Keys related to Forms (in the Domain)
|
rasa/shared/nlu/constants.py
CHANGED
|
@@ -2,6 +2,10 @@ TEXT = "text"
|
|
|
2
2
|
TEXT_TOKENS = "text_tokens"
|
|
3
3
|
INTENT = "intent"
|
|
4
4
|
COMMANDS = "commands"
|
|
5
|
+
PREDICTED_COMMANDS = "predicted_commands"
|
|
6
|
+
PROMPTS = "prompts"
|
|
7
|
+
KEY_USER_PROMPT = "user_prompt"
|
|
8
|
+
KEY_SYSTEM_PROMPT = "system_prompt"
|
|
5
9
|
LLM_COMMANDS = "llm_commands" # needed for fine-tuning
|
|
6
10
|
LLM_PROMPT = "llm_prompt" # needed for fine-tuning
|
|
7
11
|
FLOWS_FROM_SEMANTIC_SEARCH = "flows_from_semantic_search"
|
rasa/shared/utils/llm.py
CHANGED
|
@@ -73,7 +73,7 @@ DEFAULT_OPENAI_GENERATE_MODEL_NAME = "gpt-3.5-turbo"
|
|
|
73
73
|
|
|
74
74
|
DEFAULT_OPENAI_CHAT_MODEL_NAME = "gpt-3.5-turbo"
|
|
75
75
|
|
|
76
|
-
DEFAULT_OPENAI_CHAT_MODEL_NAME_ADVANCED = "gpt-4
|
|
76
|
+
DEFAULT_OPENAI_CHAT_MODEL_NAME_ADVANCED = "gpt-4"
|
|
77
77
|
|
|
78
78
|
DEFAULT_OPENAI_EMBEDDING_MODEL_NAME = "text-embedding-ada-002"
|
|
79
79
|
|
rasa/shared/utils/yaml.py
CHANGED
|
@@ -104,6 +104,12 @@ def _add_yaml_constructor_to_replace_environment_variables() -> None:
|
|
|
104
104
|
def env_var_constructor(loader: BaseConstructor, node: ScalarNode) -> str:
|
|
105
105
|
"""Process environment variables found in the YAML."""
|
|
106
106
|
value = loader.construct_scalar(node)
|
|
107
|
+
|
|
108
|
+
# get key of current node
|
|
109
|
+
key_node = list(loader.constructed_objects)[-1]
|
|
110
|
+
if isinstance(key_node, ScalarNode) and key_node.value in SENSITIVE_DATA:
|
|
111
|
+
return value
|
|
112
|
+
|
|
107
113
|
expanded_vars = os.path.expandvars(value)
|
|
108
114
|
not_expanded = [
|
|
109
115
|
w for w in expanded_vars.split() if w.startswith("$") and w in value
|
|
@@ -115,11 +121,6 @@ def _add_yaml_constructor_to_replace_environment_variables() -> None:
|
|
|
115
121
|
f"Please make sure to also set these "
|
|
116
122
|
f"environment variables: '{not_expanded}'."
|
|
117
123
|
)
|
|
118
|
-
|
|
119
|
-
# get key of current node
|
|
120
|
-
key_node = list(loader.constructed_objects)[-1]
|
|
121
|
-
if isinstance(key_node, ScalarNode) and key_node.value in SENSITIVE_DATA:
|
|
122
|
-
return value
|
|
123
124
|
return expanded_vars
|
|
124
125
|
|
|
125
126
|
yaml.SafeConstructor.add_constructor("!env_var", env_var_constructor)
|
rasa/studio/upload.py
CHANGED
|
@@ -2,7 +2,7 @@ import argparse
|
|
|
2
2
|
import base64
|
|
3
3
|
import re
|
|
4
4
|
import sys
|
|
5
|
-
from typing import Dict, Iterable, List, Set, Text, Tuple, Union
|
|
5
|
+
from typing import Any, Dict, Iterable, List, Set, Text, Tuple, Union
|
|
6
6
|
|
|
7
7
|
import questionary
|
|
8
8
|
import requests
|
|
@@ -13,13 +13,19 @@ import rasa.cli.utils
|
|
|
13
13
|
import rasa.shared.utils.cli
|
|
14
14
|
import rasa.shared.utils.io
|
|
15
15
|
from rasa.shared.constants import (
|
|
16
|
-
|
|
16
|
+
CONFIG_LANGUAGE_KEY,
|
|
17
|
+
CONFIG_LLM_KEY,
|
|
18
|
+
CONFIG_MODEL_NAME_KEY,
|
|
19
|
+
CONFIG_PIPELINE_KEY,
|
|
20
|
+
CONFIG_POLICIES_KEY,
|
|
21
|
+
CONFIG_RECIPE_KEY,
|
|
17
22
|
DEFAULT_CONFIG_PATH,
|
|
23
|
+
DEFAULT_DOMAIN_PATHS,
|
|
18
24
|
)
|
|
19
25
|
from rasa.shared.core.domain import Domain
|
|
20
26
|
from rasa.shared.core.flows.yaml_flows_io import YAMLFlowsReader, YamlFlowsWriter
|
|
21
27
|
from rasa.shared.exceptions import RasaException
|
|
22
|
-
from rasa.shared.importers.importer import
|
|
28
|
+
from rasa.shared.importers.importer import FlowSyncImporter, TrainingDataImporter
|
|
23
29
|
from rasa.shared.nlu.training_data.formats.rasa_yaml import (
|
|
24
30
|
RasaYAMLReader,
|
|
25
31
|
RasaYAMLWriter,
|
|
@@ -131,13 +137,11 @@ def handle_upload(args: argparse.Namespace) -> None:
|
|
|
131
137
|
rasa.shared.utils.cli.print_error_and_exit(
|
|
132
138
|
"No GraphQL endpoint found in config. Please run `rasa studio config`."
|
|
133
139
|
)
|
|
134
|
-
return
|
|
135
140
|
|
|
136
141
|
if not is_auth_working(endpoint, verify):
|
|
137
142
|
rasa.shared.utils.cli.print_error_and_exit(
|
|
138
143
|
"Authentication is invalid or expired. Please run `rasa studio login`."
|
|
139
144
|
)
|
|
140
|
-
return
|
|
141
145
|
|
|
142
146
|
structlogger.info("rasa.studio.upload.loading_data", event_info="Loading data...")
|
|
143
147
|
|
|
@@ -160,6 +164,16 @@ def handle_upload(args: argparse.Namespace) -> None:
|
|
|
160
164
|
upload_nlu_assistant(args, endpoint, verify=verify)
|
|
161
165
|
|
|
162
166
|
|
|
167
|
+
config_keys = [
|
|
168
|
+
CONFIG_RECIPE_KEY,
|
|
169
|
+
CONFIG_POLICIES_KEY,
|
|
170
|
+
CONFIG_PIPELINE_KEY,
|
|
171
|
+
CONFIG_LANGUAGE_KEY,
|
|
172
|
+
CONFIG_LLM_KEY,
|
|
173
|
+
CONFIG_MODEL_NAME_KEY,
|
|
174
|
+
]
|
|
175
|
+
|
|
176
|
+
|
|
163
177
|
def extract_values(data: Dict, keys: List[Text]) -> Dict:
|
|
164
178
|
"""Extracts values for given keys from a dictionary."""
|
|
165
179
|
return {key: data.get(key) for key in keys if data.get(key)}
|
rasa/telemetry.py
CHANGED
|
@@ -32,34 +32,41 @@ from rasa.constants import (
|
|
|
32
32
|
CONFIG_TELEMETRY_ENABLED,
|
|
33
33
|
CONFIG_TELEMETRY_ID,
|
|
34
34
|
)
|
|
35
|
+
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
35
36
|
from rasa.shared.constants import (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
CONFIG_LANGUAGE_KEY,
|
|
38
|
+
CONFIG_PIPELINE_KEY,
|
|
39
|
+
CONFIG_POLICIES_KEY,
|
|
40
|
+
CONFIG_PREDICT_SCHEMA,
|
|
41
|
+
CONFIG_RECIPE_KEY,
|
|
42
|
+
CONFIG_TRAIN_SCHEMA,
|
|
43
|
+
DOCS_URL_TELEMETRY,
|
|
39
44
|
LLM_API_HEALTH_CHECK_DEFAULT_VALUE,
|
|
45
|
+
LLM_API_HEALTH_CHECK_ENV_VAR,
|
|
40
46
|
MODEL_GROUP_CONFIG_KEY,
|
|
47
|
+
PROMPT_CONFIG_KEY,
|
|
48
|
+
PROMPT_TEMPLATE_CONFIG_KEY,
|
|
49
|
+
UTTER_ASK_PREFIX,
|
|
41
50
|
)
|
|
42
|
-
from rasa.engine.storage.local_model_storage import LocalModelStorage
|
|
43
|
-
from rasa.shared.constants import DOCS_URL_TELEMETRY, UTTER_ASK_PREFIX
|
|
44
51
|
from rasa.shared.core.flows import Flow
|
|
45
52
|
from rasa.shared.core.flows.steps import (
|
|
53
|
+
CallFlowStep,
|
|
46
54
|
CollectInformationFlowStep,
|
|
47
|
-
SetSlotsFlowStep,
|
|
48
55
|
LinkFlowStep,
|
|
49
|
-
|
|
56
|
+
SetSlotsFlowStep,
|
|
50
57
|
)
|
|
51
58
|
from rasa.shared.exceptions import RasaException
|
|
52
59
|
from rasa.utils import common as rasa_utils
|
|
53
60
|
|
|
54
61
|
if typing.TYPE_CHECKING:
|
|
62
|
+
from rasa.core.agent import Agent
|
|
55
63
|
from rasa.core.brokers.broker import EventBroker
|
|
56
|
-
from rasa.core.tracker_store import TrackerStore
|
|
57
64
|
from rasa.core.channels.channel import InputChannel
|
|
58
|
-
from rasa.core.
|
|
59
|
-
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
60
|
-
from rasa.shared.importers.importer import TrainingDataImporter
|
|
65
|
+
from rasa.core.tracker_store import TrackerStore
|
|
61
66
|
from rasa.core.utils import AvailableEndpoints
|
|
62
|
-
from rasa.e2e_test.e2e_test_case import
|
|
67
|
+
from rasa.e2e_test.e2e_test_case import Fixture, Metadata, TestCase
|
|
68
|
+
from rasa.shared.importers.importer import TrainingDataImporter
|
|
69
|
+
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
63
70
|
|
|
64
71
|
logger = logging.getLogger(__name__)
|
|
65
72
|
|
|
@@ -352,6 +359,7 @@ def _fetch_write_key(tool: Text, environment_variable: Text) -> Optional[Text]:
|
|
|
352
359
|
write key, if a key was present.
|
|
353
360
|
"""
|
|
354
361
|
import importlib_resources
|
|
362
|
+
|
|
355
363
|
from rasa import __name__ as name
|
|
356
364
|
|
|
357
365
|
if os.environ.get(environment_variable):
|
|
@@ -602,7 +610,7 @@ def _default_context_fields() -> Dict[Text, Any]:
|
|
|
602
610
|
Return:
|
|
603
611
|
A new context containing information about the runtime environment.
|
|
604
612
|
"""
|
|
605
|
-
from rasa.utils.licensing import
|
|
613
|
+
from rasa.utils.licensing import get_license_hash, property_of_active_license
|
|
606
614
|
|
|
607
615
|
global TELEMETRY_CONTEXT
|
|
608
616
|
|
|
@@ -962,13 +970,13 @@ def track_model_training(
|
|
|
962
970
|
training_id = uuid.uuid4().hex
|
|
963
971
|
|
|
964
972
|
tracking_data = {
|
|
965
|
-
"language": config.get(
|
|
973
|
+
"language": config.get(CONFIG_LANGUAGE_KEY),
|
|
966
974
|
"training_id": training_id,
|
|
967
975
|
"type": model_type,
|
|
968
|
-
"pipeline": config.get(
|
|
969
|
-
"policies": config.get(
|
|
970
|
-
"train_schema": config.get(
|
|
971
|
-
"predict_schema": config.get(
|
|
976
|
+
"pipeline": config.get(CONFIG_PIPELINE_KEY),
|
|
977
|
+
"policies": config.get(CONFIG_POLICIES_KEY),
|
|
978
|
+
"train_schema": config.get(CONFIG_TRAIN_SCHEMA),
|
|
979
|
+
"predict_schema": config.get(CONFIG_PREDICT_SCHEMA),
|
|
972
980
|
"model_groups": rasa.core.utils.AvailableEndpoints.get_instance().model_groups,
|
|
973
981
|
"api_health_check_enabled": (
|
|
974
982
|
os.getenv(
|
|
@@ -995,7 +1003,7 @@ def track_model_training(
|
|
|
995
1003
|
"num_synonyms": len(nlu_data.entity_synonyms),
|
|
996
1004
|
"num_regexes": len(nlu_data.regex_features),
|
|
997
1005
|
"is_finetuning": is_finetuning,
|
|
998
|
-
"recipe": config.get(
|
|
1006
|
+
"recipe": config.get(CONFIG_RECIPE_KEY),
|
|
999
1007
|
}
|
|
1000
1008
|
|
|
1001
1009
|
flow_statistics = _collect_flow_statistics(flows.underlying_flows)
|
|
@@ -1096,28 +1104,28 @@ def _get_llm_command_generator_config(config: Dict[str, Any]) -> Optional[Dict]:
|
|
|
1096
1104
|
Includes the model name, whether a custom prompt is used, whether flow
|
|
1097
1105
|
retrieval is enabled, and flow retrieval embedding model.
|
|
1098
1106
|
"""
|
|
1099
|
-
from rasa.shared.constants import (
|
|
1100
|
-
EMBEDDINGS_CONFIG_KEY,
|
|
1101
|
-
MODEL_CONFIG_KEY,
|
|
1102
|
-
MODEL_NAME_CONFIG_KEY,
|
|
1103
|
-
)
|
|
1104
1107
|
from rasa.dialogue_understanding.generator import (
|
|
1105
1108
|
LLMCommandGenerator,
|
|
1106
|
-
SingleStepLLMCommandGenerator,
|
|
1107
1109
|
MultiStepLLMCommandGenerator,
|
|
1108
|
-
|
|
1109
|
-
from rasa.dialogue_understanding.generator.multi_step.multi_step_llm_command_generator import ( # noqa: E501
|
|
1110
|
-
HANDLE_FLOWS_KEY,
|
|
1111
|
-
FILL_SLOTS_KEY,
|
|
1110
|
+
SingleStepLLMCommandGenerator,
|
|
1112
1111
|
)
|
|
1113
1112
|
from rasa.dialogue_understanding.generator.constants import (
|
|
1114
|
-
LLM_CONFIG_KEY,
|
|
1115
1113
|
DEFAULT_LLM_CONFIG,
|
|
1116
1114
|
FLOW_RETRIEVAL_KEY,
|
|
1115
|
+
LLM_CONFIG_KEY,
|
|
1117
1116
|
)
|
|
1118
1117
|
from rasa.dialogue_understanding.generator.flow_retrieval import (
|
|
1119
1118
|
DEFAULT_EMBEDDINGS_CONFIG,
|
|
1120
1119
|
)
|
|
1120
|
+
from rasa.dialogue_understanding.generator.multi_step.multi_step_llm_command_generator import ( # noqa: E501
|
|
1121
|
+
FILL_SLOTS_KEY,
|
|
1122
|
+
HANDLE_FLOWS_KEY,
|
|
1123
|
+
)
|
|
1124
|
+
from rasa.shared.constants import (
|
|
1125
|
+
EMBEDDINGS_CONFIG_KEY,
|
|
1126
|
+
MODEL_CONFIG_KEY,
|
|
1127
|
+
MODEL_NAME_CONFIG_KEY,
|
|
1128
|
+
)
|
|
1121
1129
|
|
|
1122
1130
|
def find_command_generator_component(pipeline: List) -> Optional[Dict]:
|
|
1123
1131
|
"""Finds the LLMCommandGenerator component in the pipeline."""
|
|
@@ -1204,7 +1212,7 @@ def _get_llm_command_generator_config(config: Dict[str, Any]) -> Optional[Dict]:
|
|
|
1204
1212
|
FLOW_RETRIEVAL_EMBEDDING_MODEL_GROUP_ID: None,
|
|
1205
1213
|
}
|
|
1206
1214
|
|
|
1207
|
-
pipeline = config.get(
|
|
1215
|
+
pipeline = config.get(CONFIG_PIPELINE_KEY, [])
|
|
1208
1216
|
if not isinstance(pipeline, list):
|
|
1209
1217
|
return command_generator_config
|
|
1210
1218
|
|
|
@@ -1386,8 +1394,7 @@ def track_inspect_started(model_type: Text) -> None:
|
|
|
1386
1394
|
"""Track when a user starts a bot using rasa inspect.
|
|
1387
1395
|
|
|
1388
1396
|
Args:
|
|
1389
|
-
|
|
1390
|
-
or `browser_audio` (used for voice).
|
|
1397
|
+
model_type: Type of the model, core / nlu or rasa.
|
|
1391
1398
|
"""
|
|
1392
1399
|
_track(TELEMETRY_INSPECT_STARTED_EVENT, {"type": model_type})
|
|
1393
1400
|
|
|
@@ -5,7 +5,6 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Tuple, Union
|
|
|
5
5
|
|
|
6
6
|
import tiktoken
|
|
7
7
|
from numpy import ndarray
|
|
8
|
-
from rasa.dialogue_understanding.generator.constants import FLOW_RETRIEVAL_KEY
|
|
9
8
|
from rasa_sdk.grpc_py import action_webhook_pb2
|
|
10
9
|
|
|
11
10
|
from rasa.core.actions.action import DirectCustomActionExecutor
|
|
@@ -19,24 +18,27 @@ from rasa.core.nlg.contextual_response_rephraser import ContextualResponseRephra
|
|
|
19
18
|
from rasa.core.processor import MessageProcessor
|
|
20
19
|
from rasa.core.tracker_store import TrackerStore
|
|
21
20
|
from rasa.dialogue_understanding.commands import Command
|
|
22
|
-
from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
|
|
23
21
|
from rasa.dialogue_understanding.generator import LLMBasedCommandGenerator
|
|
22
|
+
from rasa.dialogue_understanding.generator.constants import FLOW_RETRIEVAL_KEY
|
|
23
|
+
from rasa.dialogue_understanding.stack.dialogue_stack import DialogueStack
|
|
24
24
|
from rasa.engine.graph import ExecutionContext, GraphModelConfiguration, GraphNode
|
|
25
25
|
from rasa.engine.training.graph_trainer import GraphTrainer
|
|
26
26
|
from rasa.shared.constants import (
|
|
27
|
+
CONFIG_RECIPE_KEY,
|
|
28
|
+
DEPLOYMENT_CONFIG_KEY,
|
|
27
29
|
EMBEDDINGS_CONFIG_KEY,
|
|
30
|
+
LLM_CONFIG_KEY,
|
|
28
31
|
MODEL_CONFIG_KEY,
|
|
32
|
+
MODEL_GROUP_ID_CONFIG_KEY,
|
|
29
33
|
PROVIDER_CONFIG_KEY,
|
|
30
34
|
TIMEOUT_CONFIG_KEY,
|
|
31
|
-
DEPLOYMENT_CONFIG_KEY,
|
|
32
|
-
MODEL_GROUP_ID_CONFIG_KEY,
|
|
33
|
-
LLM_CONFIG_KEY,
|
|
34
35
|
)
|
|
35
36
|
from rasa.shared.core.constants import REQUESTED_SLOT
|
|
36
37
|
from rasa.shared.core.domain import Domain
|
|
37
38
|
from rasa.shared.core.events import DialogueStackUpdated, Event
|
|
38
39
|
from rasa.shared.core.flows import Flow, FlowsList, FlowStep
|
|
39
40
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
41
|
+
from rasa.shared.core.training_data.structures import StoryGraph
|
|
40
42
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
41
43
|
from rasa.shared.nlu.constants import INTENT_NAME_KEY, SET_SLOT_COMMAND
|
|
42
44
|
from rasa.shared.utils.llm import (
|
|
@@ -46,7 +48,6 @@ from rasa.tracing.constants import (
|
|
|
46
48
|
PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME,
|
|
47
49
|
REQUEST_BODY_SIZE_IN_BYTES_ATTRIBUTE_NAME,
|
|
48
50
|
)
|
|
49
|
-
from rasa.shared.core.training_data.structures import StoryGraph
|
|
50
51
|
|
|
51
52
|
if TYPE_CHECKING:
|
|
52
53
|
from langchain.llms.base import BaseLLM
|
|
@@ -255,7 +256,7 @@ def extract_attrs_for_graph_trainer(
|
|
|
255
256
|
return {
|
|
256
257
|
"training_type": model_configuration.training_type.model_type,
|
|
257
258
|
"language": model_configuration.language,
|
|
258
|
-
"recipe_name": importer.get_config().get(
|
|
259
|
+
"recipe_name": importer.get_config().get(CONFIG_RECIPE_KEY),
|
|
259
260
|
"output_filename": output_filename.name,
|
|
260
261
|
"is_finetuning": is_finetuning,
|
|
261
262
|
}
|
|
@@ -644,8 +645,8 @@ def extract_attrs_for_intentless_policy_generate_llm_answer(
|
|
|
644
645
|
self: "IntentlessPolicy", llm: "BaseLLM", prompt: str
|
|
645
646
|
) -> Dict[str, Any]:
|
|
646
647
|
from rasa.core.policies.intentless_policy import (
|
|
647
|
-
DEFAULT_LLM_CONFIG,
|
|
648
648
|
DEFAULT_EMBEDDINGS_CONFIG,
|
|
649
|
+
DEFAULT_LLM_CONFIG,
|
|
649
650
|
)
|
|
650
651
|
|
|
651
652
|
attributes = extract_llm_config(
|
|
@@ -661,8 +662,8 @@ def extract_attrs_for_enterprise_search_generate_llm_answer(
|
|
|
661
662
|
self: "EnterpriseSearchPolicy", llm: "BaseLLM", prompt: str
|
|
662
663
|
) -> Dict[str, Any]:
|
|
663
664
|
from rasa.core.policies.enterprise_search_policy import (
|
|
664
|
-
DEFAULT_LLM_CONFIG,
|
|
665
665
|
DEFAULT_EMBEDDINGS_CONFIG,
|
|
666
|
+
DEFAULT_LLM_CONFIG,
|
|
666
667
|
)
|
|
667
668
|
|
|
668
669
|
attributes = extract_llm_config(
|
rasa/validator.py
CHANGED
|
@@ -3,54 +3,60 @@ import re
|
|
|
3
3
|
import string
|
|
4
4
|
import sys
|
|
5
5
|
from collections import defaultdict
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import Any, Dict, List, Optional, Set, Text, Tuple
|
|
7
7
|
|
|
8
8
|
import structlog
|
|
9
9
|
from jinja2 import Template
|
|
10
10
|
from pypred import Predicate
|
|
11
|
-
from pypred.ast import
|
|
11
|
+
from pypred.ast import CompareOperator, Literal, NegateOperator
|
|
12
12
|
|
|
13
13
|
import rasa.core.training.story_conflict
|
|
14
|
+
import rasa.shared.nlu.constants
|
|
15
|
+
import rasa.shared.utils.cli
|
|
16
|
+
import rasa.shared.utils.io
|
|
14
17
|
from rasa.core.channels import UserMessage
|
|
15
18
|
from rasa.dialogue_understanding.stack.frames import PatternFlowStackFrame
|
|
16
|
-
from rasa.shared.core.command_payload_reader import (
|
|
17
|
-
CommandPayloadReader,
|
|
18
|
-
MAX_NUMBER_OF_SLOTS,
|
|
19
|
-
)
|
|
20
|
-
from rasa.shared.core.flows.flow_step_links import IfFlowStepLink
|
|
21
|
-
from rasa.shared.core.flows.steps.set_slots import SetSlotsFlowStep
|
|
22
|
-
from rasa.shared.core.flows.steps.collect import CollectInformationFlowStep
|
|
23
|
-
from rasa.shared.core.flows.steps.action import ActionFlowStep
|
|
24
|
-
from rasa.shared.core.flows.steps.link import LinkFlowStep
|
|
25
|
-
from rasa.shared.core.flows import FlowsList
|
|
26
|
-
from rasa.shared.core.flows.utils import (
|
|
27
|
-
warn_deprecated_collect_step_config,
|
|
28
|
-
get_duplicate_slot_persistence_config_error_message,
|
|
29
|
-
get_invalid_slot_persistence_config_error_message,
|
|
30
|
-
)
|
|
31
|
-
import rasa.shared.nlu.constants
|
|
32
19
|
from rasa.shared.constants import (
|
|
33
20
|
ASSISTANT_ID_DEFAULT_VALUE,
|
|
34
21
|
ASSISTANT_ID_KEY,
|
|
35
22
|
CONFIG_MANDATORY_KEYS,
|
|
23
|
+
CONFIG_PIPELINE_KEY,
|
|
24
|
+
DOCS_URL_ACTIONS,
|
|
36
25
|
DOCS_URL_DOMAIN,
|
|
37
26
|
DOCS_URL_DOMAINS,
|
|
38
27
|
DOCS_URL_FORMS,
|
|
39
28
|
DOCS_URL_RESPONSES,
|
|
40
|
-
UTTER_PREFIX,
|
|
41
|
-
DOCS_URL_ACTIONS,
|
|
42
29
|
REQUIRED_SLOTS_KEY,
|
|
30
|
+
UTTER_PREFIX,
|
|
43
31
|
)
|
|
44
32
|
from rasa.shared.core import constants
|
|
45
|
-
from rasa.shared.core.
|
|
46
|
-
|
|
47
|
-
|
|
33
|
+
from rasa.shared.core.command_payload_reader import (
|
|
34
|
+
MAX_NUMBER_OF_SLOTS,
|
|
35
|
+
CommandPayloadReader,
|
|
36
|
+
)
|
|
37
|
+
from rasa.shared.core.constants import (
|
|
38
|
+
ACTIVE_LOOP,
|
|
39
|
+
MAPPING_CONDITIONS,
|
|
40
|
+
MAPPING_TYPE,
|
|
41
|
+
SlotMappingType,
|
|
42
|
+
)
|
|
48
43
|
from rasa.shared.core.domain import (
|
|
49
|
-
Domain,
|
|
50
44
|
RESPONSE_KEYS_TO_INTERPOLATE,
|
|
45
|
+
Domain,
|
|
46
|
+
)
|
|
47
|
+
from rasa.shared.core.events import ActionExecuted, ActiveLoop, UserUttered
|
|
48
|
+
from rasa.shared.core.flows import FlowsList
|
|
49
|
+
from rasa.shared.core.flows.flow_step_links import IfFlowStepLink
|
|
50
|
+
from rasa.shared.core.flows.steps.action import ActionFlowStep
|
|
51
|
+
from rasa.shared.core.flows.steps.collect import CollectInformationFlowStep
|
|
52
|
+
from rasa.shared.core.flows.steps.link import LinkFlowStep
|
|
53
|
+
from rasa.shared.core.flows.steps.set_slots import SetSlotsFlowStep
|
|
54
|
+
from rasa.shared.core.flows.utils import (
|
|
55
|
+
get_duplicate_slot_persistence_config_error_message,
|
|
56
|
+
get_invalid_slot_persistence_config_error_message,
|
|
57
|
+
warn_deprecated_collect_step_config,
|
|
51
58
|
)
|
|
52
59
|
from rasa.shared.core.generator import TrainingDataGenerator
|
|
53
|
-
from rasa.shared.core.constants import SlotMappingType, MAPPING_TYPE
|
|
54
60
|
from rasa.shared.core.slots import BooleanSlot, CategoricalSlot, ListSlot, Slot
|
|
55
61
|
from rasa.shared.core.training_data.story_reader.yaml_story_reader import (
|
|
56
62
|
YAMLStoryReader,
|
|
@@ -62,9 +68,6 @@ from rasa.shared.nlu.constants import COMMANDS
|
|
|
62
68
|
from rasa.shared.nlu.training_data.message import Message
|
|
63
69
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
64
70
|
|
|
65
|
-
import rasa.shared.utils.cli
|
|
66
|
-
import rasa.shared.utils.io
|
|
67
|
-
|
|
68
71
|
logger = logging.getLogger(__name__)
|
|
69
72
|
structlogger = structlog.get_logger()
|
|
70
73
|
|
|
@@ -310,18 +313,6 @@ class Validator:
|
|
|
310
313
|
everything_is_alright = True
|
|
311
314
|
|
|
312
315
|
for response_text, response_variations in self.domain.responses.items():
|
|
313
|
-
if not response_variations:
|
|
314
|
-
structlogger.error(
|
|
315
|
-
"validator.empty_response",
|
|
316
|
-
response=response_text,
|
|
317
|
-
event_info=(
|
|
318
|
-
f"The response '{response_text}' in the domain file "
|
|
319
|
-
f"does not have any variations. Please add at least one "
|
|
320
|
-
f"variation to the response."
|
|
321
|
-
),
|
|
322
|
-
)
|
|
323
|
-
everything_is_alright = False
|
|
324
|
-
|
|
325
316
|
for response in response_variations:
|
|
326
317
|
if any(
|
|
327
318
|
self.check_for_placeholder(response.get(key))
|
|
@@ -1514,7 +1505,7 @@ class Validator:
|
|
|
1514
1505
|
contains_nlu_command_adapter = any(
|
|
1515
1506
|
[
|
|
1516
1507
|
component.get("name") == "NLUCommandAdapter"
|
|
1517
|
-
for component in self.config.get(
|
|
1508
|
+
for component in self.config.get(CONFIG_PIPELINE_KEY, [])
|
|
1518
1509
|
]
|
|
1519
1510
|
)
|
|
1520
1511
|
|
rasa/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.11.
|
|
3
|
+
Version: 3.11.3a1.dev4
|
|
4
4
|
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
5
|
Home-page: https://rasa.com
|
|
6
6
|
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
@@ -59,7 +59,7 @@ Requires-Dist: importlib-resources (==6.1.3)
|
|
|
59
59
|
Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full"
|
|
60
60
|
Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
|
|
61
61
|
Requires-Dist: jsonpatch (>=1.33,<2.0)
|
|
62
|
-
Requires-Dist: jsonpickle (>=3.
|
|
62
|
+
Requires-Dist: jsonpickle (>=3.0,<3.1)
|
|
63
63
|
Requires-Dist: jsonschema (>=4.22)
|
|
64
64
|
Requires-Dist: keras (==2.14.0)
|
|
65
65
|
Requires-Dist: langchain (>=0.2.0,<0.3.0)
|
|
@@ -90,7 +90,7 @@ Requires-Dist: pycountry (>=22.3.5,<23.0.0)
|
|
|
90
90
|
Requires-Dist: pydantic (>=2.0,<3.0)
|
|
91
91
|
Requires-Dist: pydot (>=1.4,<1.5)
|
|
92
92
|
Requires-Dist: pykwalify (>=1.8,<1.9)
|
|
93
|
-
Requires-Dist: pymilvus (
|
|
93
|
+
Requires-Dist: pymilvus (<2.4.2)
|
|
94
94
|
Requires-Dist: pymongo (>=4.10.1,<4.11.0)
|
|
95
95
|
Requires-Dist: pypred (>=0.4.0,<0.5.0)
|
|
96
96
|
Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
|
|
@@ -105,10 +105,10 @@ Requires-Dist: questionary (>=1.10.0,<2.1.0)
|
|
|
105
105
|
Requires-Dist: randomname (>=0.2.1,<0.3.0)
|
|
106
106
|
Requires-Dist: rasa-sdk (==3.11.0)
|
|
107
107
|
Requires-Dist: redis (>=4.6.0,<6.0)
|
|
108
|
-
Requires-Dist: regex (>=
|
|
109
|
-
Requires-Dist: requests (>=2.
|
|
108
|
+
Requires-Dist: regex (>=2024.7.24,<2024.8.0)
|
|
109
|
+
Requires-Dist: requests (>=2.32.3,<2.33.0)
|
|
110
110
|
Requires-Dist: rich (>=13.4.2,<14.0.0)
|
|
111
|
-
Requires-Dist: rocketchat_API (>=1.
|
|
111
|
+
Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0)
|
|
112
112
|
Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
|
|
113
113
|
Requires-Dist: safetensors (>=0.4.5,<0.5.0)
|
|
114
114
|
Requires-Dist: sanic (>=22.12,<22.13)
|