rasa-pro 3.12.31__py3-none-any.whl → 3.12.33__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.

@@ -86,6 +86,7 @@ class AudiocodesVoiceOutputChannel(VoiceOutputChannel):
86
86
  # This is an approximation, as the bot will be sent the audio chunks next
87
87
  # which are played to the user immediately.
88
88
  call_state.is_bot_speaking = True # type: ignore[attr-defined]
89
+ VoiceInputChannel._cancel_silence_timeout_watcher()
89
90
 
90
91
  async def send_intermediate_marker(self, recipient_id: str) -> None:
91
92
  """Audiocodes doesn't need intermediate markers, so do nothing."""
@@ -249,6 +249,16 @@ class FlowRetrieval(EmbeddingsHealthCheckMixin):
249
249
  )
250
250
 
251
251
  flows_to_embedd = flows.exclude_link_only_flows()
252
+
253
+ if not flows_to_embedd:
254
+ structlogger.debug(
255
+ "flow_retrieval.populate_vector_store.no_flows_to_embed",
256
+ event_info=(
257
+ "No flows to embed in the vector store, skipping population."
258
+ ),
259
+ )
260
+ return
261
+
252
262
  embeddings = self._create_embedder(self.config)
253
263
  documents = self._generate_flow_documents(flows_to_embedd, domain)
254
264
  try:
@@ -10,7 +10,7 @@ import uuid
10
10
  from contextlib import contextmanager
11
11
  from datetime import datetime
12
12
  from pathlib import Path
13
- from typing import Callable, Generator, Optional, Text, Tuple, Union
13
+ from typing import Callable, Generator, List, Optional, Text, Tuple, Union
14
14
 
15
15
  from tarsafe import TarSafe
16
16
 
@@ -158,16 +158,24 @@ class LocalModelStorage(ModelStorage):
158
158
  # before trying the \\?\ prefix approach first
159
159
  prev_filter = getattr(tar, "extraction_filter", None)
160
160
  tar.extraction_filter = create_combined_filter(prev_filter)
161
- tar.extractall(f"\\\\?\\{temporary_directory}")
161
+ tar.extractall(
162
+ f"\\\\?\\{temporary_directory}",
163
+ members=yield_safe_members(tar.getmembers()),
164
+ )
162
165
  except Exception:
163
166
  # Fallback for Python versions with tarfile security fix
164
167
  logger.warning(
165
168
  "Failed to extract model archive with long path support. "
166
169
  "Falling back to regular extraction."
167
170
  )
168
- tar.extractall(temporary_directory)
171
+ tar.extractall(
172
+ temporary_directory,
173
+ members=yield_safe_members(tar.getmembers()),
174
+ )
169
175
  else:
170
- tar.extractall(temporary_directory)
176
+ tar.extractall(
177
+ temporary_directory, members=yield_safe_members(tar.getmembers())
178
+ )
171
179
  LocalModelStorage._assert_not_rasa2_archive(temporary_directory)
172
180
 
173
181
  @staticmethod
@@ -287,3 +295,32 @@ class LocalModelStorage(ModelStorage):
287
295
  core_target=model_configuration.core_target,
288
296
  nlu_target=model_configuration.nlu_target,
289
297
  )
298
+
299
+
300
+ def yield_safe_members(
301
+ members: List[tarfile.TarInfo],
302
+ ) -> Generator[tarfile.TarInfo, None, None]:
303
+ """
304
+ Filter function for tar.extractall members parameter.
305
+ Validates each member and yields only safe ones.
306
+
307
+ Args:
308
+ members: Iterator of TarInfo objects from tar.getmembers()
309
+
310
+ Yields:
311
+ TarInfo: Safe members to extract
312
+ """
313
+ for member in members:
314
+ # Skip absolute paths
315
+ if Path(member.name).is_absolute():
316
+ continue
317
+
318
+ # Skip paths with directory traversal sequences
319
+ if ".." in member.name or "\\.." in member.name:
320
+ continue
321
+
322
+ # Skip special file types unless you need them
323
+ if member.isdev() or member.issym():
324
+ continue
325
+
326
+ yield member
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.12.31"
3
+ __version__ = "3.12.33"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.12.31
3
+ Version: 3.12.33
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
  Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
6
6
  Author: Rasa Technologies GmbH
@@ -103,7 +103,7 @@ Requires-Dist: randomname (>=0.2.1,<0.3.0)
103
103
  Requires-Dist: rasa-sdk (==3.12.0)
104
104
  Requires-Dist: redis (>=4.6.0,<6.0)
105
105
  Requires-Dist: regex (>=2024.7.24,<2024.8.0)
106
- Requires-Dist: requests (>=2.32.3,<2.33.0)
106
+ Requires-Dist: requests (>=2.32.5,<2.33.0)
107
107
  Requires-Dist: rich (>=13.4.2,<14.0.0)
108
108
  Requires-Dist: rocketchat_API (>=1.32.0,<1.33.0)
109
109
  Requires-Dist: ruamel.yaml (>=0.17.21,<0.17.22)
@@ -118,7 +118,7 @@ Requires-Dist: sentencepiece[sentencepiece] (>=0.1.99,<0.2.0) ; extra == "transf
118
118
  Requires-Dist: sentry-sdk (>=2.8.0,<3)
119
119
  Requires-Dist: setuptools (>=78.1.1,<78.2.0)
120
120
  Requires-Dist: sklearn-crfsuite (>=0.3.6,<0.4.0)
121
- Requires-Dist: skops (>=0.10.0,<0.11.0)
121
+ Requires-Dist: skops (>=0.13.0,<0.14.0)
122
122
  Requires-Dist: slack-sdk (>=3.27.1,<3.28.0)
123
123
  Requires-Dist: spacy (>=3.5.4,<4.0.0) ; extra == "spacy" or extra == "full"
124
124
  Requires-Dist: structlog (>=23.1.0,<23.2.0)
@@ -280,7 +280,7 @@ rasa/core/channels/voice_stream/asr/asr_event.py,sha256=skPwrkRrcsptmeWXu9q68i4B
280
280
  rasa/core/channels/voice_stream/asr/azure.py,sha256=dUFxtNVVwGM2D1VyqQ5FWeSpKwUQekMXUxWZv6tPJ7w,6114
281
281
  rasa/core/channels/voice_stream/asr/deepgram.py,sha256=VeVMWg05uL_epGGOZbUHXeIIhoBf0bxiWMp6QwNFe0A,5920
282
282
  rasa/core/channels/voice_stream/audio_bytes.py,sha256=3V0QQplPD-kVfebaaeVcKgV7pwIJyjnTenujVD3y3sY,340
283
- rasa/core/channels/voice_stream/audiocodes.py,sha256=MimjLo31wikfGmsyllRiX-pIZRy-D5JFeKhHJt2vnbU,12856
283
+ rasa/core/channels/voice_stream/audiocodes.py,sha256=ZUj15x16A3MS3v1wZ7YGR5DOX0GH5PlUwIOmZP7QAwo,12916
284
284
  rasa/core/channels/voice_stream/browser_audio.py,sha256=fDwp-yaalik8R92EOJHsgHMuNAg9yoeGWVRGMCH2lJQ,3939
285
285
  rasa/core/channels/voice_stream/call_state.py,sha256=fbwVbT0ddE7AjTYjx-Mq5jBMEGXanbug5wlBwstaews,899
286
286
  rasa/core/channels/voice_stream/genesys.py,sha256=EyZ4G3gfiQ5HXP6jslTjXRBYVEhpyO8nK5r6znQtHtE,16965
@@ -399,7 +399,7 @@ rasa/dialogue_understanding/generator/command_generator.py,sha256=huRDWC2gv_bRHF
399
399
  rasa/dialogue_understanding/generator/command_parser.py,sha256=wf6FSgqBw5F0legg06SqKlzajIN6sc_Cov2lFY_O9MI,8109
400
400
  rasa/dialogue_understanding/generator/constants.py,sha256=ulqmLIwrBOZLyhsCChI_4CdOnA0I8MfuBxxuKGyFp7U,1130
401
401
  rasa/dialogue_understanding/generator/flow_document_template.jinja2,sha256=f4H6vVd-_nX_RtutMh1xD3ZQE_J2OyuPHAtiltfiAPY,253
402
- rasa/dialogue_understanding/generator/flow_retrieval.py,sha256=DavL-37e0tksMWkxvFImoqlsmYeYeSdDN3u7wZI0K-8,17817
402
+ rasa/dialogue_understanding/generator/flow_retrieval.py,sha256=D-D6bvYt_GDLoRQzhvlTEPnmZI4ceESLJBLWrMgUyrA,18120
403
403
  rasa/dialogue_understanding/generator/llm_based_command_generator.py,sha256=P1Hwjt8ph2oQQ2PzWaaBRcU36ia4mN21nTzhLtEF5Wc,23586
404
404
  rasa/dialogue_understanding/generator/llm_command_generator.py,sha256=z7jhIJ3W_5GFH-p15kVoWbigMIoY8fIJjc_j_uX7yxw,2581
405
405
  rasa/dialogue_understanding/generator/multi_step/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -503,7 +503,7 @@ rasa/engine/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
503
503
  rasa/engine/runner/dask.py,sha256=ocmpRpDpRPMaisZcBFDeUPbWGl6oWiU9UXyWimE9074,9476
504
504
  rasa/engine/runner/interface.py,sha256=zkaKe5vjiYrR7Efepr7LVZRJEGNDM959rkdR62vEgTM,1679
505
505
  rasa/engine/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
506
- rasa/engine/storage/local_model_storage.py,sha256=Y2VKg04I63WgIL9XeLhJs7SkQMRqUziKyTj9QnhTWZ8,11382
506
+ rasa/engine/storage/local_model_storage.py,sha256=kVkINXxwJVcRQmOCyD8K7N01ATZtOqKrFpA7kb6z7oI,12473
507
507
  rasa/engine/storage/resource.py,sha256=sUCBNSIrjEr68wCj7D48hzmIih7ezmT88esMhyykA88,3932
508
508
  rasa/engine/storage/storage.py,sha256=mNLptsu9cOXWu8k55CnjZMByv6eqh2rEOqXC9__k8aE,6930
509
509
  rasa/engine/training/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -822,9 +822,9 @@ rasa/utils/train_utils.py,sha256=ClJx-6x3-h3Vt6mskacgkcCUJTMXjFPe3zAcy_DfmaU,212
822
822
  rasa/utils/url_tools.py,sha256=dZ1HGkVdWTJB7zYEdwoDIrEuyX9HE5WsxKKFVsXBLE0,1218
823
823
  rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
824
824
  rasa/validator.py,sha256=524VlFTYK0B3iXYveVD6BDC3K0j1QfpzJ9O-TAWczmc,83166
825
- rasa/version.py,sha256=2Z_MhUOhckb-Tlm2UuPGZdu3Albffu_Js1q85XaCmXo,118
826
- rasa_pro-3.12.31.dist-info/METADATA,sha256=0IoqbSS8YRmiKFl7qocrUXcFHfoa0NBRd5yfArRgzmc,10609
827
- rasa_pro-3.12.31.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
828
- rasa_pro-3.12.31.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
829
- rasa_pro-3.12.31.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
830
- rasa_pro-3.12.31.dist-info/RECORD,,
825
+ rasa/version.py,sha256=7JatnMAciHDSavVAX_RufsdQixgGhtJ91pKmkbgBBqw,118
826
+ rasa_pro-3.12.33.dist-info/METADATA,sha256=2wNpVczdaKeheXr4MGkBbF0DeT3Xvx3P3rpnw6SUYKM,10609
827
+ rasa_pro-3.12.33.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
828
+ rasa_pro-3.12.33.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
829
+ rasa_pro-3.12.33.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
830
+ rasa_pro-3.12.33.dist-info/RECORD,,