rasa-pro 3.13.0.dev7__py3-none-any.whl → 3.13.0.dev9__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.

Files changed (215) hide show
  1. rasa/__main__.py +0 -3
  2. rasa/api.py +1 -1
  3. rasa/cli/dialogue_understanding_test.py +1 -1
  4. rasa/cli/e2e_test.py +1 -1
  5. rasa/cli/evaluate.py +1 -1
  6. rasa/cli/export.py +1 -1
  7. rasa/cli/llm_fine_tuning.py +12 -11
  8. rasa/cli/project_templates/defaults.py +133 -0
  9. rasa/cli/run.py +1 -1
  10. rasa/cli/studio/link.py +53 -0
  11. rasa/cli/studio/pull.py +78 -0
  12. rasa/cli/studio/push.py +78 -0
  13. rasa/cli/studio/studio.py +12 -0
  14. rasa/cli/studio/upload.py +8 -0
  15. rasa/cli/train.py +1 -1
  16. rasa/cli/utils.py +1 -1
  17. rasa/cli/x.py +1 -1
  18. rasa/constants.py +2 -0
  19. rasa/core/__init__.py +0 -16
  20. rasa/core/actions/action.py +5 -1
  21. rasa/core/actions/action_repeat_bot_messages.py +18 -22
  22. rasa/core/actions/action_run_slot_rejections.py +0 -1
  23. rasa/core/agent.py +16 -1
  24. rasa/core/available_endpoints.py +146 -0
  25. rasa/core/brokers/pika.py +1 -2
  26. rasa/core/channels/botframework.py +2 -2
  27. rasa/core/channels/channel.py +2 -2
  28. rasa/core/channels/development_inspector.py +1 -1
  29. rasa/core/channels/facebook.py +1 -4
  30. rasa/core/channels/hangouts.py +8 -5
  31. rasa/core/channels/inspector/README.md +3 -3
  32. rasa/core/channels/inspector/dist/assets/{arc-c4b064fc.js → arc-02053cc1.js} +1 -1
  33. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-215b5026.js → blockDiagram-38ab4fdb-008b6289.js} +1 -1
  34. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-2b54a0a3.js → c4Diagram-3d4e48cf-fb2597be.js} +1 -1
  35. rasa/core/channels/inspector/dist/assets/channel-078dada8.js +1 -0
  36. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-daacea5f.js → classDiagram-70f12bd4-7f847e00.js} +1 -1
  37. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-930d4dc2.js → classDiagram-v2-f2320105-ba1d689b.js} +1 -1
  38. rasa/core/channels/inspector/dist/assets/clone-5b4516de.js +1 -0
  39. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-83c206ba.js → createText-2e5e7dd3-dd8e67c4.js} +1 -1
  40. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b0eb01d0.js → edges-e0da2a9e-10784939.js} +1 -1
  41. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-17586500.js → erDiagram-9861fffd-24947ae6.js} +1 -1
  42. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-be2a1776.js → flowDb-956e92f1-a9ced505.js} +1 -1
  43. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-c2120ebd.js → flowDiagram-66a62f08-afda9c7c.js} +1 -1
  44. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-f9613071.js +1 -0
  45. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-a6ab5c48.js → flowchart-elk-definition-4a651766-6ef530b8.js} +1 -1
  46. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-ef613457.js → ganttDiagram-c361ad54-0c7dd39a.js} +1 -1
  47. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-d59185b3.js → gitGraphDiagram-72cf32ee-b57239d6.js} +1 -1
  48. rasa/core/channels/inspector/dist/assets/{graph-0f155405.js → graph-9ed57cec.js} +1 -1
  49. rasa/core/channels/inspector/dist/assets/{index-3862675e-d5f1d1b7.js → index-3862675e-233090de.js} +1 -1
  50. rasa/core/channels/inspector/dist/assets/{index-47737d3a.js → index-72184470.js} +3 -3
  51. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-b07d141f.js → infoDiagram-f8f76790-aa116649.js} +1 -1
  52. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-1936d429.js → journeyDiagram-49397b02-e51877cc.js} +1 -1
  53. rasa/core/channels/inspector/dist/assets/{layout-dde8d0f3.js → layout-3ca3798c.js} +1 -1
  54. rasa/core/channels/inspector/dist/assets/{line-0c2c7ee0.js → line-26ee10d3.js} +1 -1
  55. rasa/core/channels/inspector/dist/assets/{linear-35dd89a4.js → linear-aedded32.js} +1 -1
  56. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-56192851.js → mindmap-definition-fc14e90a-d8957261.js} +1 -1
  57. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-fc21ed78.js → pieDiagram-8a3498a8-d771f885.js} +1 -1
  58. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-25e98518.js → quadrantDiagram-120e2f19-09fdf50c.js} +1 -1
  59. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-546ff1f5.js → requirementDiagram-deff3bca-9f0af02e.js} +1 -1
  60. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-02d8b82d.js → sankeyDiagram-04a897e0-84415b37.js} +1 -1
  61. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-3ca5a92e.js → sequenceDiagram-704730f1-8dec4055.js} +1 -1
  62. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-128ea07c.js → stateDiagram-587899a1-c5431d07.js} +1 -1
  63. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-95f290af.js → stateDiagram-v2-d93cdb3a-274e77d9.js} +1 -1
  64. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-4984898a.js → styles-6aaf32cf-e364a1d7.js} +1 -1
  65. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-1bf266ba.js → styles-9a916d00-0dae36f6.js} +1 -1
  66. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-60521c63.js → styles-c10674c1-c4641675.js} +1 -1
  67. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-a25b6e12.js → svgDrawCommon-08f97a94-831fe9a1.js} +1 -1
  68. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-0fc086bf.js → timeline-definition-85554ec2-c3304b3a.js} +1 -1
  69. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-44ee592e.js → xychartDiagram-e933f94c-da799369.js} +1 -1
  70. rasa/core/channels/inspector/dist/index.html +1 -1
  71. rasa/core/channels/inspector/src/components/RecruitmentPanel.tsx +1 -1
  72. rasa/core/channels/mattermost.py +1 -1
  73. rasa/core/channels/rasa_chat.py +2 -4
  74. rasa/core/channels/rest.py +5 -4
  75. rasa/core/channels/socketio.py +56 -41
  76. rasa/core/channels/studio_chat.py +314 -10
  77. rasa/core/channels/vier_cvg.py +1 -2
  78. rasa/core/channels/voice_ready/audiocodes.py +2 -9
  79. rasa/core/channels/voice_stream/audiocodes.py +8 -5
  80. rasa/core/channels/voice_stream/browser_audio.py +1 -1
  81. rasa/core/channels/voice_stream/genesys.py +2 -2
  82. rasa/core/channels/voice_stream/tts/__init__.py +8 -0
  83. rasa/core/channels/voice_stream/twilio_media_streams.py +10 -5
  84. rasa/core/channels/voice_stream/voice_channel.py +39 -23
  85. rasa/core/http_interpreter.py +3 -7
  86. rasa/core/information_retrieval/faiss.py +18 -11
  87. rasa/core/information_retrieval/ingestion/__init__.py +0 -0
  88. rasa/core/information_retrieval/ingestion/faq_parser.py +158 -0
  89. rasa/core/jobs.py +2 -1
  90. rasa/core/nlg/contextual_response_rephraser.py +44 -10
  91. rasa/core/nlg/generator.py +0 -1
  92. rasa/core/nlg/interpolator.py +2 -3
  93. rasa/core/nlg/summarize.py +39 -5
  94. rasa/core/policies/enterprise_search_policy.py +262 -62
  95. rasa/core/policies/enterprise_search_prompt_with_relevancy_check_and_citation_template.jinja2 +63 -0
  96. rasa/core/policies/flow_policy.py +1 -1
  97. rasa/core/policies/flows/flow_executor.py +96 -17
  98. rasa/core/policies/intentless_policy.py +56 -17
  99. rasa/core/processor.py +104 -51
  100. rasa/core/run.py +33 -11
  101. rasa/core/tracker_stores/tracker_store.py +1 -1
  102. rasa/core/training/interactive.py +1 -1
  103. rasa/core/utils.py +24 -97
  104. rasa/dialogue_understanding/coexistence/intent_based_router.py +2 -1
  105. rasa/dialogue_understanding/coexistence/llm_based_router.py +9 -6
  106. rasa/dialogue_understanding/commands/can_not_handle_command.py +2 -0
  107. rasa/dialogue_understanding/commands/cancel_flow_command.py +5 -1
  108. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +2 -0
  109. rasa/dialogue_understanding/commands/clarify_command.py +5 -1
  110. rasa/dialogue_understanding/commands/command_syntax_manager.py +1 -0
  111. rasa/dialogue_understanding/commands/correct_slots_command.py +1 -3
  112. rasa/dialogue_understanding/commands/human_handoff_command.py +2 -0
  113. rasa/dialogue_understanding/commands/knowledge_answer_command.py +4 -2
  114. rasa/dialogue_understanding/commands/repeat_bot_messages_command.py +2 -0
  115. rasa/dialogue_understanding/commands/set_slot_command.py +11 -1
  116. rasa/dialogue_understanding/commands/skip_question_command.py +2 -0
  117. rasa/dialogue_understanding/commands/start_flow_command.py +4 -0
  118. rasa/dialogue_understanding/commands/utils.py +26 -2
  119. rasa/dialogue_understanding/generator/__init__.py +7 -1
  120. rasa/dialogue_understanding/generator/command_generator.py +4 -2
  121. rasa/dialogue_understanding/generator/command_parser.py +2 -2
  122. rasa/dialogue_understanding/generator/command_parser_validator.py +63 -0
  123. rasa/dialogue_understanding/generator/nlu_command_adapter.py +2 -2
  124. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +12 -33
  125. rasa/dialogue_understanding/generator/prompt_templates/command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +78 -0
  126. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +26 -461
  127. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +147 -0
  128. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +477 -0
  129. rasa/dialogue_understanding/generator/single_step/single_step_llm_command_generator.py +11 -64
  130. rasa/dialogue_understanding/patterns/cancel.py +1 -2
  131. rasa/dialogue_understanding/patterns/clarify.py +1 -1
  132. rasa/dialogue_understanding/patterns/correction.py +2 -2
  133. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +37 -25
  134. rasa/dialogue_understanding/patterns/domain_for_patterns.py +190 -0
  135. rasa/dialogue_understanding/processor/command_processor.py +6 -7
  136. rasa/dialogue_understanding/processor/command_processor_component.py +3 -3
  137. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +17 -4
  138. rasa/dialogue_understanding/stack/utils.py +3 -1
  139. rasa/dialogue_understanding/utils.py +68 -12
  140. rasa/dialogue_understanding_test/du_test_case.py +1 -1
  141. rasa/dialogue_understanding_test/du_test_runner.py +4 -22
  142. rasa/dialogue_understanding_test/test_case_simulation/test_case_tracker_simulator.py +2 -6
  143. rasa/e2e_test/e2e_test_runner.py +1 -1
  144. rasa/engine/constants.py +1 -1
  145. rasa/engine/graph.py +2 -2
  146. rasa/engine/recipes/default_recipe.py +26 -2
  147. rasa/engine/validation.py +3 -2
  148. rasa/hooks.py +0 -28
  149. rasa/llm_fine_tuning/annotation_module.py +39 -9
  150. rasa/llm_fine_tuning/conversations.py +3 -0
  151. rasa/llm_fine_tuning/llm_data_preparation_module.py +66 -49
  152. rasa/llm_fine_tuning/paraphrasing/conversation_rephraser.py +1 -5
  153. rasa/llm_fine_tuning/paraphrasing/rephrase_validator.py +52 -44
  154. rasa/llm_fine_tuning/paraphrasing_module.py +10 -12
  155. rasa/llm_fine_tuning/storage.py +4 -4
  156. rasa/llm_fine_tuning/utils.py +63 -1
  157. rasa/model_manager/model_api.py +88 -0
  158. rasa/model_manager/trainer_service.py +4 -4
  159. rasa/plugin.py +1 -11
  160. rasa/privacy/__init__.py +0 -0
  161. rasa/privacy/constants.py +83 -0
  162. rasa/privacy/event_broker_utils.py +77 -0
  163. rasa/privacy/privacy_config.py +281 -0
  164. rasa/privacy/privacy_config_schema.json +86 -0
  165. rasa/privacy/privacy_filter.py +340 -0
  166. rasa/privacy/privacy_manager.py +576 -0
  167. rasa/server.py +23 -2
  168. rasa/shared/constants.py +14 -0
  169. rasa/shared/core/command_payload_reader.py +1 -5
  170. rasa/shared/core/constants.py +4 -3
  171. rasa/shared/core/domain.py +7 -0
  172. rasa/shared/core/events.py +38 -10
  173. rasa/shared/core/flows/flow.py +1 -2
  174. rasa/shared/core/flows/flows_yaml_schema.json +3 -0
  175. rasa/shared/core/flows/steps/collect.py +46 -2
  176. rasa/shared/core/flows/validation.py +16 -3
  177. rasa/shared/core/slots.py +28 -0
  178. rasa/shared/core/training_data/story_reader/yaml_story_reader.py +1 -4
  179. rasa/shared/exceptions.py +4 -0
  180. rasa/shared/utils/common.py +1 -1
  181. rasa/shared/utils/llm.py +191 -6
  182. rasa/shared/utils/yaml.py +32 -0
  183. rasa/studio/data_handler.py +3 -3
  184. rasa/studio/download/download.py +37 -60
  185. rasa/studio/download/flows.py +23 -31
  186. rasa/studio/link.py +200 -0
  187. rasa/studio/pull.py +94 -0
  188. rasa/studio/push.py +131 -0
  189. rasa/studio/upload.py +117 -67
  190. rasa/telemetry.py +82 -25
  191. rasa/tracing/config.py +3 -4
  192. rasa/tracing/constants.py +19 -1
  193. rasa/tracing/instrumentation/attribute_extractors.py +10 -2
  194. rasa/tracing/instrumentation/instrumentation.py +53 -2
  195. rasa/tracing/instrumentation/metrics.py +98 -15
  196. rasa/tracing/metric_instrument_provider.py +75 -3
  197. rasa/utils/common.py +1 -27
  198. rasa/utils/log_utils.py +1 -45
  199. rasa/validator.py +2 -8
  200. rasa/version.py +1 -1
  201. {rasa_pro-3.13.0.dev7.dist-info → rasa_pro-3.13.0.dev9.dist-info}/METADATA +7 -8
  202. {rasa_pro-3.13.0.dev7.dist-info → rasa_pro-3.13.0.dev9.dist-info}/RECORD +205 -189
  203. rasa/anonymization/__init__.py +0 -2
  204. rasa/anonymization/anonymisation_rule_yaml_reader.py +0 -91
  205. rasa/anonymization/anonymization_pipeline.py +0 -286
  206. rasa/anonymization/anonymization_rule_executor.py +0 -266
  207. rasa/anonymization/anonymization_rule_orchestrator.py +0 -119
  208. rasa/anonymization/schemas/config.yml +0 -47
  209. rasa/anonymization/utils.py +0 -118
  210. rasa/core/channels/inspector/dist/assets/channel-3730f5fd.js +0 -1
  211. rasa/core/channels/inspector/dist/assets/clone-e847561e.js +0 -1
  212. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-efbbfe00.js +0 -1
  213. {rasa_pro-3.13.0.dev7.dist-info → rasa_pro-3.13.0.dev9.dist-info}/NOTICE +0 -0
  214. {rasa_pro-3.13.0.dev7.dist-info → rasa_pro-3.13.0.dev9.dist-info}/WHEEL +0 -0
  215. {rasa_pro-3.13.0.dev7.dist-info → rasa_pro-3.13.0.dev9.dist-info}/entry_points.txt +0 -0
@@ -10,7 +10,10 @@ from rasa.tracing.constants import (
10
10
  COMPACT_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
11
11
  CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME,
12
12
  DURATION_UNIT_NAME,
13
+ ENTERPRISE_SEARCH_POLICY_CPU_USAGE_METRIC_NAME,
13
14
  ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
15
+ ENTERPRISE_SEARCH_POLICY_MEMORY_USAGE_METRIC_NAME,
16
+ ENTERPRISE_SEARCH_POLICY_PROMPT_TOKEN_USAGE_METRIC_NAME,
14
17
  INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
15
18
  LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
16
19
  LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
@@ -23,6 +26,10 @@ from rasa.tracing.constants import (
23
26
  MULTI_STEP_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
24
27
  RASA_CLIENT_REQUEST_BODY_SIZE_METRIC_NAME,
25
28
  RASA_CLIENT_REQUEST_DURATION_METRIC_NAME,
29
+ SEARCH_READY_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
30
+ SEARCH_READY_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
31
+ SEARCH_READY_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
32
+ SEARCH_READY_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
26
33
  SINGLE_STEP_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
27
34
  SINGLE_STEP_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
28
35
  SINGLE_STEP_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
@@ -48,7 +55,9 @@ class MetricInstrumentProvider(metaclass=Singleton):
48
55
  **self._create_llm_command_generator_instruments(meter),
49
56
  **self._create_single_step_llm_command_generator_instruments(meter),
50
57
  **self._create_compact_llm_command_generator_instruments(meter),
58
+ **self._create_search_ready_llm_command_generator_instruments(meter),
51
59
  **self._create_multi_step_llm_command_generator_instruments(meter),
60
+ **self._create_enterprise_search_policy_instruments(meter),
52
61
  **self._create_llm_response_duration_instruments(meter),
53
62
  **self._create_client_request_instruments(meter),
54
63
  }
@@ -162,6 +171,41 @@ class MetricInstrumentProvider(metaclass=Singleton):
162
171
  COMPACT_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME: compact_llm_response_duration_llm_command_generator, # noqa: E501
163
172
  }
164
173
 
174
+ @staticmethod
175
+ def _create_search_ready_llm_command_generator_instruments(
176
+ meter: Meter,
177
+ ) -> Dict[str, Any]:
178
+ search_ready_llm_command_generator_cpu_usage = meter.create_histogram(
179
+ name=SEARCH_READY_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME,
180
+ description="CPU percentage for SearchReadyLLMCommandGenerator",
181
+ unit=LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
182
+ )
183
+
184
+ search_ready_llm_command_generator_memory_usage = meter.create_histogram(
185
+ name=SEARCH_READY_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME,
186
+ description="RAM memory usage for SearchReadyLLMCommandGenerator",
187
+ unit=LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
188
+ )
189
+
190
+ search_ready_llm_command_generator_prompt_token_usage = meter.create_histogram(
191
+ name=SEARCH_READY_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME,
192
+ description="SearchReadyLLMCommandGenerator prompt token length",
193
+ unit="1",
194
+ )
195
+
196
+ search_ready_llm_response_duration_command_generator = meter.create_histogram(
197
+ name=SEARCH_READY_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME,
198
+ description="The duration of SearchReadyLLMCommandGenerator's LLM call",
199
+ unit=DURATION_UNIT_NAME,
200
+ )
201
+
202
+ return {
203
+ SEARCH_READY_LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME: search_ready_llm_command_generator_cpu_usage, # noqa: E501
204
+ SEARCH_READY_LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME: search_ready_llm_command_generator_memory_usage, # noqa: E501
205
+ SEARCH_READY_LLM_COMMAND_GENERATOR_PROMPT_TOKEN_USAGE_METRIC_NAME: search_ready_llm_command_generator_prompt_token_usage, # noqa: E501
206
+ SEARCH_READY_LLM_COMMAND_GENERATOR_LLM_RESPONSE_DURATION_METRIC_NAME: search_ready_llm_response_duration_command_generator, # noqa: E501
207
+ }
208
+
165
209
  @staticmethod
166
210
  def _create_multi_step_llm_command_generator_instruments(
167
211
  meter: Meter,
@@ -198,13 +242,42 @@ class MetricInstrumentProvider(metaclass=Singleton):
198
242
  }
199
243
 
200
244
  @staticmethod
201
- def _create_llm_response_duration_instruments(meter: Meter) -> Dict[str, Any]:
202
- llm_response_duration_enterprise_search = meter.create_histogram(
245
+ def _create_enterprise_search_policy_instruments(
246
+ meter: Meter,
247
+ ) -> Dict[str, Any]:
248
+ enterprise_search_policy_cpu_usage = meter.create_histogram(
249
+ name=ENTERPRISE_SEARCH_POLICY_CPU_USAGE_METRIC_NAME,
250
+ description="CPU percentage for EnterpriseSearchPolicy",
251
+ unit=LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
252
+ )
253
+
254
+ enterprise_search_policy_memory_usage = meter.create_histogram(
255
+ name=ENTERPRISE_SEARCH_POLICY_MEMORY_USAGE_METRIC_NAME,
256
+ description="RAM memory usage for EnterpriseSearchPolicy",
257
+ unit=LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME,
258
+ )
259
+
260
+ enterprise_search_policy_prompt_token_usage = meter.create_histogram(
261
+ name=ENTERPRISE_SEARCH_POLICY_PROMPT_TOKEN_USAGE_METRIC_NAME,
262
+ description="EnterpriseSearchPolicy prompt token length",
263
+ unit="1",
264
+ )
265
+
266
+ enterprise_search_policy_llm_response_duration = meter.create_histogram(
203
267
  name=ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
204
268
  description="The duration of EnterpriseSearchPolicy's LLM call",
205
269
  unit=DURATION_UNIT_NAME,
206
270
  )
207
271
 
272
+ return {
273
+ ENTERPRISE_SEARCH_POLICY_CPU_USAGE_METRIC_NAME: enterprise_search_policy_cpu_usage, # noqa: E501
274
+ ENTERPRISE_SEARCH_POLICY_MEMORY_USAGE_METRIC_NAME: enterprise_search_policy_memory_usage, # noqa: E501
275
+ ENTERPRISE_SEARCH_POLICY_PROMPT_TOKEN_USAGE_METRIC_NAME: enterprise_search_policy_prompt_token_usage, # noqa: E501
276
+ ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME: enterprise_search_policy_llm_response_duration, # noqa: E501
277
+ }
278
+
279
+ @staticmethod
280
+ def _create_llm_response_duration_instruments(meter: Meter) -> Dict[str, Any]:
208
281
  llm_response_duration_intentless = meter.create_histogram(
209
282
  name=INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME,
210
283
  description="The duration of IntentlessPolicy's LLM call",
@@ -218,7 +291,6 @@ class MetricInstrumentProvider(metaclass=Singleton):
218
291
  )
219
292
 
220
293
  return {
221
- ENTERPRISE_SEARCH_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME: llm_response_duration_enterprise_search, # noqa: E501
222
294
  INTENTLESS_POLICY_LLM_RESPONSE_DURATION_METRIC_NAME: llm_response_duration_intentless, # noqa: E501
223
295
  CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME: llm_response_duration_contextual_nlg, # noqa: E501
224
296
  }
rasa/utils/common.py CHANGED
@@ -29,7 +29,6 @@ import numpy as np
29
29
 
30
30
  import rasa.shared.utils.io
31
31
  import rasa.utils.io
32
- from rasa.anonymization import ENV_LOG_LEVEL_FAKER, ENV_LOG_LEVEL_PRESIDIO
33
32
  from rasa.constants import (
34
33
  DEFAULT_LOG_LEVEL_LIBRARIES,
35
34
  ENV_LOG_LEVEL_KAFKA,
@@ -53,7 +52,7 @@ EXPECTED_WARNINGS: List[Tuple[Type[Warning], str]] = [
53
52
  np.VisibleDeprecationWarning,
54
53
  "Creating an ndarray from ragged nested sequences.*",
55
54
  ),
56
- # raised by pycountry (rasa-plus anonymization), magic_filter, google rpc
55
+ # raised by magic_filter, google rpc
57
56
  # and probably other dependencies that use pkg_resources instead of importlib
58
57
  (DeprecationWarning, ".*pkg_resources.*"),
59
58
  # This warning is triggered by sanic-cors 2.0.0 and by langchain -> faiss.
@@ -281,8 +280,6 @@ def configure_library_logging() -> None:
281
280
  update_matplotlib_log_level(library_log_level)
282
281
  update_kafka_log_level(library_log_level)
283
282
  update_rabbitmq_log_level(library_log_level)
284
- update_presidio_log_level(library_log_level)
285
- update_faker_log_level(library_log_level)
286
283
 
287
284
 
288
285
  def update_apscheduler_log_level() -> None:
@@ -407,29 +404,6 @@ def update_rabbitmq_log_level(library_log_level: Text) -> None:
407
404
  logging.getLogger("aiormq").setLevel(log_level)
408
405
 
409
406
 
410
- def update_presidio_log_level(library_log_level: Text) -> None:
411
- """Set the log level of presidio.
412
-
413
- Uses the library specific log level or the general libraries log level.
414
- """
415
- log_level = os.environ.get(ENV_LOG_LEVEL_PRESIDIO, library_log_level)
416
- presidio_loggers = ["presidio_analyzer", "presidio_anonymizer"]
417
-
418
- for logger_name in presidio_loggers:
419
- logging.getLogger(logger_name).setLevel(log_level)
420
- logging.getLogger(logger_name).propagate = False
421
-
422
-
423
- def update_faker_log_level(library_log_level: Text) -> None:
424
- """Set the log level of faker.
425
-
426
- Uses the library specific log level or the general libraries log level.
427
- """
428
- log_level = os.environ.get(ENV_LOG_LEVEL_FAKER, library_log_level)
429
- logging.getLogger("faker").setLevel(log_level)
430
- logging.getLogger("faker").propagate = False
431
-
432
-
433
407
  def sort_list_of_dicts_by_first_key(dicts: List[Dict]) -> List[Dict]:
434
408
  """Sorts a list of dictionaries by their first key."""
435
409
  return sorted(dicts, key=lambda d: next(iter(d.keys())))
rasa/utils/log_utils.py CHANGED
@@ -3,14 +3,13 @@ from __future__ import annotations
3
3
  import logging
4
4
  import os
5
5
  import sys
6
- from typing import Any, Dict, Optional
6
+ from typing import Any, Optional
7
7
 
8
8
  import structlog
9
9
  from structlog.dev import ConsoleRenderer
10
10
  from structlog.typing import EventDict, WrappedLogger
11
11
  from structlog_sentry import SentryProcessor
12
12
 
13
- from rasa.plugin import plugin_manager
14
13
  from rasa.shared.constants import (
15
14
  DEFAULT_LOG_LEVEL,
16
15
  DEFAULT_LOG_LEVEL_LLM,
@@ -35,48 +34,6 @@ class HumanConsoleRenderer(ConsoleRenderer):
35
34
  return super().__call__(logger, name, event_dict)
36
35
 
37
36
 
38
- def _anonymizer(
39
- _: structlog.BoundLogger, __: str, event_dict: Dict[str, Any]
40
- ) -> Dict[str, Any]:
41
- """Anonymizes event dict."""
42
- anonymizable_keys = [
43
- "text",
44
- "response_text",
45
- "user_text",
46
- "slots",
47
- "parse_data_text",
48
- "parse_data_entities",
49
- "prediction_events",
50
- "tracker_latest_message",
51
- "prefilled_slots",
52
- "message",
53
- "response",
54
- "slot_candidates",
55
- "rasa_event",
56
- "rasa_events",
57
- "tracker_states",
58
- "current_states",
59
- "old_states",
60
- "current_states",
61
- "successes",
62
- "current_entity",
63
- "next_entity",
64
- "states",
65
- "entity",
66
- "token_text",
67
- "user_message",
68
- "json_message",
69
- ]
70
- anonymization_pipeline = plugin_manager().hook.get_anonymization_pipeline()
71
-
72
- if anonymization_pipeline:
73
- for key in anonymizable_keys:
74
- if key in event_dict:
75
- anonymized_value = anonymization_pipeline.log_run(event_dict[key])
76
- event_dict[key] = anonymized_value
77
- return event_dict
78
-
79
-
80
37
  def configure_structlog(
81
38
  log_level: Optional[int] = None,
82
39
  include_time: bool = False,
@@ -95,7 +52,6 @@ def configure_structlog(
95
52
  )
96
53
 
97
54
  shared_processors = [
98
- _anonymizer,
99
55
  # Processors that have nothing to do with output,
100
56
  # e.g., add timestamps or log level names.
101
57
  # If log level is too low, abort pipeline and throw away log entry.
rasa/validator.py CHANGED
@@ -1014,11 +1014,6 @@ class Validator:
1014
1014
  for sv in slot_value
1015
1015
  ]
1016
1016
  if not all(slot_values_validity):
1017
- invalid_slot_values = [
1018
- sv
1019
- for (sv, slot_value_valid) in zip(slot_value, slot_values_validity)
1020
- if not slot_value_valid
1021
- ]
1022
1017
  structlogger.error(
1023
1018
  "validator.verify_predicates.link.invalid_condition",
1024
1019
  step=step_id,
@@ -1027,8 +1022,7 @@ class Validator:
1027
1022
  event_info=(
1028
1023
  f"Detected invalid condition '{link_condition}' "
1029
1024
  f"at step '{step_id}' for flow id '{flow_id}'. "
1030
- f"Values {invalid_slot_values} are not valid values "
1031
- f"for slot {slot_name}. "
1025
+ f"The condition contains invalid values for slot {slot_name}. "
1032
1026
  f"Please make sure that all conditions are valid."
1033
1027
  ),
1034
1028
  )
@@ -1998,7 +1992,7 @@ class Validator:
1998
1992
  "validator.validate_conditional_response_variation_predicates.invalid_slot",
1999
1993
  utter=utter_name,
2000
1994
  event_info=(
2001
- f"Detected invalid slot '{slot_namespace[1]}' in "
1995
+ f"Detected invalid slot '{slot_namespace[0]}' in "
2002
1996
  f"condition '{condition}' for response variation "
2003
1997
  f"'{utter_name}'. Please make sure that all slots "
2004
1998
  f"are specified in the domain file."
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.13.0.dev7"
3
+ __version__ = "3.13.0.dev9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rasa-pro
3
- Version: 3.13.0.dev7
3
+ Version: 3.13.0.dev9
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
@@ -18,11 +18,12 @@ Provides-Extra: full
18
18
  Provides-Extra: gh-release-notes
19
19
  Provides-Extra: jieba
20
20
  Provides-Extra: metal
21
+ Provides-Extra: pii
21
22
  Provides-Extra: spacy
22
23
  Provides-Extra: transformers
23
24
  Requires-Dist: CacheControl (>=0.14.2,<0.15.0)
24
25
  Requires-Dist: PyJWT[crypto] (>=2.8.0,<3.0.0)
25
- Requires-Dist: SQLAlchemy (>=2.0.40,<2.1.0)
26
+ Requires-Dist: SQLAlchemy (>=2.0.41,<2.1.0)
26
27
  Requires-Dist: absl-py (>=2.0,<2.1)
27
28
  Requires-Dist: aio-pika (>=8.2.3,<9.4.4)
28
29
  Requires-Dist: aiogram (>=3.15,<3.16)
@@ -45,10 +46,10 @@ Requires-Dist: demoji (>=1.1.0,<2.0.0)
45
46
  Requires-Dist: diskcache (>=5.6.3,<5.7.0)
46
47
  Requires-Dist: dnspython (==2.6.1)
47
48
  Requires-Dist: faiss-cpu (>=1.7.4,<2.0.0)
48
- Requires-Dist: faker (>=26.0.0,<27.0.0)
49
49
  Requires-Dist: fbmessenger (>=6.0.0,<6.1.0)
50
50
  Requires-Dist: github3.py (>=3.2.0,<3.3.0) ; extra == "gh-release-notes"
51
51
  Requires-Dist: gitpython (>=3.1.41,<3.2.0) ; extra == "full"
52
+ Requires-Dist: gliner (>=0.2.20,<0.3.0) ; extra == "pii"
52
53
  Requires-Dist: google-auth (>=2.23.4,<3)
53
54
  Requires-Dist: google-cloud-storage (>=2.14.0,<2.15.0)
54
55
  Requires-Dist: hvac (>=1.2.1,<2.0.0)
@@ -68,6 +69,7 @@ Requires-Dist: matplotlib (>=3.7,<3.8)
68
69
  Requires-Dist: mattermostwrapper (>=2.2,<2.3)
69
70
  Requires-Dist: networkx (>=3.1,<3.2)
70
71
  Requires-Dist: numpy (>=1.26.4,<1.27.0)
72
+ Requires-Dist: onnxruntime (==1.19.2) ; extra == "pii"
71
73
  Requires-Dist: openai (>=1.68.2,<1.69.0)
72
74
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
73
75
  Requires-Dist: opentelemetry-api (>=1.16.0,<1.17.0)
@@ -78,13 +80,10 @@ Requires-Dist: packaging (>=23.2,<23.3)
78
80
  Requires-Dist: pep440-version-utils (>=1.1.0,<1.2.0)
79
81
  Requires-Dist: pluggy (>=1.2.0,<2.0.0)
80
82
  Requires-Dist: portalocker (>=2.7.0,<3.0.0)
81
- Requires-Dist: presidio-analyzer (>=2.2.33,<2.2.34)
82
- Requires-Dist: presidio-anonymizer (>=2.2.354,<3.0.0)
83
83
  Requires-Dist: prompt-toolkit (>=3.0.28,<3.0.29)
84
84
  Requires-Dist: protobuf (>=4.23.3,<4.25.4)
85
85
  Requires-Dist: psutil (>=5.9.5,<6.0.0)
86
86
  Requires-Dist: psycopg2-binary (>=2.9.10,<2.10.0)
87
- Requires-Dist: pycountry (>=22.3.5,<23.0.0)
88
87
  Requires-Dist: pydot (>=1.4,<1.5)
89
88
  Requires-Dist: pykwalify (>=1.8,<1.9)
90
89
  Requires-Dist: pymilvus (>=2.4.1,<2.4.2)
@@ -92,7 +91,7 @@ Requires-Dist: pymongo (>=4.10.1,<4.11.0)
92
91
  Requires-Dist: pypred (>=0.4.0,<0.5.0)
93
92
  Requires-Dist: python-dateutil (>=2.8.2,<2.9.0)
94
93
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
95
- Requires-Dist: python-engineio (>=4.12.0,<6,!=5.0.0)
94
+ Requires-Dist: python-engineio (>=4.12.2,<4.13.0)
96
95
  Requires-Dist: python-keycloak (>=3.12.0,<4.0.0)
97
96
  Requires-Dist: python-socketio (>=5.8,<6)
98
97
  Requires-Dist: pytz (>=2022.7.1,<2023.0)
@@ -138,7 +137,7 @@ Requires-Dist: tensorflow_hub (>=0.13.0,<0.14.0)
138
137
  Requires-Dist: terminaltables (>=3.1.10,<3.2.0)
139
138
  Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
140
139
  Requires-Dist: tqdm (>=4.66.2,<5.0.0)
141
- Requires-Dist: transformers (>=4.36.2,<4.37.0) ; extra == "transformers" or extra == "full"
140
+ Requires-Dist: transformers (>=4.38.2,<4.39.0) ; extra == "transformers" or extra == "full"
142
141
  Requires-Dist: twilio (>=8.4,<8.5)
143
142
  Requires-Dist: types-protobuf (==4.25.0.20240417)
144
143
  Requires-Dist: typing-extensions (>=4.7.1,<5.0.0)