I'm so happy we learned so much so far. But let's talk about how you deploy these crews. How you monitor these crews. What is the value that it can bring to for you, for your team, and for your company once they are actually deploying these things in a production environment. So in this lesson you will learn everything about how you actually bring the systems into production. Let's look into that. This lesson is super exciting because in this lesson you're going to learn how to generate, deploy and integrate crews. We're going to dive on how you can actually start a crew from the scratch. Up to this point, we we're talking about at reading this crew and how to run them into a Jupyter notebook. But now you're going to dive and build a crew from the get-go. So, so far, all you have to do is basically execute the different cells in the Jupyter notebook. But you're probably wonder, how do we come from this into actually start a brand new crew? Well, we offer a very simple CLI that allows you to start a new project with one single line, and that is crewai create crew. You just give it a project name and that will automatically create all the folder structures for your project. Let's talk about some of these files. You're going to have a Readme file with all the instructions. So feel free to check that up and find information about how you can start your dependencies, how you can run your code, where your environment variables will leave, and everything there is to know about your project. We will also have your classic agents and tasks Yaml files the same way that we have been building them on all the Jupyter notebooks so far. Feel free to inspect them and change them in order to create specific agents and tasks. You also have a folder for custom tools. You know any integration similar to the ones that we have done in other lessons. So if you have any internal integration or external integration, this is where you can build and put your code in order to call this APIs or connect to databases or any other systems out there. And then we have your crew file where all their agents and tasks are brought together. And you can basically create your agents by loading the agents file and the tasks file. It's very similar to the way that we have been doing on our Jupyter notebook so far. These is where you can import specific tools, custom or not, and give these tools to your agents. And then we have the main.py file. This is a file that is used only to run approved locally. Its through this file, that you can actually execute this crew train it and test it. And all the other features that we have seen so far. Now the first thing that you want to do is make sure they're installing your dependencies. And by that you're going to need to run crewai install.That will automatically download any dependencies that your project has to make sure that creates a virtual environment for you. So make sure to execute this before you start actually running and modifying your crew. Once that your have your dependencies installed, you're probably wondering how do I run my crew locally? What is the best way for me to develop and iterate over my tasks? Agents? And making sure that everything is working like a charm? Well, remember the main file that we just talked about? This main.py file, it's going to have a few functions that you really want to look into. You're going to have a run function. so whenever you run "crewairun" this is the function that is going to be executed. This is usually very boilerplate. And you don't need to change much other than maybe modify the inputs for your crew. You also have similar functions for training, replay and test. And you can use all those different functions using our CLI. But when you crewAI train, crewAI replay or crewAI test. The main command that you're going to be using is crewAI run. That is the command that actually executes your crew for you. But now that you can run this crew locally and you can modify your agents and your tasks, creating the custom tools to integrate with this other internal and external systems. How do you go about bringing this into production, so that you can actually talk with other services and build things that you can use? And that's where we need to talk about deploying our crews and how you bring them into a production environment. Well, we already know that you have everything executing on your environment. So in order for you to bring this crew into production crewAI, I also gives you crewAI plus. And you can use this for free. All you going to do is run crewAI deploy. That'll allow you to deploy your agents into the cloud. What happens is pretty magical. If you think about your crew, you already know that you have your agents, your tasks and tools, and you already know that you have a series of inputs that will be interpolated into this agents and tasks in order for them to get work done. With crewAI deploy, it automatically turns your crew into an API. So now you can actually call an actual endpoint, and you can pass your inputs sending a Post request to that end point. These will allow you to integrate your crews with anything that you want out there. So let's talk about integrating crews and how you can share it with others. Now that you have a production crew that is actually an API that you can call, you can integrate it with any systems out there. So you can call it from Slack, you can call it from HubSpot, you can call it from Zapier, or you can call it from any other system that you might have. And then the funniest part is that this crew can actually call all your systems back. Either by using a pooling feature or webhooks that can call back any URL or applications that you want. This is the endpoint that you're going to call when you have your API. It's basically a kickoff end point where you can send so much detail to it. You can send the inputs, the inputs that your crew actually expect. So whatever it is in this case we're just passing one single endpoint and that is topic. And this topic is going to be interpolated throughout the agents and tasks because that was our use case. You can also pass metadata in case you want to get any information back. And then you can set specific webhooks for whenever a task is completed, for whenever a step is completed, or from whenever a crew is completed. That gives you a lot of granularity on how often you are going to have your crew call any other system that you have, allowing you to do things kind of like a timeline or any other kind of UI that you might require in order to show progress of our crew. And integrate this with any system out there. And we don't stop here. You have so many other endpoints. You also have an inputs endpoint in a status endpoint that you can use in order to pull information on how your crew is performing and what your agents are doing. This unlocks so many opportunities and it's so exciting because now you're not only running these crews locally, you can actually integrate that with any other systems that you have out there. You can share with your peers. You can integrate that with your existing company. You can integrate that with another software. You can hook it up with messaging systems, whatever you want. This allows you to bring your agents where they're going to be the most valuable. And we are seeing companies do this throughout the internet. Now let's jump into the Jupyter notebook where you're going to create your first crew from the scratch. We're going to create a crew, install the dependencies, and executed ourselves. And you're going to be able to play around with it and change the agents and the tasks in any way that you would like. I'll you see there in the second.