 Hi, William. Hi, Fatima. What's up? I have something that I need your help with. I have this data set from all over the community with different posts. I'd love to get an overview of the sentiment associated with each post so I can better understand how the community is feeling. Got any ideas? Sure. Let me show you a project that I have been working on. And we can prototype a solution for your task. So this application uses a Hogan Face model integrated with a streamlit user interface. You can upload a CSV file containing text comments. What the application will do is to classify the sentiment associated with each one of the comments. I think we might be able to adapt this solution for your specific task. However, I currently have it running only on my local machine. And I will require your help to deploy it online. What do you think? This looks great. I can help build a delivery pipeline for deployment. OK. So I will push the prototype code to a GitLab project. And then we can work together on it. So it's done. You can take it from here. Great. Thank you. We have this open issue about automating our apps deployment. So I'll start there. I can create a merge request directly from the issue and then open the merge request in GitLab Web IDE. There I can add our initial GitLab CI YAML file. This file is just a baseline to get us started. I'll push this YAML file up from the Web IDE and we'll see what happens to the MR. Looks like the Docker build is failing. Could you check why? OK. Let me open the MR and check the build log. I see the error here, but I don't understand. By the way, Fatima, have you seen maybe we can give you a chance to this root cause analysis AI feature? Let's give it a try. This will help me to analyze the log and probably suggest a solution. What does it say? Oh, I see. Yeah. Copy-paste error. When I was creating the Docker file. Let me just copy this and I will add it to the MR and we can retry the build. I can do it from here. I will add this suggested fix to the Docker file. Yeah, here it is. See the error? OK. I will commit the changes unless test again the build. It should work this time. And here we go. The pipeline is running again and it works. Cool. Root cause analysis saved us some time. Oh, nice. I'm going to go back to RCI YAML and enable all of the CI jobs so we can have a full run through. Once that's committed, I'm going to switch over to the MR and wait for that build to pass. Yay, the build has passed. So now we can check out the review app that we've deployed. GitLab review apps allows us to test our application early in an environment that was created just for this MR. Hmm, William, can you take a look into this error? It looks like our app can't find the config file. Maybe you can add a function to load our config file correctly. Sure, let me do that. I also think this function is a perfect candidate for GitLab Duo code suggestions. I will just prompt the model with a comment and it should generate the Python function for us. Yeah, here it is. I think this looks great. I will accept the suggestion and commit the changes to the MR. OK, the pipeline is running again. And once it completes, we can proceed to test the application using review apps. So it has finished. And here, let me check it. You can see this is our review environment. Let me test it with this DOMI file that I have in my computer. And now it works. It's able to properly load the file, and now it's analyzing test. Cool. We saved time using code suggestions. It was very quick. OK, but Fatima, do you know what we are missing? I feel like we're missing a lot of things, but what's something that machine learning applications need? Machine learning applications can also benefit from security. Do you know how to add security scanners? Let's say SAST. Yes, I remember that SAST scanners are added via an include in a YAML file, but I don't remember the exact include. Why don't we ask DuoChat, our AI helper? DuoChat replies with an example and the include template. We can add that to our CI YAML and push up those changes to the MR. Normally, I could look up this information in documentation, but it's a lot faster than just SAST DuoChat, and you don't have to lose contacts by switching windows and clicking through links. What do you think, William? This is very helpful. With this, we make sure to reduce the likelihood of introducing security vulnerabilities. So I will give my approval, merge these changes, and this will trigger our pipeline to production. Let's check it out. Here is the production pipeline. It builds the application, tests for security vulnerabilities, and when ready, deploys the Kubernetes cluster. Now it's time for me to try this application with my own data set. I have this data set of comments from across the community from the past couple of weeks. It's a pretty small data set, but I'd love to see how the tool analyzes these comments. I'll upload my data set to the tool and wait for it to analyze. And it works. As you can see, it has categorized each comment that I provided as positive, neutral, or negative sentiment and has done so correctly. This is so great. William, now that this application works and is deployed, could you tell me a little bit about how it was put together? Sure. This prototype is simple and scalable. A frontend built with stringlet and an option to add CSV files. Here, the frontend consumes a model endpoint, sending the text comments written in natural language to a hogging phase pretrained model for sentiment analysis. Wow, thank you for explaining this. This application is really cool. Do you think other people might be interested in using it? Yeah, sure. Let's make this break available for anyone trying hogging phase on a stringlet with GitLab.