-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various changes #12408
Various changes #12408
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dropping by just as a curiosity, left two passing comments 😄 👍🏻
docs/docs/llms/llm-intentless.mdx
Outdated
### End-to-End stories | ||
|
||
As part of the beta, we're also releasing a beta version of a new End-To-End | ||
testing framework. The `rasa test e2e` command allows you to test your bot | ||
end-to-end, i.e. from the user's perspective. You can use it to test your bot in | ||
a variety of ways, including testing the `IntentlessPolicy`. | ||
|
||
To use the new testing framework, you need to define a set of test cases in a | ||
test folder, e.g. `tests/e2e_test_stories.yml`. The test cases are defined in a | ||
similar format as stories are, but contain the user's messages and the bot's | ||
responses. Here's an example: | ||
|
||
```yaml title="tests/e2e_test_stories.yml" | ||
test_cases: | ||
- test_case: transfer charge | ||
steps: | ||
- user: how can I send money without getting charged? | ||
- utter: utter_faq_0 | ||
- user: not zelle. a normal transfer | ||
- utter: utter_faq_7 | ||
``` | ||
|
||
**Please ensure all your test stories have unique names!** After setting the | ||
beta feature flag for E2E testing in your current shell with | ||
`export RASA_PRO_BETA_E2E=true`, you can run the tests with | ||
`rasa test e2e -f tests/e2e_test_stories.yml` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should remove this section since there is a different part of the docs dedicated to end-to-end testing.
@@ -719,12 +714,18 @@ async def retrieve_tracker(request: Request, conversation_id: Text) -> HTTPRespo | |||
"""Get a dump of a conversation's tracker including its events.""" | |||
verbosity = event_verbosity_parameter(request, EventVerbosity.AFTER_RESTART) | |||
until_time = rasa.utils.endpoints.float_arg(request, "until") | |||
|
|||
tracker = await app.ctx.agent.processor.fetch_full_tracker_with_initial_session( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why was fetch_full_tracker_with_initial_session
removed? I added this method in order to fix a bug reported for the HTTP API 🤔 Only concerned that zombie bugs would reappear.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it is still there, but there is a paraemeter that allows you not to do it. if this is always done, this creates a new tracker in cases you are fetching a non existant conversation and sometimes you don't want to create a tracker for that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yes I see the start_session
parameter, but in the else branch get_tracker
is used which in turn uses tracker_store.get_or_create_tracker
while fetch_full_tracker
was using tracker_store.get_or_create_full_tracker
🤔
thanks a lot for stopping by 🙂 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this file is not under tests/
, is this intended?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this file is not under the root tests/
folder, is this intended?
rasa/cli/initial_project/domain.yml
Outdated
@@ -20,6 +20,10 @@ responses: | |||
utter_did_that_help: | |||
- text: "Did that help you?" | |||
|
|||
utter_flow_continue_interrupted: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@twerkmeister should this be here given that the same is in the default flows file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had a look through the Flows modules primarily and left a few exploratory questions ahead of the call tomorrow morning 🙏🏻
rasa/core/actions/flows.py
Outdated
logger = logging.getLogger(__name__) | ||
|
||
|
||
class FlowTriggerAction(action.Action): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this action executing the entire of a Flow or only a Flow Step?
rasa/core/actions/flows.py
Outdated
flow_action_name: Name of the flow. | ||
""" | ||
super().__init__() | ||
self._flow_name = flow_action_name[len(FLOW_PREFIX) :] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this mean that a prefix gets added to all flow names defined in yaml?
rasa/core/actions/flows.py
Outdated
] | ||
|
||
events: List[Event] = [ | ||
SlotSet(FLOW_STACK_SLOT, stack.as_dict()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is this default slot used? Can it get updated with every new flow that gets predicted? What happens to this slot when flows are interlinked?
rasa/core/policies/flow_policy.py
Outdated
predicted_action = None | ||
|
||
# if detector predicted an action, we don't want to predict a flow | ||
if predicted_action is not None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When could predicted_action
be something else but None?
|
||
|
||
@dataclass | ||
class Flow: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've seen mentioned meta-flows: what are these and do these come out of the box if flows are enabled, or do users need to write them according to prescriptive instructions?
available_steps = {step.id for step in self.steps} | ||
for step in self.steps: | ||
for link in step.next.links: | ||
if link.target not in available_steps: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is a link target?
self.slots.append( | ||
AnySlot(flow_slot, mappings=[], influence_conversation=False) | ||
) | ||
else: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When would this occur? If it's overridden in the domain.yml already?
…docs-improvements-llms
Docs improvements
docs/docs/flows.mdx
Outdated
Here are some examples of conditions that demonstrate the use of different constructs. | ||
|
||
```yaml | ||
# Simple conditions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like we should move this to Writing Conditions
section.
…builtin slots (#12917) * filter out dialogue stack slot set events from custom actions, mark builtin slots, add unit tests * add comment
moved existing examples into subfolder
Fix generator test folder name
…mmandGenerator Eng 472 component wrap up llm command generator
…appings Tutorial template remove slot mappings
* implement changes + unit test * handle edge case
* Remove EntryPromptFlowStep class. * remove entry_prompt from yaml schema
* Catch KeyError when running the graph. * increase minimum compatibile version to 3.7.0b3 * update model version in test * use constant for minimal compatible version * add changelog * remove changelog as it is not needed * Update error message.
* moved imports of langchain * improve imports
…tion-refactor-tests-review wrap up and tests for flow trigger action
…t values - [ENG 607] (#12942) * modify prompt to include possible categorical slot values
@tmbo could you please clarify why this pr is closed? are you still planning to merge flows? |
Proposed changes:
Feel free to fork of this branch to add additional functionality. Let's try to keep the history of this branch clean, as in one commit per feature. Please make sure that tests are passing for the merged changes.
TODO:
Status (please check what you already did):
black
(please check Readme for instructions)