rasa-pro 3.12.0.dev4__py3-none-any.whl → 3.12.0.dev6__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/cli/dialogue_understanding_test.py +40 -5
- rasa/constants.py +0 -1
- rasa/core/actions/action.py +4 -2
- rasa/core/actions/custom_action_executor.py +1 -1
- rasa/core/channels/inspector/dist/assets/Tableau10-1b767f5e.js +1 -0
- rasa/core/channels/inspector/dist/assets/arc-f0f8bd46.js +1 -0
- rasa/core/channels/inspector/dist/assets/blockDiagram-38ab4fdb-7162c77d.js +118 -0
- rasa/core/channels/inspector/dist/assets/c4Diagram-3d4e48cf-b1d0d098.js +10 -0
- rasa/core/channels/inspector/dist/assets/channel-e265ea59.js +1 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-70f12bd4-807a1b27.js +2 -0
- rasa/core/channels/inspector/dist/assets/classDiagram-v2-f2320105-5238dcdb.js +2 -0
- rasa/core/channels/inspector/dist/assets/clone-21f8a43d.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-62fc7601-89c73b31.js → createText-2e5e7dd3-75dfaa67.js} +1 -1
- rasa/core/channels/inspector/dist/assets/edges-e0da2a9e-df20501d.js +4 -0
- rasa/core/channels/inspector/dist/assets/{erDiagram-9d236eb7-907e0440.js → erDiagram-9861fffd-13cf4797.js} +4 -4
- rasa/core/channels/inspector/dist/assets/flowDb-956e92f1-a4991264.js +10 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-66a62f08-ccecf773.js +4 -0
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-5c8ce12d.js +1 -0
- rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-4a651766-b5801783.js +139 -0
- rasa/core/channels/inspector/dist/assets/ganttDiagram-c361ad54-161e079a.js +257 -0
- rasa/core/channels/inspector/dist/assets/gitGraphDiagram-72cf32ee-f38e86a4.js +70 -0
- rasa/core/channels/inspector/dist/assets/graph-be6ef5d8.js +1 -0
- rasa/core/channels/inspector/dist/assets/index-3862675e-d9ce8994.js +1 -0
- rasa/core/channels/inspector/dist/assets/{index-e793d777.js → index-7794b245.js} +200 -195
- rasa/core/channels/inspector/dist/assets/{infoDiagram-736b4530-8ceba4db.js → infoDiagram-f8f76790-5000a3dc.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-df861f2b-960d3809.js → journeyDiagram-49397b02-8ef0a17a.js} +4 -4
- rasa/core/channels/inspector/dist/assets/katex-498eb57e.js +261 -0
- rasa/core/channels/inspector/dist/assets/layout-d649bc98.js +1 -0
- rasa/core/channels/inspector/dist/assets/{line-eeccc4e2.js → line-95add810.js} +1 -1
- rasa/core/channels/inspector/dist/assets/linear-f6025094.js +1 -0
- rasa/core/channels/inspector/dist/assets/mindmap-definition-fc14e90a-2e8531c4.js +312 -0
- rasa/core/channels/inspector/dist/assets/{pieDiagram-dbbf0591-dc9b5e1b.js → pieDiagram-8a3498a8-918adfdb.js} +7 -7
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-4d7f4fd6-a08cba6d.js → quadrantDiagram-120e2f19-cbd01797.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-6fc4c22a-87242b9e.js → requirementDiagram-deff3bca-6a8b877b.js} +2 -2
- rasa/core/channels/inspector/dist/assets/sankeyDiagram-04a897e0-c377c3fe.js +8 -0
- rasa/core/channels/inspector/dist/assets/sequenceDiagram-704730f1-ab9e9b7f.js +122 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-587899a1-5e6ae67d.js +1 -0
- rasa/core/channels/inspector/dist/assets/stateDiagram-v2-d93cdb3a-40643476.js +1 -0
- rasa/core/channels/inspector/dist/assets/{styles-9c745c82-cef936a6.js → styles-6aaf32cf-afb8d108.js} +1 -1
- rasa/core/channels/inspector/dist/assets/styles-9a916d00-7edc9423.js +160 -0
- rasa/core/channels/inspector/dist/assets/styles-c10674c1-c1d8f7e9.js +116 -0
- rasa/core/channels/inspector/dist/assets/svgDrawCommon-08f97a94-f494b2ef.js +1 -0
- rasa/core/channels/inspector/dist/assets/{timeline-definition-5b62e21b-0d39bdb2.js → timeline-definition-85554ec2-11c7cdd0.js} +3 -3
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-2b33534f-a03fa445.js → xychartDiagram-e933f94c-3f191ec1.js} +3 -3
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +10 -3
- rasa/core/channels/inspector/yarn.lock +89 -99
- rasa/core/channels/studio_chat.py +14 -0
- rasa/core/nlg/contextual_response_rephraser.py +2 -1
- rasa/core/policies/enterprise_search_policy.py +2 -1
- rasa/core/processor.py +3 -3
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +2 -1
- rasa/dialogue_understanding_test/command_metric_calculation.py +8 -4
- rasa/dialogue_understanding_test/du_test_result.py +9 -0
- rasa/e2e_test/assertions.py +203 -174
- rasa/e2e_test/assertions_schema.yml +6 -0
- rasa/e2e_test/constants.py +16 -1
- rasa/e2e_test/e2e_config.py +102 -41
- rasa/e2e_test/e2e_config_schema.yml +28 -10
- rasa/e2e_test/llm_judge_prompts/answer_relevance_prompt_template.jinja2 +89 -0
- rasa/e2e_test/llm_judge_prompts/groundedness_prompt_template.jinja2 +165 -0
- rasa/e2e_test/utils/generative_assertions.py +243 -0
- rasa/server.py +3 -1
- rasa/shared/nlu/constants.py +1 -0
- rasa/shared/providers/llm/llm_response.py +21 -1
- rasa/tracing/instrumentation/attribute_extractors.py +23 -7
- rasa/utils/common.py +0 -14
- rasa/version.py +1 -1
- {rasa_pro-3.12.0.dev4.dist-info → rasa_pro-3.12.0.dev6.dist-info}/METADATA +1 -3
- {rasa_pro-3.12.0.dev4.dist-info → rasa_pro-3.12.0.dev6.dist-info}/RECORD +73 -64
- rasa/core/channels/inspector/dist/assets/arc-632a63ec.js +0 -1
- rasa/core/channels/inspector/dist/assets/c4Diagram-d0fbc5ce-081e0df4.js +0 -10
- rasa/core/channels/inspector/dist/assets/classDiagram-936ed81e-3df0afc2.js +0 -2
- rasa/core/channels/inspector/dist/assets/classDiagram-v2-c3cb15f1-8c5ed31e.js +0 -2
- rasa/core/channels/inspector/dist/assets/edges-f2ad444c-4fc48c3e.js +0 -4
- rasa/core/channels/inspector/dist/assets/flowDb-1972c806-9ec53a3c.js +0 -6
- rasa/core/channels/inspector/dist/assets/flowDiagram-7ea5b25a-41da787a.js +0 -4
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-855bc5b3-8bea338b.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowchart-elk-definition-abe16c3d-ce370633.js +0 -139
- rasa/core/channels/inspector/dist/assets/ganttDiagram-9b5ea136-90a36523.js +0 -266
- rasa/core/channels/inspector/dist/assets/gitGraphDiagram-99d0ae7c-41e1aa3f.js +0 -70
- rasa/core/channels/inspector/dist/assets/index-2c4b9a3b-e6f2af62.js +0 -1
- rasa/core/channels/inspector/dist/assets/layout-498807d8.js +0 -1
- rasa/core/channels/inspector/dist/assets/linear-8a078617.js +0 -1
- rasa/core/channels/inspector/dist/assets/mindmap-definition-beec6740-396d17dd.js +0 -109
- rasa/core/channels/inspector/dist/assets/sankeyDiagram-8f13d901-53f6f391.js +0 -8
- rasa/core/channels/inspector/dist/assets/sequenceDiagram-b655622a-715c9c20.js +0 -122
- rasa/core/channels/inspector/dist/assets/stateDiagram-59f0c015-2e8fb31f.js +0 -1
- rasa/core/channels/inspector/dist/assets/stateDiagram-v2-2b26beab-7e2d2aa0.js +0 -1
- rasa/core/channels/inspector/dist/assets/styles-080da4f6-4420cea6.js +0 -110
- rasa/core/channels/inspector/dist/assets/styles-3dcbcfbf-28676cf4.js +0 -159
- rasa/core/channels/inspector/dist/assets/svgDrawCommon-4835440b-151251e9.js +0 -1
- {rasa_pro-3.12.0.dev4.dist-info → rasa_pro-3.12.0.dev6.dist-info}/NOTICE +0 -0
- {rasa_pro-3.12.0.dev4.dist-info → rasa_pro-3.12.0.dev6.dist-info}/WHEEL +0 -0
- {rasa_pro-3.12.0.dev4.dist-info → rasa_pro-3.12.0.dev6.dist-info}/entry_points.txt +0 -0
|
@@ -76,7 +76,7 @@ from rasa.shared.providers.embedding._langchain_embedding_client_adapter import
|
|
|
76
76
|
_LangchainEmbeddingClientAdapter,
|
|
77
77
|
)
|
|
78
78
|
from rasa.shared.providers.llm.llm_client import LLMClient
|
|
79
|
-
from rasa.shared.providers.llm.llm_response import LLMResponse
|
|
79
|
+
from rasa.shared.providers.llm.llm_response import LLMResponse, measure_llm_latency
|
|
80
80
|
from rasa.shared.utils.cli import print_error_and_exit
|
|
81
81
|
from rasa.shared.utils.health_check.embeddings_health_check_mixin import (
|
|
82
82
|
EmbeddingsHealthCheckMixin,
|
|
@@ -639,6 +639,7 @@ class EnterpriseSearchPolicy(LLMHealthCheckMixin, EmbeddingsHealthCheckMixin, Po
|
|
|
639
639
|
)
|
|
640
640
|
return prompt
|
|
641
641
|
|
|
642
|
+
@measure_llm_latency
|
|
642
643
|
async def _generate_llm_answer(
|
|
643
644
|
self, llm: LLMClient, prompt: Text
|
|
644
645
|
) -> Optional[LLMResponse]:
|
rasa/core/processor.py
CHANGED
|
@@ -205,6 +205,8 @@ class MessageProcessor:
|
|
|
205
205
|
tracker = await self.run_action_extract_slots(
|
|
206
206
|
message.output_channel, tracker
|
|
207
207
|
)
|
|
208
|
+
else:
|
|
209
|
+
tracker = await self.run_command_processor(tracker)
|
|
208
210
|
|
|
209
211
|
await self._run_prediction_loop(message.output_channel, tracker)
|
|
210
212
|
|
|
@@ -683,7 +685,7 @@ class MessageProcessor:
|
|
|
683
685
|
)
|
|
684
686
|
|
|
685
687
|
tracker = await self.run_action_extract_slots(output_channel, tracker)
|
|
686
|
-
|
|
688
|
+
tracker = await self.run_command_processor(tracker)
|
|
687
689
|
await self._run_prediction_loop(output_channel, tracker)
|
|
688
690
|
# save tracker state to continue conversation from this state
|
|
689
691
|
await self.save_tracker(tracker)
|
|
@@ -1091,8 +1093,6 @@ class MessageProcessor:
|
|
|
1091
1093
|
# keep taking actions decided by the policy until it chooses to 'listen'
|
|
1092
1094
|
should_predict_another_action = True
|
|
1093
1095
|
|
|
1094
|
-
tracker = await self.run_command_processor(tracker)
|
|
1095
|
-
|
|
1096
1096
|
# action loop. predicts actions until we hit action listen
|
|
1097
1097
|
while should_predict_another_action and self._should_handle_message(tracker):
|
|
1098
1098
|
# this actually just calls the policy's method by the same name
|
|
@@ -30,7 +30,7 @@ from rasa.shared.exceptions import FileIOException, ProviderClientAPIException
|
|
|
30
30
|
from rasa.shared.nlu.constants import FLOWS_IN_PROMPT
|
|
31
31
|
from rasa.shared.nlu.training_data.message import Message
|
|
32
32
|
from rasa.shared.nlu.training_data.training_data import TrainingData
|
|
33
|
-
from rasa.shared.providers.llm.llm_response import LLMResponse
|
|
33
|
+
from rasa.shared.providers.llm.llm_response import LLMResponse, measure_llm_latency
|
|
34
34
|
from rasa.shared.utils.health_check.llm_health_check_mixin import LLMHealthCheckMixin
|
|
35
35
|
from rasa.shared.utils.llm import (
|
|
36
36
|
allowed_values_for_slot,
|
|
@@ -303,6 +303,7 @@ class LLMBasedCommandGenerator(
|
|
|
303
303
|
)
|
|
304
304
|
return filtered_flows
|
|
305
305
|
|
|
306
|
+
@measure_llm_latency
|
|
306
307
|
async def invoke_llm(self, prompt: Text) -> Optional[LLMResponse]:
|
|
307
308
|
"""Use LLM to generate a response.
|
|
308
309
|
|
|
@@ -79,12 +79,16 @@ def calculate_command_metrics(
|
|
|
79
79
|
return metrics
|
|
80
80
|
|
|
81
81
|
|
|
82
|
+
def _get_command_name(command: Command) -> str:
|
|
83
|
+
return command.command().replace(" ", "_")
|
|
84
|
+
|
|
85
|
+
|
|
82
86
|
def _increase_total_count(
|
|
83
87
|
commands: List[Command],
|
|
84
88
|
metrics: Dict[str, CommandMetrics],
|
|
85
89
|
) -> None:
|
|
86
90
|
for command in commands:
|
|
87
|
-
metrics[command
|
|
91
|
+
metrics[_get_command_name(command)].total_count += 1
|
|
88
92
|
|
|
89
93
|
|
|
90
94
|
def _increase_tp(
|
|
@@ -92,7 +96,7 @@ def _increase_tp(
|
|
|
92
96
|
metrics: Dict[str, CommandMetrics],
|
|
93
97
|
) -> None:
|
|
94
98
|
for command in commands:
|
|
95
|
-
metrics[command
|
|
99
|
+
metrics[_get_command_name(command)].tp += 1
|
|
96
100
|
|
|
97
101
|
|
|
98
102
|
def _update_metrics_true_positive_and_false_negative(
|
|
@@ -101,7 +105,7 @@ def _update_metrics_true_positive_and_false_negative(
|
|
|
101
105
|
metrics: Dict[str, CommandMetrics],
|
|
102
106
|
) -> None:
|
|
103
107
|
for expected_command in expected_commands:
|
|
104
|
-
command_name = expected_command
|
|
108
|
+
command_name = _get_command_name(expected_command)
|
|
105
109
|
if is_command_present_in_list(expected_command, predicted_commands):
|
|
106
110
|
metrics[command_name].tp += 1
|
|
107
111
|
else:
|
|
@@ -115,4 +119,4 @@ def _update_metrics_false_positive(
|
|
|
115
119
|
) -> None:
|
|
116
120
|
for predicted_command in predicted_commands:
|
|
117
121
|
if not is_command_present_in_list(predicted_command, expected_commands):
|
|
118
|
-
metrics[predicted_command
|
|
122
|
+
metrics[_get_command_name(predicted_command)].fp += 1
|
|
@@ -27,6 +27,7 @@ OUTPUT_NUMBER_OF_FAILED_USER_UTTERANCES = "number_of_failed_user_utterances"
|
|
|
27
27
|
OUTPUT_COMMAND_METRICS = "command_metrics"
|
|
28
28
|
OUTPUT_NAMES_OF_FAILED_TESTS = "names_of_failed_tests"
|
|
29
29
|
OUTPUT_NAMES_OF_PASSED_TESTS = "names_of_passed_tests"
|
|
30
|
+
OUTPUT_LLM_COMMAND_GENERATOR_CONFIG = "llm_command_generator_config"
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class DialogueUnderstandingTestResult(BaseModel):
|
|
@@ -151,6 +152,7 @@ class DialogueUnderstandingTestSuiteResult:
|
|
|
151
152
|
self.names_of_failed_tests: List[str] = []
|
|
152
153
|
self.names_of_passed_tests: List[str] = []
|
|
153
154
|
self.failed_test_steps: List[FailedTestStep] = []
|
|
155
|
+
self.llm_config: Optional[Dict[str, Any]] = None
|
|
154
156
|
|
|
155
157
|
@classmethod
|
|
156
158
|
def from_results(
|
|
@@ -158,6 +160,7 @@ class DialogueUnderstandingTestSuiteResult:
|
|
|
158
160
|
failing_test_results: List[DialogueUnderstandingTestResult],
|
|
159
161
|
passing_test_results: List[DialogueUnderstandingTestResult],
|
|
160
162
|
command_metrics: Dict[str, "CommandMetrics"],
|
|
163
|
+
llm_config: Optional[Dict[str, Any]],
|
|
161
164
|
) -> "DialogueUnderstandingTestSuiteResult":
|
|
162
165
|
"""Create a DialogueUnderstandingTestSuiteResult object from the test results.
|
|
163
166
|
|
|
@@ -171,6 +174,7 @@ class DialogueUnderstandingTestSuiteResult:
|
|
|
171
174
|
representing the test cases that passed.
|
|
172
175
|
command_metrics: A dictionary of command-specific performance metrics, keyed
|
|
173
176
|
by command name.
|
|
177
|
+
llm_config: A dictionary containing the command generator configuration.
|
|
174
178
|
|
|
175
179
|
Returns:
|
|
176
180
|
A DialogueUnderstandingTestSuiteResult object containing aggregated test
|
|
@@ -202,6 +206,8 @@ class DialogueUnderstandingTestSuiteResult:
|
|
|
202
206
|
failing_test_results
|
|
203
207
|
)
|
|
204
208
|
|
|
209
|
+
instance.llm_config = llm_config
|
|
210
|
+
|
|
205
211
|
return instance
|
|
206
212
|
|
|
207
213
|
def _set_user_utterance_metrics(
|
|
@@ -297,4 +303,7 @@ class DialogueUnderstandingTestSuiteResult:
|
|
|
297
303
|
|
|
298
304
|
result_dict["failed_test_steps"] = failed_steps_list
|
|
299
305
|
|
|
306
|
+
if self.llm_config:
|
|
307
|
+
result_dict[OUTPUT_LLM_COMMAND_GENERATOR_CONFIG] = self.llm_config
|
|
308
|
+
|
|
300
309
|
return result_dict
|