So you've got the ACP server up and running, but how do you actually make a call to it or use it? Well, this is where the ACP client comes in. Using the client, we're able to create a standardized set of calls to that ACP server. If we had multiple agents running on that server, we can hit all of them. And if we add different servers, well, we can use a similar style structure to call out to that ACP server, which we'll do a little bit later. But for now, let's go and define our ACP client and make a call out to the ACP server that we've created. So we've come to the time actually making a call out to our ACP server. Well, first up, we probably want to double check that our server is still running. So we're going to run through the exact same method that we did to get our server up and running. We're going to open up the terminal. And then what we're going to do is we're going to render terminal one exactly as we did previously. So that way we can just double check to see whether or not a server is up and running. Because remember, if you're running this inside of the DeepLearning.AI environment, it's going to stay up for 120 minutes. If you're doing it locally, runs for as long as you've got the server up and running or the Python script running. So if we go and run this, we can take a look to see what's happening with our server. And take a look, looks like our server is still up and running. You can see it right over there. Now what we want to do is begin making calls to our ACP server. And the nice thing about this is that you can have a standardized client, or eventually you're going to be able to integrate into different systems using a similar style pattern. For now, what we're going to do is we're going to make sure that we can nest Asyncio calls or asyncIO calls. So we're going to import nest asyncIO and apply that to our environment. This allows us to run the ACP client from the Jupyter notebook environment. And then what we're going to do is we're going to begin building up our client. Now, within the ACP SDK you've got a client available. And think of this like a way to just communicate with our ACP endpoint. We're also going to bring in async IO to be able to make asynchronous calls. And we're also going to import colorama and specifically the Fore library. This just makes it so that you can output stuff. Using color terminal formatting and just looks a little bit nicer. You're able to see things a little bit more clearly. Then what we're going to do is we're going to create an asynchronous function. So we're going to create a function called example. And that's going to return nothing. And then we're going to connect to our client. And our client is going to point to the URL where ACP server is running. So right now we're going to set our base URL and set it equal to localhost 8001. Because if we scroll it up you can see that it's running there. Later on, if you've got different servers running and when we begin making sequential calls, we'll have to connect to two different clients because we're connecting to different servers. And even though we've only put one agent on this particular server, you could have multiple. And I'm going to show you how you might call that two different agents on a single server. So, we're going to define that as a client. And then what we're going to do is we are going to run asynchronous call to that particular server. And we're going to target the agent that we defined. Because remember the agent that we defined was our policy agent. The name of the function when you define the ACP server is going to be the name of the agent when it comes to calling it with the client. And I'll show you what I mean in a second. So we're going to create a variable called run. And this is going to await a synchronous call. And then we're going to target our policy agent. Remember when we defined our agent, in the ACP server, we name the function. So we typed in DEF policy agent. So policy agent was the name of the function. That then becomes the name of the agent when we use ACP. There's one last thing that we need to pass through to our client in order to run a prompt or trigger prompt. And the cool thing is that when you go and run this, you'll actually see the call kick off in our ACP server up here. So inside of the input argument we're able to pass through our prompt. I'm going to pass through what is the waiting period for rehabilitation. Remember we've asked this previously, but we had it hardcoded inside of our agent. So all things holding equal. This input should then be passed through to us agent running on the ACP server. So we should be able to see that, pass through it and run up that. Now we're also going to print it out back into our Jupyter notebook. So that way we can see it a little bit more easily. And to do that we're going to print and we're going to use the colorama yellow color. And then we're going to unpack the output from our client. So we're going to get the first value from our output. We're going to grab the first part. This is a similar way to how we actually unpacked our input prompt when we went in to find our server. And then we're going to grab the content. And then we're also going to reset the terminal coloring using colorama over there. So this should really just be our client now done. Now, if you wanted to you could go and change the prompt here to something different. Try running a different prompt. See how the ACP server performs. Remember, it's going to be limited to what we've actually put inside of our vector database, but you might try uploading different documents and try different inputs and different prompts as well. And eventually, we're going to link these up to make sequential calls to multiple servers and connect multiple agents together. Okay. So, if we run that cell that looks like we don't have any issues there, and then we're going to use asyncIO and the dot run method and then run our function over here which is called example. So if we go and run this now, as soon as we trigger this, we'll be able to see whether or not it's running up here in our ACP server. So if I go and run this now, take a look. Execution has started. You can see we've got our prompt passed through. What is the waiting period for rehabilitation? Looks like it's all running. We're getting all of our context and our prompt and all things holding equal. We should get a completion. Take a look. The waiting period for rehabilitation in the insurance policy is two months. We should get this printed out at here as well. So take a look. We've now made a call to our ACP server using the ACP client.