Joksan Flores • 00:05
Hi everybody, my name is Joksan Flores, I am a Senior Solutions Engineer here at Itential, and today I am going to demonstrate how to leverage AI to expose your network service catalog in the iAttentional platform. One of the things that we focus on here at Attentional is on providing various mechanisms for our automation designers and operators to expose their services to the outside world. One of them is through the operator portal or operations manager in our platform where the users can create manual API and schedule triggers to launch their automation straight from the platform. Another one of those is our ServiceNow application that allows users to trigger automation straight from ServiceNow without having to leave the ServiceNow application itself. And another one is we allow users to create their own APIs for their own automations, and that gives us the ability to expose those to systems such as Rasa that can do natural language processing on some of the user queries and launch automation straight from there. So today we’re gonna be showcasing how we can use a framework like Rasa to execute actions against the platform to obtain some operational data from the platform as well as trigger some simple automations. We have an automation that is designed to do some simple interface troubleshooting on an iOS XE device.
Joksan Flores • 01:36
it will go and execute some commands on the device, it will tell us that the interface has some errors, and it will take a basic action just as resetting an interface. Keep in mind that the automation can be designed to do anything. The whole idea here is to showcase how we can use natural language processing, in this case with Rasa, or potentially an LLM with function calling to trigger jobs within the attention platform using the Northbound API. Let’s get into it. Now here, what we have is I have pre-logged in into our platform, and I am currently in the operational portal, and I am in the active jobs section. What I want to showcase is here, how we will see how jobs will start to get triggered here as we go along. First thing, I would like to show how we can use something like Rasa to expose certain actions from the platform via the Northbound API.
Joksan Flores • 02:36
I will start with something very simple first, and I will ask Rasa, what things can you do? And of course, we’ve got to have a chat bot, that’s part of the whole thing. So with this here, Rasa will actually let me know what capability it has. And keep in mind that the whole idea here is we use a leveraged natural language processing capability to use our, you know, in our own words, ask it questions and trigger certain things. And that’s the ability that this has to give the user a lot of control over how to execute things. So Rasa says I can assist with various automations, chats, functions, including checking system health, monitoring application, retrieving job status, and executing, you know, the simple automation like I was talking about for troubleshooting a port. So let’s do a basic one.
Joksan Flores • 03:27
Let’s check on some application status. So we’re going to say check the application status for app. Let’s do JST. As you can see, this gives access to, you know, Rasa will process the query that I’m prompting the chatbot for and will actually figure out that I am trying to check the health for a particular application. There’s already a program action in the backend that gives access to the Northbound API of the platform, that’s an authenticated call, and it will go ahead and fetch the status for that particular application, says the application is running, and the uptime is 82 days, and this is the program output for that. So it lets me do a lot of things, accessing the Northbound API, which gives a lot of functionality, and at the same time gives me control over what I expose to the user, right? These are the four functions that I have at the moment, and that’s all it’ll be able to do.
Joksan Flores • 04:28
Let’s try another one, uncheck health for adapter, Azure. So I have an adapter that I know for a fact is called Azure, so I will just ask it, check the health, it already has a function for that, check the health, health for the adapter, Azure is running. So this gives me a lot of flexibility, especially when you can express those things in natural language. And now let’s get to the one that’s… the one that we want to showcase, which is executing the automation. So let’s do trigger, automation, router, port, tshoot, port device, ioscsr-aws-1, on interface, gigabit, Ethernet 1.2 and set auto-remediate to true.
Joksan Flores • 05:22
Keep in mind that some of the things that I’m doing here, I have to spell properly, namely device names, those are keywords that the model needs to grab from the prompt. The model won’t be able to figure out initially what the inventory is and go match that to a device. I got to spell those properly, especially that, the interface name, and then some of the other parameters. But it’ll make some educated guesses. For example, set auto-remediate to true, in the back-end, the code has to figure out, okay, what variables does that map to? There’s actually a variable that’s called something similar to this. But the code has to reason through that, and that’s the value of that natural language layer, and being able to translate that into an actual API call into the system.
Joksan Flores • 06:11
Now, without further ado, let’s go ahead and send that. Now, this is very quickly matched it into this automation. It actually launched a job in the platform. I can see here what’s happening in the background. What it actually is doing is it went ahead and actually launched this workflow which goes and executes some interface checks. It will find that it has some interface errors, namely some counters. If it matches some errors and it finds that the auto-remediate was set to yes, it’ll actually take this path on the left.
Joksan Flores • 06:46
It actually built to remediate commands, which in this case is just a simple bouncing of the interface executing shut, no shut. It’ll go ahead and do that. After that, it’ll craft a response back to the system, and we’ll get that response back here. Automation router port t-shoot, this is our job ID, which is less meaningful, but it’s actually right here, A5CE. Yeah, so that matches. The job status is complete, and it gives us a message back, which is what was crafted by the automation saying, the interface on this device shows domain errors, potential platform reset the interface. Now,
Joksan Flores • 07:25
Keep in mind that the important thing here is that we’re able to actually launch this job from the NLP layer and in collaboration with the platform, we can do a lot of powerful stuff, right? I can leverage my ability to push CLI to devices, have those command templates that allow me to check for errors very quickly and actually take some action and craft a response back that will make sense to the user. So I don’t have to go and run and reprogram all that stuff into the actual model or into a custom action. And that gives these two things combined a lot of power over what we’re trying to showcase here. That’s the end of the demo. Thank you for tuning in.