WEBVTT

00:00.480 --> 00:02.360
Ah, not so fast, you say.

00:02.400 --> 00:04.920
You notice that I'm missing the setting?

00:04.960 --> 00:08.520
The module name and the class name, which we also have to do.

00:08.560 --> 00:09.240
There we go.

00:09.440 --> 00:13.280
Module name is accounts.py and the class name is account.

00:13.320 --> 00:17.200
And actually that wasn't the only mistake also in task's YAML.

00:17.240 --> 00:19.680
I had some some missing.

00:19.960 --> 00:24.640
I had some stray tabs going on that some of these things weren't formatted properly.

00:24.640 --> 00:27.960
And I'll tell you, the reason I found that out is because I tried to run this and it failed.

00:28.160 --> 00:30.960
The error message I got was was quite obscure.

00:31.000 --> 00:36.040
It was like some long stack trace and it was not immediately obvious what was wrong.

00:36.200 --> 00:40.280
And I think, you know, I had to go through quite carefully and look for problems.

00:40.280 --> 00:42.800
And I sort of had a clue about the kind of thing I was looking for.

00:42.960 --> 00:48.080
But I can imagine if you're new to to using crew, then that could be quite a painful experience because

00:48.080 --> 00:50.560
there's not many clues given to where to go.

00:50.720 --> 00:55.600
And I really think that that is the kind of that's the deal that you make signing up for a framework

00:55.600 --> 00:59.200
like this, you get a lot out of the box, you get a lot of head start.

00:59.200 --> 01:03.680
Think of the memory stuff that we did last time and the whole way that this this fits together and the

01:03.680 --> 01:04.750
code execution stuff.

01:04.790 --> 01:10.670
I mean, it's amazing, but what you you get are that you are trading off is the fact that some stuff

01:10.670 --> 01:11.990
is is hidden from you.

01:11.990 --> 01:18.030
And when things go wrong, it can be harder to debug and figure out what's actually happening behind

01:18.030 --> 01:18.790
the scenes.

01:19.030 --> 01:24.550
But anyway, with all of that, it should be time now for us to actually give this a try.

01:24.710 --> 01:31.030
So we go into our directory, we go into engineering team and we get ready to run.

01:31.230 --> 01:33.230
Crew I run.

01:33.710 --> 01:34.790
Okay, here we go.

01:35.150 --> 01:36.110
And it's off.

01:36.230 --> 01:41.950
Thinking okay, the engineering lead is starting off the engineering lead.

01:41.990 --> 01:43.910
Of course that is GPT four zero.

01:44.350 --> 01:46.830
The way I have it set up, you may have picked a different model.

01:46.870 --> 01:48.630
You may even be trying with a llama.

01:48.670 --> 01:53.070
Now, I will say that if you are trying it with a llama, if you're looking for the free service, I

01:53.070 --> 01:57.030
do imagine that this will stretch llama to the max.

01:57.150 --> 02:03.590
This is going to be very, very hard challenge and depending on which model you pick underneath a llama,

02:03.630 --> 02:05.710
you may have limited success with this.

02:05.710 --> 02:12.330
This may be a case of where you have to watch what I'm doing here, and I'm saving the results in example

02:12.330 --> 02:14.610
output folder so that you can have that to hand.

02:14.610 --> 02:19.330
And you know, this might give you something to watch and learn from rather than running it yourself.

02:19.730 --> 02:23.730
But if you want to try it with GPT four and mini, that should work just fine.

02:23.890 --> 02:26.130
Anyway, we can see that it's done the design.

02:26.130 --> 02:31.250
It's now in the hands of the Python engineer, and I know that this can now take a couple of minutes.

02:31.290 --> 02:34.770
In fact, I think last time it took about five minutes to run all the way through.

02:34.810 --> 02:35.890
And that wasn't with deep seek.

02:35.890 --> 02:37.250
And deep seek can be a bit slower.

02:37.250 --> 02:38.490
So we'll see what happens.

02:38.490 --> 02:40.370
I will be right back in a minute.

02:40.610 --> 02:41.210
Okay.

02:41.290 --> 02:42.530
It just finished.

02:42.610 --> 02:43.490
It's exciting.

02:43.490 --> 02:45.650
I guess it did take about five minutes I think.

02:45.890 --> 02:49.530
Let's have a look at what was produced in the output folder.

02:49.890 --> 02:51.730
So I guess well there's a lot of files there.

02:51.730 --> 02:52.810
That's a good start.

02:52.850 --> 02:55.210
Let's start with the design document.

02:55.530 --> 02:57.170
It is indeed in markdown.

02:57.410 --> 02:59.570
It's uh, let's get rid of this terminal.

02:59.570 --> 03:05.050
It's got certainly like a design written out there and it's got like method signatures and things.

03:05.050 --> 03:06.370
That seems great.

03:07.050 --> 03:09.410
And now the big guy accounts dot pi.

03:10.010 --> 03:15.640
Okay, so it's got the get share price dummy at the top, which is what we wanted to to return a share

03:15.640 --> 03:20.320
price for Apple, Tesla and Google as example to to seed it.

03:20.440 --> 03:20.760
Okay.

03:20.800 --> 03:21.840
Class account.

03:21.840 --> 03:22.480
That's good.

03:22.480 --> 03:28.000
And it's got the right kinds of, uh, setups deposit accounts, withdraw accounts with comments with

03:28.000 --> 03:28.920
docstrings.

03:29.360 --> 03:29.800
Okay.

03:29.840 --> 03:32.400
That's that looks good from eyeballing.

03:32.440 --> 03:34.040
I'm seeing good looking stuff.

03:34.400 --> 03:38.000
Obviously we'd expect to see, uh, price times quantity.

03:38.280 --> 03:45.680
And then, uh, I see they, they're going to, uh, return false or return true depending on whether

03:45.680 --> 03:46.760
it was successful or not.

03:46.760 --> 03:47.720
That's interesting.

03:48.160 --> 03:48.720
Okay.

03:48.960 --> 03:52.160
And yeah, this all looks pretty comprehensive, doesn't it.

03:52.200 --> 03:53.320
Calculate profit or loss.

03:53.320 --> 03:55.440
Get the holdings takes a copy.

03:55.440 --> 03:58.720
That's that's an that's a pro thing to have done.

03:58.760 --> 04:01.280
I wouldn't have even thought of that if I was doing it myself.

04:01.320 --> 04:03.280
That of course is the right thing to do.

04:03.800 --> 04:04.480
Okay.

04:04.880 --> 04:05.600
Very nice.

04:05.600 --> 04:07.040
This looks very comprehensive.

04:07.080 --> 04:08.960
This looks like the Kobe we're looking for.

04:09.000 --> 04:11.120
Let's look at the test accounts.

04:11.520 --> 04:11.880
Sure.

04:11.920 --> 04:16.550
I mean, these are the kinds of tests you'd expect plenty of of assertions in here.

04:16.550 --> 04:17.470
That's great.

04:17.950 --> 04:21.270
And then that's the right kind of scaffolding around a unit test.

04:21.470 --> 04:23.110
And there is an API.

04:23.150 --> 04:28.430
But we're not going to look at that App.py, because we're going to look at it in a whole different

04:28.430 --> 04:30.110
way when I'm back.

04:30.430 --> 04:31.870
Let's, uh, let's try this.

04:32.430 --> 04:32.790
Okay.

04:32.830 --> 04:37.830
So I've gone into a terminal now as we try out the code written by our engineering team, by our front

04:37.830 --> 04:41.710
end developer, we're going to go into the folder called output.

04:41.950 --> 04:42.710
Here we are.

04:43.030 --> 04:46.470
Now I imagine that we're going to need to install gradio.

04:46.510 --> 04:50.350
I imagine if we just do app.py it's going to have an import failure.

04:50.390 --> 04:51.350
Let's try this.

04:51.550 --> 04:53.870
You've run App.py which you remember.

04:53.870 --> 04:58.910
You've run is the equivalent of Python when you're using UV environment.

04:59.430 --> 05:00.150
Let me see.

05:00.190 --> 05:01.510
No module named Gradio.

05:01.550 --> 05:04.590
Okay, so I have to do UV add gradio.

05:05.150 --> 05:06.270
And it's now added.

05:06.270 --> 05:07.630
And now we try this again.

05:07.670 --> 05:08.950
You've run App.py.

05:09.910 --> 05:10.230
Okay.

05:10.270 --> 05:12.990
It's thinking it's doing its stuff.

05:13.710 --> 05:15.350
Thinking thinking hasn't crashed.

05:15.710 --> 05:19.570
It's loading the various gradio dependencies right now, I believe.

05:19.810 --> 05:20.250
Okay.

05:20.290 --> 05:22.890
So it's it started a radio app.

05:23.370 --> 05:24.570
This is kind of crazy.

05:25.410 --> 05:26.370
Follow the link.

05:26.690 --> 05:27.330
Okay.

05:27.370 --> 05:27.930
Here we go.

05:27.930 --> 05:29.410
Here is a user interface.

05:29.770 --> 05:30.290
Okay.

05:30.330 --> 05:34.730
So first of all the first thing I'll notice this is you're getting like a raw reaction video here.

05:34.730 --> 05:36.290
I'm like astonished.

05:36.410 --> 05:39.450
You can see that it's done an audio out with with these tabs.

05:39.610 --> 05:42.410
Account management trading and reports.

05:42.570 --> 05:43.450
That's cool.

05:43.730 --> 05:45.490
So create an account.

05:45.730 --> 05:50.450
I get to give it a user ID, so I guess I'll call it ad initial deposit.

05:51.210 --> 05:53.690
We'll put that in I'll press create account.

05:54.730 --> 05:57.490
Account created for ad with initial deposit of 10,000.

05:57.530 --> 05:58.330
And there we go.

05:58.690 --> 05:59.170
Holdings.

05:59.210 --> 05:59.890
No holdings.

05:59.930 --> 06:00.370
All right.

06:00.410 --> 06:00.970
Fine.

06:01.490 --> 06:02.810
Now we go over to.

06:02.970 --> 06:05.890
I guess I can withdraw and, uh, and add.

06:05.930 --> 06:06.850
That's cool.

06:07.050 --> 06:08.010
I'll go to trading.

06:08.010 --> 06:12.810
We'll do symbol apple quantity one, buy shares.

06:13.530 --> 06:14.130
And here we go.

06:14.130 --> 06:16.410
Successfully bought one share of Apple at.

06:16.490 --> 06:17.250
Let's zoom out a bit.

06:17.250 --> 06:17.930
Let's see if we can.

06:17.970 --> 06:18.570
There we go.

06:19.090 --> 06:21.330
Zoom out again at that much.

06:21.330 --> 06:22.680
So the user is editor.

06:22.680 --> 06:24.360
That's now my cash balance that's come down.

06:24.360 --> 06:29.120
The portfolio value is of course the full amount because I've I've spent some money but I've bought

06:29.120 --> 06:30.240
equivalent Apple shares.

06:30.240 --> 06:31.160
That's calculating that.

06:31.160 --> 06:31.640
Right.

06:31.720 --> 06:35.320
And there's the holdings one share at 150 each.

06:35.560 --> 06:36.080
That's great.

06:36.080 --> 06:37.600
Let's go over to reports.

06:38.160 --> 06:41.240
Portfolio value is uh 10,000.

06:41.280 --> 06:42.360
Profit loss zero.

06:42.360 --> 06:43.280
Current holdings.

06:43.320 --> 06:47.480
Is there transaction history uh deposit and buy shares.

06:47.760 --> 06:48.480
This is great.

06:48.480 --> 06:49.440
This is so cool.

06:49.440 --> 06:50.440
I can't believe this.

06:50.440 --> 06:52.600
This is this isn't a simple user interface.

06:52.600 --> 06:54.800
This is a really good user interface.

06:54.840 --> 06:58.840
Look at the way things are organized into groups and are, like, nicely laid out.

06:58.880 --> 07:03.080
I'm kind of surprised about this because actually, in the past I've used GPT four or mini, and it's

07:03.080 --> 07:04.040
not looked as good as this.

07:04.040 --> 07:10.320
It's worked for sure, but this is a sharp user interface with with tabs, with sections organized quite

07:10.360 --> 07:11.040
nicely.

07:11.360 --> 07:16.520
And, uh, I guess we better let's try selling a share of Tesla that we don't have.

07:16.920 --> 07:19.000
Quantity one sell shares.

07:19.600 --> 07:19.960
Error.

07:20.000 --> 07:21.400
Insufficient shares to sell.

07:21.440 --> 07:23.040
Okay, we get an error message.

07:23.040 --> 07:26.140
Now let's try selling an Apple share Sell.

07:26.180 --> 07:26.740
Share.

07:26.780 --> 07:28.940
Successfully sold one share of Apple.

07:29.100 --> 07:31.180
And now we have no holdings.

07:31.180 --> 07:36.220
And if we go and look at our transactions, hopefully we'll see that we both bought and sold.

07:36.500 --> 07:37.780
Transaction history.

07:37.940 --> 07:39.300
Buy one share of Apple.

07:39.340 --> 07:40.540
Sell one share of Apple.

07:41.260 --> 07:43.260
Well, I got to tell you, this is astonishing.

07:44.460 --> 07:45.580
I'm, uh.

07:45.940 --> 07:46.780
There's there's this.

07:46.780 --> 07:48.380
This isn't a fake.

07:48.380 --> 07:50.900
I haven't run this in advance to to see this before.

07:50.940 --> 07:52.780
You're getting my raw reaction.

07:52.780 --> 07:57.820
And it's definitely surpassing my expectations in terms of this being a nice user interface.

07:57.820 --> 08:00.340
Like, if I had built this, I would be quite pleased with it.

08:00.620 --> 08:03.340
I'm, uh, frankly, I'm astonished.

08:03.620 --> 08:06.180
So that's a great conclusion.

08:06.300 --> 08:10.780
I will be sure to make sure I'll put some examples in example outputs.

08:10.820 --> 08:16.060
I'll try and put one with with mini so you can see a more raw user interface and then something like

08:16.060 --> 08:16.500
this.

08:16.780 --> 08:19.300
And uh yeah it's really amazing to see.

08:19.300 --> 08:26.860
So a collaboration between GPT four and Claude 37 and deep seek to build this platform with, frankly,

08:26.860 --> 08:29.300
a really impressive user interface.

08:29.300 --> 08:29.700
Wow.
