Melissa McKay 0:09
I love this topic. So how are we going to tackle the difficulties of deployment? But how is AI going to make this easy for us?
Brian Benz 0:18
Oh, gosh, I’ll show you. First of all, for those of you who are passionate about YAML editing, and I know there’s a lot of out there, that, you know, they, you might be disappointed at how well, the new AI tools actually create the Yamo for you. And that’s some of the things I’m going to demo today. Awesome. Demo a couple of other things as well, you know, translating between languages, translating between scripting, formats, and things like that. Cool. Yeah. I’m sorry, gogo ahead.
Melissa McKay 0:56
I was just gonna say we’ve collaborated on demos before, I am really interested to see what you have cooked up for us. For sure.
Brian Benz 1:02
Thanks. Yeah, it’s great to see you again. It’s been a while. Yeah, we go way back. So different things we’ve been working on over the years. So that’s great. Yeah, should I get started or go ahead? All right. Okay. So I think we have about 30 minutes, and then we have 10 minutes for questions. So what I’m gonna go over today is basically, how you actually create and deploy Kubernetes. And I’m going to use AI to actually generate the Kubernetes deployment itself. And I’ll show you how to do that in just a sec. So what we’re looking at here on the screen, this is the Azure portal. So I worked for Microsoft and the cloud advocate. And I’m going to show you Azure today. But a lot of things I’m going to show you here are applicable to any cloud platform, or any where you’re deploying to Kubernetes. But anyway, this is the cloud portal that we have for Azure AD portal.azure.com. If you aren’t familiar with it, you can sign up for a free trial at portal azure.com. And I’m all of the code I’m going to show you today. By the way, if anyone wants to follow along at home is at there’s a GitHub site that I can show you. It’s right there. Just put it in the chat, but should show up in the chat. But basically, it’s github.com/bbenz/cfe-dev/haunted-DevOps. And I’ve got some scripts in there that are going to be using. So if you want to follow along with that, it’s okay. So there’s two ways you can create Kubernetes in Azure, I can go through the portal here, and I can just go click here and do it manually through the portal by pointing and clicking. If I go into containers, I can go create a Kubernetes service. And it’ll create a Kubernetes service, I can connect a I can connect a container registry to that as well, because you need a container registry to deploy things in general. Or I can use Docker hub to deploy as well. And I’m gonna show you how to do it with Docker Hub today. And it’ll actually generate what you see here. So this square here is a it’s a resource group that we have in Azure. And the resource group here has a Kubernetes service that I already pre created. It has a container registry that I already pre created. And it’s got some monitoring Grafana and some other things that you can use to track your Kubernetes deployments. On this instance, a little bit about the Kubernetes service we have you can deploy to Kubernetes on virtual machines on Azure as well, of course, Linux or Windows. But Kubernetes itself can be run using our Azure Kubernetes service. And basically what that does is take the control plane, the management plane, and manage that for you. So automatic upgrades, and management of your nodes. And all of the things you see here for monitoring, et cetera, et cetera, are built in. The nice thing about that is, you don’t have to manage it yourself. And you don’t have to worry about upgrades and things like that. It’ll actually take care of them for you all you need to focus on your nodes and your pods and ingress and things like that. It’s very handy. And there’s no extra charge aside from the storage that you use, we don’t charge for the service itself. It’s just the additional offering that we have. So anyway, that’s enough about our Azure Kubernetes service. So there’s a way to do it through the portal. There’s also a way to do it through the Azure CLI. You can also do it through TerraForm I’m gonna say some cool stuff about that later as well.
Brian Benz 4:59
But here’s My, my clone of the repo that I showed you earlier, on GitHub. And basically, this is the readme and I’m gonna go through here, and we’re gonna do a few things in our steps. And I’m going to show you how AI can help you do this as well. So first of all, you set up an environment, you create an Azure Kubernetes service, you create an Azure Container Registry, and you deploy Cassandra to the Azure Kubernetes service, there’s a couple of prerequisites, you have to have a Azure account, and you have to install the Azure CLI. The first thing we do just set up some environment variables for our resource group, for our Azure Container Registry, and for the source image that you’re going to use for the virtual machine that runs your container registry, I’m sorry, your container Kubernetes service, not the data registry. Then you create a resource group use these using the Azure CLI. You create an Azure Kubernetes service. And like I say, you can do this through the portal or through the script. And AZ AKs. Create is the resource group you set up, you name it, you set up a location, you set up the VM size that you want a virtual machine. And by the way, we have both x86 and arm 64 images that you can use for your community service. So if you want to use arm, it’s a little bit more power a little bit less power hungry, a little bit more sustainable, that’s a cool option to do as well. We have ampere based arm 64 Ultra images pre made that you can use for Kubernetes, as well as any virtual machines or anything like that, we’re just going to set up one node count and we’re going to generate SSH keys. And that allows us to get our credentials easier, easier than creating a manual key. So the next thing we do is AZ AKs, install the CLI and then installs the coop control CLI into our Azure AKs service. And then you get your credentials, which I’ve already done. By the way, I’m looking at this in Visual Studio code. And that’s going to be pertinent in a minute. Visual Studio code is a free download for those that you might not know, if you just search for Visual Studio code, you’ll see that or VS code. Then you set up your credentials, AZ AKs, get credentials, and it’s going to set up the credentials, you can use coop control directly into your newly created AKs cluster, or you’ve done that as well. And then you can create a as your container registry. Like I said before, you can use Docker Hub, or you can use a container registry. And the Container Registry here is in this case, a private registry. And you enable admin and that means that you have a username and password for this, then you can log into that container registry do that so you have access to it when you’re actually going to start pushing things to it. Next thing up is you attach the Azure Container Registry to the Azure Kubernetes service using this command, you just AZ AKS update. And this is the pertinent part of that attach ACR. And so that’s going to connect the ACR to the AKS. So they can authenticate and work with each other.
Brian Benz 8:12
The next thing we want to do is we want to grab Docker, sorry, we want to use Docker to grab Cassandra, we’re going to pull Cassandra in using just the Docker pull command, then you’re going to tag it and you’re going to push it up to your container registry. This is optional. Also, if you want to deploy from Docker Hub, you can just deploy like this. Now, this is where we get into the AI part. So I want to skip over that stuff really, really quickly. If if it’s not obvious, everyone could check out the script and the portal, there’s lots of instructions on how to set that up. That’s the basics. Now let’s get into the AI stuff. The AI stuff itself, if you notice over here, in my repo, I don’t have any Yamo files or anything and you need a Yamo file to actually deploy this to Kubernetes. So for that, I want to introduce you to something called copilot chat. So those of you who are familiar with copilot if you’re not, it’s basically autocomplete that is very, very, very enhanced. You can create whole pieces of code, which is nice. You can create whole classes. it’ll generate code for you, basically. But another thing that you can do now is co pilot chat. So everybody’s familiar with chat GPT they might have, you might have heard of it. But if you haven’t looked it up, I’m pretty sure you are. Those of you who have seen it know that there’s sort of a chat function you can ask questions of chat CBT and chat UBT can actually reply with answers for things you’re looking for. Well, copilot has now into grated chat into Visual Studio code. And there’s a few other IDE you can use as well. But we’re gonna focus on Visual Studio code today. And there’s several slash functions that you can use. Now those of you who might have been around for a long time like myself, the slash books is a kind of interesting for me. I am old enough to remember when Lotus 123 and XL used to have a slash menu, actually, a lot of applications use have a slash menu. And this kind of brings back a lot of memories. For those. For those of you out there who might have been familiar with those, it was just a way of basically hitting slash, and it would bring up a menu with a bunch of different options and look at this, we’ve got a different setup for the same thing. Let me zoom in a little bit so folks can see this. So there’s several slash functions that you can use.
Brian Benz 10:59
That will help you work with your code. There’s help, there’s tests, simplify, fix, explain, vs. Code, Create Notebook, Create Workspace and clear. I’m going to go with a couple of these today, which is basically explain and why I’ve never used fixed before my code always works it never anyway, and simplify the course, Miko is always supposed to be. And I’m sure most of you out there, they say. But these are great tools, if you have some code that you just can’t figure out is do slash, explain slash, fix, slash simplify. And it actually brings up some pretty good suggestions. But today, we’re just gonna work on the code generation. And what I can do is just grab Oh, one of the things I should mention that this as an advantage of a chat, GBT is context. So it knows right now that I’m in a certain file, it knows that my cursor is on this line. And I can actually select things and or ask about these other open items that I have here as well. But right now it knows that the context is here. So without much context, what I’m going to do is I’m just going to say, how do I deploy this to?
Brian Benz 12:25
That’s looking at seeing what I’m working on right now. Okay, so deploy the Docker images to Kubernetes. As you see, now, this is why I like doing AI demos, it doesn’t always, it’s basically kind of guessing what I want to do, but it’s not really getting it. So let’s try this select that is sometimes you get a different result, depending on what you do. Ai these days can be very capricious. And let me say a little bit about experience. So everyone, there’s been a lot of talk about is AI going to replace developers. It might, here’s, here’s my, my take on that. I don’t think it’s gonna replace developers. But it will help junior developers learn, and it will help senior developers be more productive. And the reason for that is I just need to know what’s real and what’s not. So, you know, you ask a question a dozen times, you can get a dozen different answers from AI. And when you do that, you have to know what the right answer is. You have to have some experience and or you’re going to learn which one of those things is the right answer, if you don’t know. So that’s my take on AI stuck in to, it’s really going to help but it’s not going to replace developers or admins or anything like that. So let’s ask again
Brian Benz 13:48
How do I deploy this to Kubernetes?
Brian Benz 13:55
Last time, I could just select the line and it figured out what I was trying to do this time, it basically took a shot at it. Okay, so this time it knows Oh, okay. You’re doing a Cassandra. And you want to deploy Cassandra? So you create a file named deployment? Yamo. Yeah, the following content and API version. It’s a deployment and then Cassandra deployment. It’s using the Cassandra app label Cassandra. It’s going to use the Cassandra latest image, and it’s going to set up a container port of 9042. That’s all right. Okay, so I need to know that this is correct, right? If I do this, then what I can do is I can insert into new file. And now I can name this file. And I’ve got a specific thing. I want to name it because I already have the prompt setup down here. Cassandra deployment Yamo. And I’ll show you why I’m doing that in a second.
Brian Benz 14:58
File, Save it As. And it’s gonna go to GitHub.
Speaker 3 15:08
Send a deployment with YAML. Okay. And then it said what did it say to do? Okay, so you can say kube control apply deployment YAML? Let’s do that. So bring this down here.
Brian Benz 15:23
It’s in Windows subsystem for Linux. Oh, wait.
Brian Benz 15:36
All right. So it’s created a deployment for me. Um, great. All right. So it’s deployed that. So now I can do things like, it’s gonna take a second to run up to start up. But basically, I can do a coop control, get pods. Okay. So there it is. It’s running, I should have showed you this before. But there was absolutely nothing on this Kubernetes cluster. So actually took a big, big chance doing a live demo with AI. But basically, you can see how easy it is to generate that deployment. And that Yamo file. But the other thing we want to do is, and this is once again, we’re experienced comes in, right, so get services.
Brian Benz 16:30
So we have one service called Kubernetes. It’s a cluster to cluster IP. So we need to add a service, right? So the deployments there, we got three pods. That’s nice. It’s exactly what it told us it would deploy, and it defaulted to three replicas. So it’s there. But how do you actually access this thing? Now there’s two options you can use as a back end database. And you can build an application that runs on top of this, and connects to the database. So you don’t need access to the database directly. But let’s say you want to access Cassandra from HTTP, well, you need a Kubernetes service for that. So let’s ask again, how would I it keeps the context? I hope.
Brian Benz 17:18
deploy aservice for this.
Speaker 3 17:25
Okay, so deploy servicing, Cassandra. All right. So deploy a service for your Cassandra deployment in Kubernetes, you would typically create a Kubernetes service configuration file. Yes. Okay. And it creates the network rules for exposing application to other applications or external users. In this case, we’re going to create this service, we’re going to once again, insert into new file. And we’re going to name this one Cassandra service YAML.
Brian Benz 17:59
I’ll save as…save. Okay, so now we’ve got a Cassandra service YAML, you go back to the readme, you can say kube control, create. And it’s actually going to create a service. So the service is now created. So then I can say, let’s do this one again. So we got our pods here now. Got a pods running three pods. And then we can say, services. So now we have Cassandra running, and we’ve got a cluster IP address for that on port 9042. So you can connect to this app from an application or internally and everything should work. Okay, so that’s basically what we have to set that up. Now you see how easy that was. So this is how AI really helps you when you’re looking at deploying things. So we have a Cassandra service. We have a Cassandra deployments, and everything’s up and running. So what are some of the other things you can do with this? So one of the things I was going to show you as well, this is all in the Azure CLI, which is very specific to Azure. But what if you want to have sort of a multi cloud deployment for this? The Kubernetes infra.az. CLI is the actual command that I’ve created, that edits and builds this for you. The it basically goes through by the way, the little bit of trivia let a lot of folks know this but the AZ CLI extension can be used in Visual Studio Code In other formats for creating resources and things like that, that are going to be used in an Azure CLI. And it helps with type ahead and with other things as well. So AZ AKs creates the resource group itself, I can convert this for example, I can say, so I’ve got this open. Now let’s go back to our chat. And without asking it was changing the context or anything, how would I execute this in TerraForm.
Brian Benz 20:45
It’s gonna look at this now it’s gonna go, okay, so it knows it’s an Azure CLI script from the extension and a few other things. And basically, it’s going to create TerraForm for me to do this, which is kind of nice. So initialize the directory in the main TF file TerraForm. And knit TerraForm. Apply, tells you how to do every step, and it creates the things that you want to name it. And even just as some suggestions here on basically, how would you actually deploy this and connect to it? What else can I show you here? Oh, pulumi as well. So you can do by the way, you can do up arrow, just like you know, those of you familiar with bash, Hulu. So you can do the same thing for pulumi. So you create a new Thai script, base Formula, Formula program. And it’ll actually create the plumie for you. So you can imagine how easy this is and how nice this is for helping you with your application development. Yeah, anyway. So let’s go back to the infra. So we’ve got our Cassandra service here. We’ve got our basic our Cassandra service. What I want to do is I want to ask it now, how would I connect to this with Java application? This is where it gets a little hairy, because what you’re looking at copilot know the things that actually does.
Brian Benz 22:33
Okay. So, by the way, just a little bit of trivia, Cassandra is actually written in Java, for those of you who might not know, and there’s various reasons for that, but you can check that out as well. So to connect to a Cassandra database from a Java application, you can use the data stacks Java driver for Apache Cassandra. Okay. There’s a basic example of how you can establish a connection. All right, are there any other ways?
Brian Benz 23:17
Spring data using Spring Data, and it tells you how to set up the properties and the contact points as well. And those say, show me an allocation.
Brian Benz 23:33
please, let’s say please, as people like to the AI because, you know, someday we’ll all be working for it. So, please, create hello world.
Brian Benz 23:52
please create hello world. Code that to this Cassandra service using Spring Data
Brian Benz 24:16
All right. Yeah, let’s still not okay. Okay. That’s all right. Great. Okay. So now, theoretically, we could do this. So it actually generates the whole thing. Okay. This is better than the last time I tried this. Like I say, AI can be very capricious. So it’s kind of interesting how things work. But you know, I’ve got basically nothing up my sleeve here. We’re building this out completely from scratch, and go. So this is the Hello World Class.
Brian Benz 24:54
OK. Okay, and then let’s go. Cassandra config class we can set this up. We’ll just create new Cassandra config, okay. Save as. I don’t know if this is gonna work the first time, but..check something here. Okay.
Brian Benz 25:51
Okay, save that. Alright, so we’re gonna go through the step by step. Actually, I’m not going through the exact steps. But then we’re going to go to the Cassandra config. And then we’re going to have the Hello World. Let’s just start from the top again. So let’s the pom. Right? See, this is where things are kind of incomplete. So this is not a full, full Pom, I still have to do that. But this is a Cassandra config. And then should I say hello world? Oh, get ready got this? Save As.
Brian Benz 27:11
Okay, and when you set the properties file, where’s that? K? Wait, what’s this? Yeah, we got that. Where’s the properties? Okay, anyway, let’s do this.
Brian Benz 27:35
Didn’t really do everything together. So this is where experience comes in. Because you need to be able to build this from the pieces it gives you basically, it’s basically taking this box of options here and dumped it on my desk. And now I gotta figure out what to do with it. Okay, so we do need to have the application properties file, that’s going to have to be there as well. This is not a complete application, by the way. So you know, it doesn’t have the format’s and the structure that you would have. In a complete application. This is a good example of AI and the limitations thereof. So that’s important to know as well. But anyway, I think that’s, that gives you an idea. Basically, you have to set up the properties. And you have to set up complete palm that XML, this is only a segment of the palm that XML that you need. And this is, and it didn’t include the properties this time it did the last time I asked. So there’s a number of things that need to know how to work with anybody didn’t know what a Spring Boot application looks like, you need to know what a spring data application looks like. And be able to put all the pieces basically together that it gives you. I think that’s a good example of the kinds of things we have. So what I’ll do now is I’m actually going to go into Visual Studio code. And I will commit this and if anyone wants to play around with this, it’ll be there and you can use it. I’m going to generate something a little bit later, that is completely working using the go to start that spring.io generate the code, and then plug this code into it. And basically that’s what you’d have to do. But we’re a little bit out of time. I know we have some time for questions here. And I wanted to make sure we could cover that as well. Let me just say code, right. Commit and it asks me if I want to stage my stuff and I do. I’m gonna sync the changes. Alright, so everything should be out there now on the GitHub page this posted it’s a We’ll be there in a second anyway. And that’s this one here. To be Ben’s CF e dev haunted DevOps, you can find that at github.com/events Slash CFE.dev Haunted DevOps with dashes. And I guess that’s about it. We’ve got 10 minutes for questions. And yeah, what do you think?
Melissa McKay 30:19
That was awesome, Brian, I love how demo heavy your presentations are, just because we get to see what real life really looks like. And this is definitely something I needed. I don’t know if you know, anyone else in the audience in the audience feels the same way. But like, a lot of times I dive into things like this, and I don’t know where to start. I don’t know what to do. No, just poke at it. See what happens. So this is a really good example of just how to, you know, start playing around with AI, a while coding. If you have any questions in the audience, feel free to ask, I will definitely present them to Brian. In the meantime, I have some of my own for sure. Absolutely. Appreciate that. You call out AI for being imperfect? Yeah. Feels like it’s like a mash between googling the internet, and skimming through StackOverflow. Right. Like, yeah, we’ll need to know what you’re doing. Yes,
Brian Benz 31:19
Melissa McKay 31:20
But what would you say, you know, improvements, like being able to use the chat in this way? What would you say is an improvement over what I just described? just Googling or? Oh, give
Speaker 3 31:33
Just being able to… Sorry, go ahead. Yeah. No,
Melissa McKay 31:37
I was done.
Brian Benz 31:39
I jumped in too soon, but ya know, just being able to, you know, figure out what the code does. So one thing I didn’t show show real quick here. So I can do things like I click on Cassandra service. And I go to the chat, and say slash explain. And it’ll actually explain what this code does. For those of you know, folks who might not know, so the provided code is a Kubernetes service configuration within YAML. It knows as a service and not a deployment. And it describes in detail everything about what this does. And then you can do something like simplify. So this is where it’s a little bit better than Chet UBT. I don’t know if it’s gonna be able to simplify this is already quite minimal and straightforward. Okay. So Oh, yeah, it did. even shorter. Oh, you can use a Helm chart. So it actually recommends that you use a Helm chart as well. And that’s interesting. So that’s not shorter or simpler. But yeah, yeah. So yeah, it’s a great example of, you know, the way things are. That’s cool, I guess. Yeah.
Melissa McKay 32:54
I could see an advantage for like, you know, if you’re new on a project, you know, you’ve brought down all this source code, and you just need, you know, quick explanation of how things are working.
Brian Benz 33:05
Yes, yes. And actually, I was joking about it. But fix is really useful, too. Because sometimes you just have a misspelled variable or something you slash fix, and look at the code, and it’ll tell you at this variable it can’t find anywhere else in your open files. So you know, it’ll, it’ll tell you things like that, and it’ll leave it sometimes put a little git style replace there for you as well. So have
Melissa McKay 33:30
you had a situation yet where you think you know what code does? And you ask it to explain it to you? And it’s not what you thought it all?
Brian Benz 33:37
Yeah, actually, yeah. Yeah, it’s very good at explaining. I mean, it catches things that you might not know. And, yeah, the scary thing about AI, you know, it works 24 hours a day, it just knows so much more, it seems so much more code than even the most experienced developer in the world. And, yeah, and you could just figure things out that, that, you know, you might not have caught things you missed, about what the code does, or where a problem might be, and things like that. And it works with pretty much every programming language. It’s pretty amazing. So I showed you pulumi TerraForm, anything anything you want to convert this to another cloud providers CLI, you can do that as well. It’ll just it’ll take the code and go Yeah, sure. Here you go. And yeah, things like that. Take hours and it takes seconds with this so it’s a it’s like having a really really experienced sort of pair programmer. Yeah, that’s what
Melissa McKay 34:32
I was just thinking I’m like we you know, suffer from a lack of pairs so to speak. I see this being really valuable on that front for sure. Um, you were using VS code for this can use any other IDE. I know I have rights.
Brian Benz 34:48
Yeah, no, I’m good. The there’s several things you can use you can use if you’re a Java developer IntelliJ IDEA as well. And there are are others as well let’s let’s ask heym what IDE does Copilot support?
Brian Benz 35:14
and this is actually this is interesting because, you know, we’re used to they I’ve heard some things about what about other IDE? So it’s just basically told me it runs in Visual Studio code. I know that. But yeah.
Brian Benz 35:42
And this is where AI fails you. So there are some other IDs you can use. Just say, are they the GitHub.
Brian Benz 36:02
I know there’s more. I just can’t remember what they are right now. I know IntelliJ IDEA has an extension. And there’s a couple of others as well, when this party was node. Boy, I didn’t I wasn’t ready for this. So. So Vim and Neo Vim, have Visual Studio Code JetBrains. And something called Azure Data Studio. Those are where you can run copilot at the moment. But there might be other platforms coming soon. But basically, this is where you can get it, you can also use I know we’re running out of time, I did want to show you this one thing you can do as well, like go into my GitHub repo. So this is the repo. You can also, instead of cloning, we have this thing called Code Spaces, I can create a code space of this repo. And basically what this does is it creates a clone of the repo in a container that’s running in a browser. And it has extensions for co pilot and co pilot chat. So you can actually run this here as well. So if you don’t have access to an IDE, or you’re on, I know a lot of like government agencies and stuff really locked down their machines, and they might not have copilot or any of the other or sorry, any of the other IDs that can run copilot what you can do here, so this is a basically a clone to repo, I can go to Extensions, and I can say copilot. And I can install copilot Where’s copilot chat? I think it’s part of just copilot now. Oh, there it is. Okay, so it’s automatically installed. So copilot chat. I’m gonna zoom in on those for the folks out there. So co pilot and copilot chat, I just installed it here. So now go back to my code up here. And I can do this again. I can go to chat. And I can say slash, it’s playing arrow. So it works in the browser as well. So that’s kind of cool. It’s it’s all they’re fully functional. And you have most of the things that you have in Visual Studio code itself, but in a code space, then what if I want to I can, I can change any of this. And I commit it back to the repo again, I remember because it’s it’s in a browser. It’s not the actual code you’re working with on GitHub, it’s a clone, and it will clone it back. And when I close this, it will actually know that I have what’s hope. Yeah, so it knows that there’s a code space out there already. And then I can come back and just pick up where I left off. I can also open up this code space in IntelliJ IDEA and also in Visual Studio Code, of course, and all the other formats that copilot works in. So
Melissa McKay 39:07
pretty cool. I haven’t played with Code Spaces at all yet. So that was cool. I’m glad that you shared that for sure. Yeah,
Brian Benz 39:14
it’s a big deal. It’s, it’s really something that really helps with productivity. And you can preset your environments as well. Okay, so you can preset the environment for for the different things that you want, like maybe you want the co pilot to be installed, ready to go or you want some Java capabilities built in or Red Hat or all kinds of things. You can actually pre define your environment in Code Spaces when you build it.
Melissa McKay 39:46
Wow. Yeah, very cool. Very cool. Well, I think I’m left mostly impressed with just how well you know it generated the Yamo files and stuff. That’s pretty cool. Yeah. Other than it telling knew the truth 100% of the time. There’s something specific that you wish it did that you haven’t found yet?
Brian Benz 40:09
That’s a good question. Um, yeah, there are a few things. It would be nice if there was more context. And if it was more consistence that would be nice as well. You know, the consistency is an issue. I mean, I tried, you know, you saw there was a couple of parts that just didn’t work, right. It’s gonna work and just didn’t go the way you expected.
Melissa McKay 40:33
I’ve heard that before that. You’ll ask it something once and then it might give you a different answer. Yeah, yeah. You know, it’s like a human being. It’s a little bit scary.
Brian Benz 40:43
It would ask you clarifying answers. Like, you know, do you want the same answer that you know, we gave you last time you didn’t want a new answer? would be a little more interactive, but I guess that’s one feature.