rasa-pro 3.10.9.dev1__py3-none-any.whl → 3.10.10__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.

@@ -1,133 +1,15 @@
1
1
  from __future__ import annotations
2
-
3
- import itertools
4
- from dataclasses import dataclass
5
2
  from typing import Iterable, Union, Text, Optional, List, Any, Tuple, Dict, Set
3
+ import itertools
6
4
 
7
5
  import numpy as np
8
6
  import scipy.sparse
9
- from safetensors.numpy import save_file, load_file
10
7
 
11
- import rasa.shared.nlu.training_data.util
12
8
  import rasa.shared.utils.io
9
+ import rasa.shared.nlu.training_data.util
13
10
  from rasa.shared.nlu.constants import FEATURE_TYPE_SEQUENCE, FEATURE_TYPE_SENTENCE
14
11
 
15
12
 
16
- @dataclass
17
- class FeatureMetadata:
18
- data_type: str
19
- attribute: str
20
- origin: Union[str, List[str]]
21
- is_sparse: bool
22
- shape: tuple
23
- safetensors_key: str
24
-
25
-
26
- def save_features(
27
- features_dict: Dict[Text, List[Features]], file_name: str
28
- ) -> Dict[str, Any]:
29
- """Save a dictionary of Features lists to disk using safetensors.
30
-
31
- Args:
32
- features_dict: Dictionary mapping strings to lists of Features objects
33
- file_name: File to save the features to
34
-
35
- Returns:
36
- The metadata to reconstruct the features.
37
- """
38
- # All tensors are stored in a single safetensors file
39
- tensors_to_save = {}
40
- # Metadata will be stored separately
41
- metadata = {}
42
-
43
- for key, features_list in features_dict.items():
44
- feature_metadata_list = []
45
-
46
- for idx, feature in enumerate(features_list):
47
- # Create a unique key for this tensor in the safetensors file
48
- safetensors_key = f"{key}_{idx}"
49
-
50
- # Convert sparse matrices to dense if needed
51
- if feature.is_sparse():
52
- # For sparse matrices, use the COO format
53
- coo = feature.features.tocoo() # type:ignore[union-attr]
54
- # Save data, row indices and col indices separately
55
- tensors_to_save[f"{safetensors_key}_data"] = coo.data
56
- tensors_to_save[f"{safetensors_key}_row"] = coo.row
57
- tensors_to_save[f"{safetensors_key}_col"] = coo.col
58
- else:
59
- tensors_to_save[safetensors_key] = feature.features
60
-
61
- # Store metadata
62
- metadata_item = FeatureMetadata(
63
- data_type=feature.type,
64
- attribute=feature.attribute,
65
- origin=feature.origin,
66
- is_sparse=feature.is_sparse(),
67
- shape=feature.features.shape,
68
- safetensors_key=safetensors_key,
69
- )
70
- feature_metadata_list.append(vars(metadata_item))
71
-
72
- metadata[key] = feature_metadata_list
73
-
74
- # Save tensors
75
- save_file(tensors_to_save, file_name)
76
-
77
- return metadata
78
-
79
-
80
- def load_features(
81
- filename: str, metadata: Dict[str, Any]
82
- ) -> Dict[Text, List[Features]]:
83
- """Load Features dictionary from disk.
84
-
85
- Args:
86
- filename: File name of the safetensors file.
87
- metadata: Metadata to reconstruct the features.
88
-
89
- Returns:
90
- Dictionary mapping strings to lists of Features objects
91
- """
92
- # Load tensors
93
- tensors = load_file(filename)
94
-
95
- # Reconstruct the features dictionary
96
- features_dict: Dict[Text, List[Features]] = {}
97
-
98
- for key, feature_metadata_list in metadata.items():
99
- features_list = []
100
-
101
- for meta in feature_metadata_list:
102
- safetensors_key = meta["safetensors_key"]
103
-
104
- if meta["is_sparse"]:
105
- # Reconstruct sparse matrix from COO format
106
- data = tensors[f"{safetensors_key}_data"]
107
- row = tensors[f"{safetensors_key}_row"]
108
- col = tensors[f"{safetensors_key}_col"]
109
-
110
- features_matrix = scipy.sparse.coo_matrix(
111
- (data, (row, col)), shape=tuple(meta["shape"])
112
- ).tocsr() # Convert back to CSR format
113
- else:
114
- features_matrix = tensors[safetensors_key]
115
-
116
- # Reconstruct Features object
117
- features = Features(
118
- features=features_matrix,
119
- feature_type=meta["data_type"],
120
- attribute=meta["attribute"],
121
- origin=meta["origin"],
122
- )
123
-
124
- features_list.append(features)
125
-
126
- features_dict[key] = features_list
127
-
128
- return features_dict
129
-
130
-
131
13
  class Features:
132
14
  """Stores the features produced by any featurizer."""
133
15
 
rasa/shared/utils/io.py CHANGED
@@ -13,7 +13,6 @@ from typing import Any, cast, Callable, Dict, List, Optional, Text, Type, TypeVa
13
13
  import warnings
14
14
  import random
15
15
  import string
16
-
17
16
  import portalocker
18
17
 
19
18
  from rasa.shared.constants import (
rasa/utils/io.py CHANGED
@@ -2,6 +2,7 @@ import asyncio
2
2
  import filecmp
3
3
  import logging
4
4
  import os
5
+ import pickle
5
6
  import tempfile
6
7
  import warnings
7
8
  import re
@@ -97,6 +98,29 @@ def enable_async_loop_debugging(
97
98
  return event_loop
98
99
 
99
100
 
101
+ def pickle_dump(filename: Union[Text, Path], obj: Any) -> None:
102
+ """Saves object to file.
103
+
104
+ Args:
105
+ filename: the filename to save the object to
106
+ obj: the object to store
107
+ """
108
+ with open(filename, "wb") as f:
109
+ pickle.dump(obj, f)
110
+
111
+
112
+ def pickle_load(filename: Union[Text, Path]) -> Any:
113
+ """Loads an object from a file.
114
+
115
+ Args:
116
+ filename: the filename to load the object from
117
+
118
+ Returns: the loaded object
119
+ """
120
+ with open(filename, "rb") as f:
121
+ return pickle.load(f)
122
+
123
+
100
124
  def create_temporary_file(data: Any, suffix: Text = "", mode: Text = "w+") -> Text:
101
125
  """Creates a tempfile.NamedTemporaryFile object for data."""
102
126
  encoding = None if "b" in mode else rasa.shared.utils.io.DEFAULT_ENCODING
@@ -167,6 +191,48 @@ def create_validator(
167
191
  return FunctionValidator
168
192
 
169
193
 
194
+ def json_unpickle(
195
+ file_name: Union[Text, Path], encode_non_string_keys: bool = False
196
+ ) -> Any:
197
+ """Unpickle an object from file using json.
198
+
199
+ Args:
200
+ file_name: the file to load the object from
201
+ encode_non_string_keys: If set to `True` then jsonpickle will encode non-string
202
+ dictionary keys instead of coercing them into strings via `repr()`.
203
+
204
+ Returns: the object
205
+ """
206
+ import jsonpickle.ext.numpy as jsonpickle_numpy
207
+ import jsonpickle
208
+
209
+ jsonpickle_numpy.register_handlers()
210
+
211
+ file_content = rasa.shared.utils.io.read_file(file_name)
212
+ return jsonpickle.loads(file_content, keys=encode_non_string_keys)
213
+
214
+
215
+ def json_pickle(
216
+ file_name: Union[Text, Path], obj: Any, encode_non_string_keys: bool = False
217
+ ) -> None:
218
+ """Pickle an object to a file using json.
219
+
220
+ Args:
221
+ file_name: the file to store the object to
222
+ obj: the object to store
223
+ encode_non_string_keys: If set to `True` then jsonpickle will encode non-string
224
+ dictionary keys instead of coercing them into strings via `repr()`.
225
+ """
226
+ import jsonpickle.ext.numpy as jsonpickle_numpy
227
+ import jsonpickle
228
+
229
+ jsonpickle_numpy.register_handlers()
230
+
231
+ rasa.shared.utils.io.write_text_file(
232
+ jsonpickle.dumps(obj, keys=encode_non_string_keys), file_name
233
+ )
234
+
235
+
170
236
  def get_emoji_regex() -> Pattern:
171
237
  """Returns regex to identify emojis."""
172
238
  return re.compile(
@@ -20,8 +20,6 @@ import numpy as np
20
20
  import scipy.sparse
21
21
  from sklearn.model_selection import train_test_split
22
22
 
23
- from rasa.utils.tensorflow.feature_array import FeatureArray
24
-
25
23
  logger = logging.getLogger(__name__)
26
24
 
27
25
 
@@ -39,6 +37,199 @@ def ragged_array_to_ndarray(ragged_array: Iterable[np.ndarray]) -> np.ndarray:
39
37
  return np.array(ragged_array, dtype=object)
40
38
 
41
39
 
40
+ class FeatureArray(np.ndarray):
41
+ """Stores any kind of features ready to be used by a RasaModel.
42
+
43
+ Next to the input numpy array of features, it also received the number of
44
+ dimensions of the features.
45
+ As our features can have 1 to 4 dimensions we might have different number of numpy
46
+ arrays stacked. The number of dimensions helps us to figure out how to handle this
47
+ particular feature array. Also, it is automatically determined whether the feature
48
+ array is sparse or not and the number of units is determined as well.
49
+
50
+ Subclassing np.array: https://numpy.org/doc/stable/user/basics.subclassing.html
51
+ """
52
+
53
+ def __new__(
54
+ cls, input_array: np.ndarray, number_of_dimensions: int
55
+ ) -> "FeatureArray":
56
+ """Create and return a new object. See help(type) for accurate signature."""
57
+ FeatureArray._validate_number_of_dimensions(number_of_dimensions, input_array)
58
+
59
+ feature_array = np.asarray(input_array).view(cls)
60
+
61
+ if number_of_dimensions <= 2:
62
+ feature_array.units = input_array.shape[-1]
63
+ feature_array.is_sparse = isinstance(input_array[0], scipy.sparse.spmatrix)
64
+ elif number_of_dimensions == 3:
65
+ feature_array.units = input_array[0].shape[-1]
66
+ feature_array.is_sparse = isinstance(input_array[0], scipy.sparse.spmatrix)
67
+ elif number_of_dimensions == 4:
68
+ feature_array.units = input_array[0][0].shape[-1]
69
+ feature_array.is_sparse = isinstance(
70
+ input_array[0][0], scipy.sparse.spmatrix
71
+ )
72
+ else:
73
+ raise ValueError(
74
+ f"Number of dimensions '{number_of_dimensions}' currently not "
75
+ f"supported."
76
+ )
77
+
78
+ feature_array.number_of_dimensions = number_of_dimensions
79
+
80
+ return feature_array
81
+
82
+ def __init__(
83
+ self, input_array: Any, number_of_dimensions: int, **kwargs: Any
84
+ ) -> None:
85
+ """Initialize. FeatureArray.
86
+
87
+ Needed in order to avoid 'Invalid keyword argument number_of_dimensions
88
+ to function FeatureArray.__init__ '
89
+ Args:
90
+ input_array: the array that contains features
91
+ number_of_dimensions: number of dimensions in input_array
92
+ """
93
+ super().__init__(**kwargs)
94
+ self.number_of_dimensions = number_of_dimensions
95
+
96
+ def __array_finalize__(self, obj: Optional[np.ndarray]) -> None:
97
+ """This method is called when the system allocates a new array from obj.
98
+
99
+ Args:
100
+ obj: A subclass (subtype) of ndarray.
101
+ """
102
+ if obj is None:
103
+ return
104
+
105
+ self.units = getattr(obj, "units", None)
106
+ self.number_of_dimensions = getattr(obj, "number_of_dimensions", None) # type: ignore[assignment]
107
+ self.is_sparse = getattr(obj, "is_sparse", None)
108
+
109
+ default_attributes = {
110
+ "units": self.units,
111
+ "number_of_dimensions": self.number_of_dimensions,
112
+ "is_spare": self.is_sparse,
113
+ }
114
+ self.__dict__.update(default_attributes)
115
+
116
+ # pytype: disable=attribute-error
117
+ def __array_ufunc__(
118
+ self, ufunc: Any, method: Text, *inputs: Any, **kwargs: Any
119
+ ) -> Any:
120
+ """Overwrite this method as we are subclassing numpy array.
121
+
122
+ Args:
123
+ ufunc: The ufunc object that was called.
124
+ method: A string indicating which Ufunc method was called
125
+ (one of "__call__", "reduce", "reduceat", "accumulate", "outer",
126
+ "inner").
127
+ *inputs: A tuple of the input arguments to the ufunc.
128
+ **kwargs: Any additional arguments
129
+
130
+ Returns:
131
+ The result of the operation.
132
+ """
133
+ f = {
134
+ "reduce": ufunc.reduce,
135
+ "accumulate": ufunc.accumulate,
136
+ "reduceat": ufunc.reduceat,
137
+ "outer": ufunc.outer,
138
+ "at": ufunc.at,
139
+ "__call__": ufunc,
140
+ }
141
+ # convert the inputs to np.ndarray to prevent recursion, call the function,
142
+ # then cast it back as FeatureArray
143
+ output = FeatureArray(
144
+ f[method](*(i.view(np.ndarray) for i in inputs), **kwargs),
145
+ number_of_dimensions=kwargs["number_of_dimensions"],
146
+ )
147
+ output.__dict__ = self.__dict__ # carry forward attributes
148
+ return output
149
+
150
+ def __reduce__(self) -> Tuple[Any, Any, Any]:
151
+ """Needed in order to pickle this object.
152
+
153
+ Returns:
154
+ A tuple.
155
+ """
156
+ pickled_state = super(FeatureArray, self).__reduce__()
157
+ if isinstance(pickled_state, str):
158
+ raise TypeError("np array __reduce__ returned string instead of tuple.")
159
+ new_state = pickled_state[2] + (
160
+ self.number_of_dimensions,
161
+ self.is_sparse,
162
+ self.units,
163
+ )
164
+ return pickled_state[0], pickled_state[1], new_state
165
+
166
+ def __setstate__(self, state: Any, **kwargs: Any) -> None:
167
+ """Sets the state.
168
+
169
+ Args:
170
+ state: The state argument must be a sequence that contains the following
171
+ elements version, shape, dtype, isFortan, rawdata.
172
+ **kwargs: Any additional parameter
173
+ """
174
+ # Needed in order to load the object
175
+ self.number_of_dimensions = state[-3]
176
+ self.is_sparse = state[-2]
177
+ self.units = state[-1]
178
+ super(FeatureArray, self).__setstate__(state[0:-3], **kwargs)
179
+
180
+ # pytype: enable=attribute-error
181
+
182
+ @staticmethod
183
+ def _validate_number_of_dimensions(
184
+ number_of_dimensions: int, input_array: np.ndarray
185
+ ) -> None:
186
+ """Validates if the the input array has given number of dimensions.
187
+
188
+ Args:
189
+ number_of_dimensions: number of dimensions
190
+ input_array: input array
191
+
192
+ Raises: ValueError in case the dimensions do not match
193
+ """
194
+ _sub_array = input_array
195
+ dim = 0
196
+ # Go number_of_dimensions into the given input_array
197
+ for i in range(1, number_of_dimensions + 1):
198
+ _sub_array = _sub_array[0]
199
+ if isinstance(_sub_array, scipy.sparse.spmatrix):
200
+ dim = i
201
+ break
202
+ if isinstance(_sub_array, np.ndarray) and _sub_array.shape[0] == 0:
203
+ # sequence dimension is 0, we are dealing with "fake" features
204
+ dim = i
205
+ break
206
+
207
+ # If the resulting sub_array is sparse, the remaining number of dimensions
208
+ # should be at least 2
209
+ if isinstance(_sub_array, scipy.sparse.spmatrix):
210
+ if dim > 2:
211
+ raise ValueError(
212
+ f"Given number of dimensions '{number_of_dimensions}' does not "
213
+ f"match dimensions of given input array: {input_array}."
214
+ )
215
+ elif isinstance(_sub_array, np.ndarray) and _sub_array.shape[0] == 0:
216
+ # sequence dimension is 0, we are dealing with "fake" features,
217
+ # but they should be of dim 2
218
+ if dim > 2:
219
+ raise ValueError(
220
+ f"Given number of dimensions '{number_of_dimensions}' does not "
221
+ f"match dimensions of given input array: {input_array}."
222
+ )
223
+ # If the resulting sub_array is dense, the sub_array should be a single number
224
+ elif not np.issubdtype(type(_sub_array), np.integer) and not isinstance(
225
+ _sub_array, (np.float32, np.float64)
226
+ ):
227
+ raise ValueError(
228
+ f"Given number of dimensions '{number_of_dimensions}' does not match "
229
+ f"dimensions of given input array: {input_array}."
230
+ )
231
+
232
+
42
233
  class FeatureSignature(NamedTuple):
43
234
  """Signature of feature arrays.
44
235
 
rasa/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # this file will automatically be changed,
2
2
  # do not add anything but the version number here!
3
- __version__ = "3.10.9.dev1"
3
+ __version__ = "3.10.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rasa-pro
3
- Version: 3.10.9.dev1
3
+ Version: 3.10.10
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
@@ -34,6 +34,7 @@ Requires-Dist: attrs (>=23.1,<23.2)
34
34
  Requires-Dist: azure-storage-blob (>=12.16.0,<12.17.0)
35
35
  Requires-Dist: boto3 (>=1.35.5,<1.36.0)
36
36
  Requires-Dist: certifi (>=2024.07.04)
37
+ Requires-Dist: cloudpickle (>=2.2.1,<3.1)
37
38
  Requires-Dist: colorama (>=0.4.6,<0.5.0) ; sys_platform == "win32"
38
39
  Requires-Dist: colorclass (>=2.2,<2.3)
39
40
  Requires-Dist: coloredlogs (>=15,<16)
@@ -56,19 +57,20 @@ Requires-Dist: importlib-metadata (>=8.5.0,<8.6.0)
56
57
  Requires-Dist: importlib-resources (==6.1.3)
57
58
  Requires-Dist: jieba (>=0.42.1,<0.43) ; extra == "jieba" or extra == "full"
58
59
  Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
60
+ Requires-Dist: joblib (>=1.2.0,<1.3.0)
59
61
  Requires-Dist: jsonpatch (>=1.33,<2.0)
60
62
  Requires-Dist: jsonpickle (>=3.0,<3.1)
61
63
  Requires-Dist: jsonschema (>=4.22)
62
64
  Requires-Dist: keras (==2.14.0)
63
65
  Requires-Dist: langchain (>=0.2.0,<0.3.0)
64
66
  Requires-Dist: langchain-community (>=0.2.0,<0.3.0)
65
- Requires-Dist: litellm (>=1.50.0,<1.51.0)
67
+ Requires-Dist: litellm (>=1.52.6,<1.53.0)
66
68
  Requires-Dist: matplotlib (>=3.7,<3.8)
67
69
  Requires-Dist: mattermostwrapper (>=2.2,<2.3)
68
70
  Requires-Dist: mlflow (>=2.15.1,<3.0.0) ; extra == "mlflow"
69
71
  Requires-Dist: networkx (>=3.1,<3.2)
70
72
  Requires-Dist: numpy (>=1.23.5,<1.25.0) ; python_version >= "3.9" and python_version < "3.11"
71
- Requires-Dist: openai (>=1.52.0,<1.53.0)
73
+ Requires-Dist: openai (>=1.54.0,<1.55.0)
72
74
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
73
75
  Requires-Dist: opentelemetry-api (>=1.16.0,<1.17.0)
74
76
  Requires-Dist: opentelemetry-exporter-jaeger (>=1.16.0,<1.17.0)
@@ -108,7 +110,6 @@ Requires-Dist: requests (>=2.31.0,<2.32.0)
108
110
  Requires-Dist: rich (>=13.4.2,<14.0.0)
109
111
  Requires-Dist: rocketchat_API (>=1.30.0,<1.31.0)
110
112
  Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
111
- Requires-Dist: safetensors (>=0.4.5,<0.5.0)
112
113
  Requires-Dist: sanic (>=22.12,<22.13)
113
114
  Requires-Dist: sanic-cors (>=2.2.0,<2.3.0)
114
115
  Requires-Dist: sanic-jwt (>=1.8.0,<2.0.0)
@@ -119,7 +120,6 @@ Requires-Dist: sentencepiece[sentencepiece] (>=0.1.99,<0.2.0) ; extra == "transf
119
120
  Requires-Dist: sentry-sdk (>=1.14.0,<1.15.0)
120
121
  Requires-Dist: setuptools (>=70.0.0,<70.1.0)
121
122
  Requires-Dist: sklearn-crfsuite (>=0.3.6,<0.4.0)
122
- Requires-Dist: skops (>=0.10.0,<0.11.0)
123
123
  Requires-Dist: slack-sdk (>=3.27.1,<4.0.0)
124
124
  Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
125
125
  Requires-Dist: structlog (>=23.1.0,<23.2.0)
@@ -89,7 +89,7 @@ rasa/cli/train.py,sha256=X4q-ub66Jto8K2vW6g_AOk06SdC-DXC_Mnf6gMiR7lc,8514
89
89
  rasa/cli/utils.py,sha256=9VKC04qX9hJiMvQG9BWWJCH1Sb4jVNO0N_zE7oyUz1Y,15660
90
90
  rasa/cli/visualize.py,sha256=YmRAATAfxHpgE8_PknGyM-oIujwICNzVftTzz6iLNNc,1256
91
91
  rasa/cli/x.py,sha256=1w-H6kb_3OG3zVPJ1isX67BTb_T-x2MJo4OGffCD4Vc,6827
92
- rasa/constants.py,sha256=zFvPAkk6B17QAx0ofo9K220w0gwsdSrJ7xvhr03ukjQ,1313
92
+ rasa/constants.py,sha256=BuDQ59uM3GhxmShZR-1IuDHh5VHfEneA9P9HUQagZ9M,1311
93
93
  rasa/core/__init__.py,sha256=DYHLve7F1yQBVOZTA63efVIwLiULMuihOfdpzw1j0os,457
94
94
  rasa/core/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  rasa/core/actions/action.py,sha256=fzGdE-zhpul6dipV0t5_KtJomVsqfXw4bZ6IX1P1h5Y,43818
@@ -273,8 +273,8 @@ rasa/core/exceptions.py,sha256=0ZyxnGz6V02K24ybMbIwGx2bPh86X0u7As5wImcgrOk,901
273
273
  rasa/core/exporter.py,sha256=Jshzp7gqf7iC0z7uxHM5wALP4MXyDM-fs2Gf_tIgj2Y,10479
274
274
  rasa/core/featurizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
275
  rasa/core/featurizers/precomputation.py,sha256=LWhx7Gm_n1aVvguGkTrHcHt-menRP6gj9OObbSKiReA,18006
276
- rasa/core/featurizers/single_state_featurizer.py,sha256=byEldbHPhUiFHN6oCy_IPislWwtM_6cG4AhR3vH3pJM,16088
277
- rasa/core/featurizers/tracker_featurizers.py,sha256=micA9TuSFnsj1aTZDQTGPR44jIDbDg0oNadkv86nSUk,46756
276
+ rasa/core/featurizers/single_state_featurizer.py,sha256=9zohJb5tXcTRSAdzBM9ebCNy_yDtcJykUoCZTFm8laY,15431
277
+ rasa/core/featurizers/tracker_featurizers.py,sha256=cjwAM8pmUE8TJX4qrX3EkxL3ETHOdFvRZTAXQ2SY6zg,43368
278
278
  rasa/core/http_interpreter.py,sha256=zstMlaBK_K_DSpxMuR_Wn-AbYwFplLaG8jiWofa16Eg,3033
279
279
  rasa/core/information_retrieval/__init__.py,sha256=bop2jgd0f16j-SbVGsvAI3F7znb23qQ-Gydy-AG-dNI,218
280
280
  rasa/core/information_retrieval/faiss.py,sha256=gytyxSAPo4FoL23CwJZyEdF7gfQwEHKgX1MUPIqwV3Y,4192
@@ -307,8 +307,8 @@ rasa/core/policies/intentless_prompt_template.jinja2,sha256=KhIL3cruMmkxhrs5oVbq
307
307
  rasa/core/policies/memoization.py,sha256=XoRxUdYUGRfO47tAEyc5k5pUgt38a4fipO336EU5Vdc,19466
308
308
  rasa/core/policies/policy.py,sha256=HeVtIaV0dA1QcAG3vjdn-4g7-oUEJPL4u01ETJt78YA,27464
309
309
  rasa/core/policies/rule_policy.py,sha256=YNDPZUZkpKFCvZwKe1kSfP6LQnDL9CQ6JU69JRwdmWw,50729
310
- rasa/core/policies/ted_policy.py,sha256=_DHiDH5Upx1yFNzMXBA3SGdHBRfsitTLlr7howUHPoo,87750
311
- rasa/core/policies/unexpected_intent_policy.py,sha256=5pGe9EMS-NLHIDDhqY6KCH_Kv7_TGMzSbe_GsjuKH1w,39649
310
+ rasa/core/policies/ted_policy.py,sha256=TFTM-Ujp1Mu7dQKnX5euKY81cvzDkzokGqAT813PKkY,86658
311
+ rasa/core/policies/unexpected_intent_policy.py,sha256=zeV4atIW9K2QHr4io_8RWOtreABSHoAQHjiznwcmUSo,39441
312
312
  rasa/core/processor.py,sha256=-Jf2WliPA7lUZ8DCNt4r7fdU7qLNQf4g-IhoGZIswN0,54434
313
313
  rasa/core/run.py,sha256=s32pZE3B1uKIs20xIbSty0HxeQ9One63_8NeCODwpQE,11050
314
314
  rasa/core/secrets_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -410,7 +410,7 @@ rasa/e2e_test/e2e_test_converter.py,sha256=VxIx7uk36HzLIyEumJiR6G6-CyyqkV_lYoX-X
410
410
  rasa/e2e_test/e2e_test_converter_prompt.jinja2,sha256=EMy-aCd7jLARHmwAuZUGT5ABnNHjR872_pexRIMGA7c,2791
411
411
  rasa/e2e_test/e2e_test_coverage_report.py,sha256=Cv5bMtoOC240231YMNHz10ibSqm_UD1-eskQVdjPUsw,11326
412
412
  rasa/e2e_test/e2e_test_result.py,sha256=9LlH6vIQeK_dxDwMQ5RzlNHoxCNXpWC9S527-ch8kUA,1649
413
- rasa/e2e_test/e2e_test_runner.py,sha256=HJuF5rD-Sy2eRt1U8cLcR7lwU9bG7HGEQbQj1sU0kbo,43871
413
+ rasa/e2e_test/e2e_test_runner.py,sha256=h5r5IQMCAjHILn75TQV4fr3jp-rpVQie50oF4o3DmZE,44001
414
414
  rasa/e2e_test/e2e_test_schema.yml,sha256=0deWjuKRHNo6e_LSCnUoiw9NLIYf6dj1-zFPl_AqLYA,5632
415
415
  rasa/e2e_test/pykwalify_extensions.py,sha256=OGYKIKYJXd2S0NrWknoQuijyBQaE-oMLkfV_eMRkGSM,1331
416
416
  rasa/e2e_test/stub_custom_action.py,sha256=teq8c5I6IuUsFX4lPdeBLY3j0SLSMCC95KmKx7GrE8I,2369
@@ -487,13 +487,13 @@ rasa/model_training.py,sha256=5NNOr5IJ6WMTx5ok0tL8EocByXpfaXUHJOXyxlm_TXQ,20339
487
487
  rasa/nlu/__init__.py,sha256=D0IYuTK_ZQ_F_9xsy0bXxVCAtU62Fzvp8S7J9tmfI_c,123
488
488
  rasa/nlu/classifiers/__init__.py,sha256=Qvrf7_rfiMxm2Vt2fClb56R3QFExf7WPdFdL-AOvgsk,118
489
489
  rasa/nlu/classifiers/classifier.py,sha256=9fm1mORuFf1vowYIXmqE9yLRKdSC4nGQW7UqNZQipKY,133
490
- rasa/nlu/classifiers/diet_classifier.py,sha256=jhzvTqC_Ln-eFCrE1o3uQf1JRR7d6mCPn5ZRewePUas,72565
490
+ rasa/nlu/classifiers/diet_classifier.py,sha256=C2mKZ2GP7Uptpag240fFkAEZf6P1NuU_2TrnSsR3IA0,71936
491
491
  rasa/nlu/classifiers/fallback_classifier.py,sha256=FYOgM7bLG3HlasVWRozanz-MmDozygTlTIFcPHJWJoo,7150
492
492
  rasa/nlu/classifiers/keyword_intent_classifier.py,sha256=dxDzCK7YzYKslZiXYkBD1Al1y_yZWdZYkBBl7FLyPm8,7581
493
- rasa/nlu/classifiers/logistic_regression_classifier.py,sha256=C7GkIaVNC5MHu5xOaqKzRiV1LTu_19I5vk_Oa9BIDDU,9589
493
+ rasa/nlu/classifiers/logistic_regression_classifier.py,sha256=Qga66-PjW4I4D2uIMoX2aW8ywdufq9ISmt12rP3rj9g,9124
494
494
  rasa/nlu/classifiers/mitie_intent_classifier.py,sha256=_hf0aKWjcjZ8NdH61gbutgY5vAjMmpYDhCpO3dwIrDk,5559
495
495
  rasa/nlu/classifiers/regex_message_handler.py,sha256=r6Z-uFJvqFZjpI1rUeaZZnAOUL9lxuBxGK7W6WZIPOw,1989
496
- rasa/nlu/classifiers/sklearn_intent_classifier.py,sha256=h4J0dc2KPE4Q1J8m9X0JDznHUuUZICVE_XJQbKcPr04,12797
496
+ rasa/nlu/classifiers/sklearn_intent_classifier.py,sha256=zPLr1GNCEAG8xW5SEPLgc2lsenXavTG9KDby8JUDX3o,11923
497
497
  rasa/nlu/constants.py,sha256=ahRBMW-xordjgZtwmMimrTbl8lsCSzjfKMkN1cjanqs,2757
498
498
  rasa/nlu/convert.py,sha256=jLtSQYnj1Ys4Q4WyfL29GDiRlBCbuPmmoFnBYcvFZ5A,1317
499
499
  rasa/nlu/emulators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -503,7 +503,7 @@ rasa/nlu/emulators/luis.py,sha256=AWMGI17Su1q6PcE8l1S1mDJpwfVtx7ibY9rwBmg3Maw,30
503
503
  rasa/nlu/emulators/no_emulator.py,sha256=tLJ2DyWhOtaIBudVf7mJGsubca9Vunb6VhJB_tWJ8wU,334
504
504
  rasa/nlu/emulators/wit.py,sha256=0eMj_q49JGj0Z6JZjR7rHIABNF-F3POX7s5W5OkANyo,1930
505
505
  rasa/nlu/extractors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
506
- rasa/nlu/extractors/crf_entity_extractor.py,sha256=5IW7Fa4lLLUxMrbHiRmBD7Y6B7TmS_o66USoSxYBOZk,27532
506
+ rasa/nlu/extractors/crf_entity_extractor.py,sha256=vX7bZHjtdD2M2GhJDwTx-S-Q6y8eskkOIhZShYXaHj8,26503
507
507
  rasa/nlu/extractors/duckling_entity_extractor.py,sha256=XooWjw6eDC0sxZ-T1YgDnrLcRTBx6B40SFGLjHTHg-w,7686
508
508
  rasa/nlu/extractors/entity_synonyms.py,sha256=WShheUF7wbP7VWfpCNw3J4NouAcFjAupDsT4oAj_TUc,7148
509
509
  rasa/nlu/extractors/extractor.py,sha256=m6p07GDBZi1VhgYCkYJrWs_Zk87okV77hvoiwG_1xxA,17539
@@ -519,9 +519,9 @@ rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py,sha256=xE-dOmdBqCJ4NEm
519
519
  rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py,sha256=tJzDeX8wkOO1iUNmx13FSIeMHNC0U0RB5ZF9pPo8nqQ,4888
520
520
  rasa/nlu/featurizers/featurizer.py,sha256=cV2v4f1V2DWDqJY1-oGAZsytv0L827nsCtUY6KjEChg,3348
521
521
  rasa/nlu/featurizers/sparse_featurizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
522
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py,sha256=CkbI7jS0UjiFE9BRgF4AnxvJHuQb2_aZ9ky4rUvgCH4,34794
523
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py,sha256=yJC9dRrUnZP-tff10qbXrbfN5De55w8U1wc99gaWv_g,23100
524
- rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py,sha256=jGK8IlDbms-xMoln9JucKCjGWVzyHbZOEzIPj2BvV9I,10293
522
+ rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py,sha256=275NcC7W9_n7V0AyVXm8jtYd9fcVHXZRQMgr5MVZAvA,33600
523
+ rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py,sha256=awydhZZTRmff35L1838bbghNbutEf5xty301OyRIgvI,21848
524
+ rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py,sha256=PhzJ17lNv3I5h8WrCvjzjjcUvbu_MJBxY6k3pQTDCac,10289
525
525
  rasa/nlu/featurizers/sparse_featurizer/sparse_featurizer.py,sha256=m6qpixorfTDFWSfGVmLImTOHM6zKdgydPaP_wVxCQ-w,220
526
526
  rasa/nlu/model.py,sha256=r6StZb4Dmum_3dRoocxZWo2M5KVNV20_yKNvYZNvpOc,557
527
527
  rasa/nlu/persistor.py,sha256=Sc0NH2VSK9efOYSD0INYd3za3esQvgNHa4FwClJVH-c,13788
@@ -607,7 +607,7 @@ rasa/shared/nlu/constants.py,sha256=rf628BT4r6hnvN6QWyh_t2UFKOD7PR5APspi6igmeCU,
607
607
  rasa/shared/nlu/interpreter.py,sha256=eCNJp61nQYTGVf4aJi8SCWb46jxZY6-C1M1LFxMyQTM,188
608
608
  rasa/shared/nlu/training_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
609
609
  rasa/shared/nlu/training_data/entities_parser.py,sha256=fC-VIso07so6E9b6KrQXOBC-ZUGCQGvnMvzVwiAO1GQ,6729
610
- rasa/shared/nlu/training_data/features.py,sha256=KjvXQT_YF-fXAR1qvp_JhOvDiI0EGekQ8aRJo0KNQCg,18592
610
+ rasa/shared/nlu/training_data/features.py,sha256=k0IsGRWp1tl1_pLVF-1ejr-nqzY-wTsnjn3PZwZwvk0,14835
611
611
  rasa/shared/nlu/training_data/formats/__init__.py,sha256=rX28sTQBs0fL4yTMtv3xVl2DM14TvWmkkoLJt2kIoho,453
612
612
  rasa/shared/nlu/training_data/formats/dialogflow.py,sha256=YfBjqgY0uaqXVdT3bmnQkb8runPe8pY8H-lqVB0L7zM,6142
613
613
  rasa/shared/nlu/training_data/formats/luis.py,sha256=Yaw_0QcXDC35hEckIJGS2fTdweQfyYAO378fwsEaSUs,3014
@@ -657,7 +657,7 @@ rasa/shared/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
657
657
  rasa/shared/utils/cli.py,sha256=bJpkf0VzzmtpmBnDnIl7SgvrntnBuaJQMHBXHm2WxcA,2916
658
658
  rasa/shared/utils/common.py,sha256=Z0sfpDosVHLhGDY-72lGVTPWsNC64z3HWSLdnZRG7yE,10057
659
659
  rasa/shared/utils/constants.py,sha256=ZNQu0RHM_7Q4A2hn6pD8XlKPEwzivNpfKiiQihwH8-U,141
660
- rasa/shared/utils/io.py,sha256=cYEkHjvuIB-XaK-Qchajv4lDMb_EZc3K-3CLwiEtUcA,15236
660
+ rasa/shared/utils/io.py,sha256=sRgT1JlTRsOtYR97ERj5SntmMaYsR2NWs_DhSxZRbgY,15235
661
661
  rasa/shared/utils/llm.py,sha256=h35-N4LiT0qbg_6sab0GiYsPJe1Q1WHMLj6UhVuXOSY,13804
662
662
  rasa/shared/utils/pykwalify_extensions.py,sha256=4W8gde8C6QpGCY_t9IEmaZSgjMuie1xH0F1DYyn83BM,883
663
663
  rasa/shared/utils/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -692,7 +692,7 @@ rasa/utils/cli.py,sha256=L-DT4nPdVBWfc2m1COHrziLitVWJxazSreb6JLbTho4,865
692
692
  rasa/utils/common.py,sha256=1ETnOFB_nNexSqHL0EhsMtg8M1k9-2laAy2jsugxnIk,21079
693
693
  rasa/utils/converter.py,sha256=H4LHpoAK7MXMmvNZG_uSn0gbccCJvHtsA2-6Zya4u6M,1656
694
694
  rasa/utils/endpoints.py,sha256=cLeHBr6n88GYlYMxXVzZwvQ0nC1TpuC1pvn_RsxiDYY,9336
695
- rasa/utils/io.py,sha256=HwhG-Y_VmyGNqYpA3Y3ef-OO7GI4TTRGyOnSjEJW6GQ,7442
695
+ rasa/utils/io.py,sha256=4Wl5_5I6fnBWOJxbKwIPPMcdeoA5dZevcHuoo30sd3E,9305
696
696
  rasa/utils/json_utils.py,sha256=SKtJzzsIRCAgNEQiBvWDDm9euMRBgJ-TyvCi2tXHH1w,1689
697
697
  rasa/utils/licensing.py,sha256=JyqusmuufnTwlKFHOa8sdDZe5lG7YxeDQbrXnvsxQZw,20491
698
698
  rasa/utils/log_utils.py,sha256=SmyRYbnqj9gCr-pavNCwmoid6cWVQ3D72ryqGhbtlpM,6377
@@ -707,11 +707,10 @@ rasa/utils/tensorflow/crf.py,sha256=xl6lHmie4aYIIN0kTVzvLSJ7Qkl3UeFoZRnc2RrgBEo,
707
707
  rasa/utils/tensorflow/data_generator.py,sha256=zKW2Uc2EsYXu7Yu4JU13nWpbxwOZYq5mqCO0LHT_0ZA,16238
708
708
  rasa/utils/tensorflow/environment.py,sha256=rXqs4btQbiOMtbCoujUmccvAMQvM0peqNkIiunPn5Ik,5599
709
709
  rasa/utils/tensorflow/exceptions.py,sha256=I5chH5Lky3faXZOCfGyeXfkOsDpjYV7gJWZCiKp5CAs,168
710
- rasa/utils/tensorflow/feature_array.py,sha256=0iCebkyVzMlGqFUBbvgXFvqsAS5v3XwC58J-jEYm01I,14001
711
710
  rasa/utils/tensorflow/layers.py,sha256=jAa7kxO69z9I8x9d_lc8ABrGrOhFQ3TLngT9ftU2ET8,59261
712
711
  rasa/utils/tensorflow/layers_utils.py,sha256=Lvldu67qO275VV064bI8AAmwQZFzgmL9JKRlBFARLs0,3319
713
712
  rasa/utils/tensorflow/metrics.py,sha256=iaWI9W_0pRcSokl3NcsrDvqPryjNX64tv20Gd0OQCNM,10064
714
- rasa/utils/tensorflow/model_data.py,sha256=U8hzLKZCZjojl41ibFXRUjwnY-NQ6MPFn5EX0sJDaRo,26942
713
+ rasa/utils/tensorflow/model_data.py,sha256=F9M4NF_aOwV-3zBsBie4RF8js2rLQEixyhiL6NWg9pA,34538
715
714
  rasa/utils/tensorflow/model_data_utils.py,sha256=cHY0ekIFpCTPmB_d3CrJv17ExGNgHNAVvn7FLERGnv8,18166
716
715
  rasa/utils/tensorflow/models.py,sha256=jR7RBzSCXLER3YbRcocQ6pBSDZJsPisdSbEl9KCL0r8,36039
717
716
  rasa/utils/tensorflow/rasa_layers.py,sha256=AZpQsAiikDNox1CYmKTB0cZQjemV97Cnv52xNdb0AAc,49111
@@ -721,9 +720,9 @@ rasa/utils/train_utils.py,sha256=f1NWpp5y6al0dzoQyyio4hc4Nf73DRoRSHDzEK6-C4E,212
721
720
  rasa/utils/url_tools.py,sha256=JQcHL2aLqLHu82k7_d9imUoETCm2bmlHaDpOJ-dKqBc,1218
722
721
  rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
723
722
  rasa/validator.py,sha256=ToRaa4dS859CJO3H2VGqS943O5qWOg45ypbDfFMKECU,62699
724
- rasa/version.py,sha256=ZYVWCHhDCP7gSj8njB4Anh1BKlbZcxtybJxXXMroFXo,122
725
- rasa_pro-3.10.9.dev1.dist-info/METADATA,sha256=OWyF3V2qD-BDnkeaJmbhYjYEcRPxQZPHpgyj5dFS2Ck,30900
726
- rasa_pro-3.10.9.dev1.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
727
- rasa_pro-3.10.9.dev1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
728
- rasa_pro-3.10.9.dev1.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
729
- rasa_pro-3.10.9.dev1.dist-info/RECORD,,
723
+ rasa/version.py,sha256=XXyTkiKqj_NtVo-pisivHTuGq0D3-uIm_AB7GwyQE6g,118
724
+ rasa_pro-3.10.10.dist-info/METADATA,sha256=NmyzTOEcUHg6Lm9zHbjQStpWyuChaZSCnhmjbQaD0R8,30893
725
+ rasa_pro-3.10.10.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
726
+ rasa_pro-3.10.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
727
+ rasa_pro-3.10.10.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
728
+ rasa_pro-3.10.10.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.1
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any