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.
- rasa/constants.py +1 -1
- rasa/core/featurizers/single_state_featurizer.py +1 -22
- rasa/core/featurizers/tracker_featurizers.py +18 -115
- rasa/core/policies/ted_policy.py +33 -58
- rasa/core/policies/unexpected_intent_policy.py +7 -15
- rasa/e2e_test/e2e_test_runner.py +2 -0
- rasa/nlu/classifiers/diet_classifier.py +25 -38
- rasa/nlu/classifiers/logistic_regression_classifier.py +9 -22
- rasa/nlu/classifiers/sklearn_intent_classifier.py +16 -37
- rasa/nlu/extractors/crf_entity_extractor.py +50 -93
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +16 -45
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +17 -52
- rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py +3 -5
- rasa/shared/nlu/training_data/features.py +2 -120
- rasa/shared/utils/io.py +0 -1
- rasa/utils/io.py +66 -0
- rasa/utils/tensorflow/model_data.py +193 -2
- rasa/version.py +1 -1
- {rasa_pro-3.10.9.dev1.dist-info → rasa_pro-3.10.10.dist-info}/METADATA +5 -5
- {rasa_pro-3.10.9.dev1.dist-info → rasa_pro-3.10.10.dist-info}/RECORD +23 -24
- {rasa_pro-3.10.9.dev1.dist-info → rasa_pro-3.10.10.dist-info}/WHEEL +1 -1
- rasa/utils/tensorflow/feature_array.py +0 -366
- {rasa_pro-3.10.9.dev1.dist-info → rasa_pro-3.10.10.dist-info}/NOTICE +0 -0
- {rasa_pro-3.10.9.dev1.dist-info → rasa_pro-3.10.10.dist-info}/entry_points.txt +0 -0
|
@@ -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
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,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.10.
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
277
|
-
rasa/core/featurizers/tracker_featurizers.py,sha256=
|
|
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=
|
|
311
|
-
rasa/core/policies/unexpected_intent_policy.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
523
|
-
rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py,sha256=
|
|
524
|
-
rasa/nlu/featurizers/sparse_featurizer/regex_featurizer.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
725
|
-
rasa_pro-3.10.
|
|
726
|
-
rasa_pro-3.10.
|
|
727
|
-
rasa_pro-3.10.
|
|
728
|
-
rasa_pro-3.10.
|
|
729
|
-
rasa_pro-3.10.
|
|
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,,
|