So now let's run through the user input.
That is not part of the disallowed topic.
I'm asking a user input as how to play ping pong.
Let's execute this and see what happens.
So if you see here I have captured all the info logs and I get all the details about the execution of
the Nemo runtime.
Here you can see I got a response back.
You can play ping pong by hitting the ball with the paddle.
Should always try to hit the ball in a way that makes it difficult for other players to run it, or
to return it.
Here is all the details that happens on the runtime.
I have captured those details and I removed things or execution that was not important.
Let's go over the info logs and understand how Nemo executes the workflow on the back end.
So from the current runtime architecture diagram, we saw that it executes three main stages.
One is to generate canonical user message, decide next steps and execute them and generate bot utterances.
Each of the above stage can involve one or more calls to LM.
How does this happen?
So in our case let's analyze our case here that says generate canonical user message.
That's the first step that gets executed here.
Let's zoom in a little bit.
Utterance user action finished.
How to play ping pong.
That's the question that was asked at the very first phase of generating user input in our case here.
If you see this is the sample conversation that we provided in the Config.yml, the runtime picks up
this entire stack and it creates a conversation between user and the bot.
There's another flow here how the user talks.
This is nothing other than the calling specification that we have given for canonical user, canonical
form and the user utterances user.
How much do I have to boil pasta?
And then that is ask about cooking.
How do I rob a bank?
That is criminal activity and user ask about criminal activity.
All of this is the calling details that we have specified.
Now this is the conversation between the user and the bot.
So it combines the one that we had above.
It says User Express greeting bot express greeting which is here user express greeting.
Bot express greeting.
It replies ask about capabilities.
Then it appends the user input.
How to play ping pong.
This is then the entire stack is then passed to Lem here, which is in our case open air platform.
And then understanding the entire conversation, the Lem comes up with the canonical form as ask about
sport.
It's very important to understand this here is that this entire conversation is for the bot or Lem.
To understand that the format here ask about sport has to match, about ask about travel, ask about
cooking all the canonical forms.
It analyzes this, and it understands that how to play ping pong is a user utterance that falls under
canonical form.
Ask about sports.
Then the conversation goes on about the details about it.
How to play tennis.
Tennis is a sport into which four players hit the ball.
Then basketball and football.
This keeps on going, but the canonical form for user intent is derived as ask about sport.
Once that is determined, it moves on to the next step where it's the phase two for generating the next
step.
So the next step is like decide what the next steps are and execute them.
So here if you see we provide the prompt.
And then this is how the conversation between the user and the bot can go.
This is no different than sample conversation here without the user utterances.
These are very much just the canonical form that they're on time framework uses.
Then again the other canonical forms how is the bot?
This is how the bot thinks.
User express about grid about cooking kernel activity.
This is how the conversation is.
And it understands that this is how the flow would go.
And then the third one here is current conversation between the user and the bot is a mixture of or
a union of user express greeting bot respond to capabilities and you should ask about sports.
This was a canonical form that was generated by the Lem.
We add that or will not be.
The framework adds that to the to the existing conversation, and then passes on to the OpenAI DaVinci
model.
And the bot response.
Here is bot response for sports.
That's the next step that it generated for the flow.
So the first one is user ask about sport and then the next one is bot respond for sports.
This is after understanding how the interaction is between the user and the bot, and then it also goes
ahead and creates the own its own line of kolong flows that is printed here.
Then it moves on to the third phase for generating the bot message or generating the bot utterances.
This is again a very similar flow where we provide the prompt and then hear the conversation between
the user and the bot.
Is the config.yml file with the sample conversation?
Then this is the current conversation between the user and the bot.
Now it knows that it's a conversation that is ongoing between the bot and the user.
So here express greetings.
More express greetings capabilities.
User ask about capabilities.
But then here is the Kallang flow that that was generated.
One is the user's asking or the user utterance is how to play ping pong.
This is categorized as asking about sport.
And then bot responses for sport.
So it has to generate the response for sport here which is passed to the open AI platform.
And here we get the response back.
Ping pong is a sport played by two workforce people.
And the details that come back from the interaction.
So this is how the three stages of the Nemo guardrail runtime is executed behind the scenes.