1
00:00:00,480 --> 00:00:02,360
Ah, not so fast, you say.

2
00:00:02,400 --> 00:00:04,920
You notice that I'm missing the setting?

3
00:00:04,960 --> 00:00:08,520
The module name and the class name, which we also have to do.

4
00:00:08,560 --> 00:00:09,240
There we go.

5
00:00:09,440 --> 00:00:13,280
Module name is accounts.py and the class name is account.

6
00:00:13,320 --> 00:00:17,200
And actually that wasn't the only mistake also in task's YAML.

7
00:00:17,240 --> 00:00:19,680
I had some some missing.

8
00:00:19,960 --> 00:00:24,640
I had some stray tabs going on that some of these things weren't formatted properly.

9
00:00:24,640 --> 00:00:27,960
And I'll tell you, the reason I found that out is because I tried to run this and it failed.

10
00:00:28,160 --> 00:00:30,960
The error message I got was was quite obscure.

11
00:00:31,000 --> 00:00:36,040
It was like some long stack trace and it was not immediately obvious what was wrong.

12
00:00:36,200 --> 00:00:40,280
And I think, you know, I had to go through quite carefully and look for problems.

13
00:00:40,280 --> 00:00:42,800
And I sort of had a clue about the kind of thing I was looking for.

14
00:00:42,960 --> 00:00:48,080
But I can imagine if you're new to to using crew, then that could be quite a painful experience because

15
00:00:48,080 --> 00:00:50,560
there's not many clues given to where to go.

16
00:00:50,720 --> 00: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

17
00:00:55,600 --> 00:00:59,200
like this, you get a lot out of the box, you get a lot of head start.

18
00:00:59,200 --> 00:01:03,680
Think of the memory stuff that we did last time and the whole way that this this fits together and the

19
00:01:03,680 --> 00:01:04,750
code execution stuff.

20
00:01:04,790 --> 00: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

21
00:01:10,670 --> 00:01:11,990
is is hidden from you.

22
00:01:11,990 --> 00:01:18,030
And when things go wrong, it can be harder to debug and figure out what's actually happening behind

23
00:01:18,030 --> 00:01:18,790
the scenes.

24
00:01:19,030 --> 00:01:24,550
But anyway, with all of that, it should be time now for us to actually give this a try.

25
00:01:24,710 --> 00:01:31,030
So we go into our directory, we go into engineering team and we get ready to run.

26
00:01:31,230 --> 00:01:33,230
Crew I run.

27
00:01:33,710 --> 00:01:34,790
Okay, here we go.

28
00:01:35,150 --> 00:01:36,110
And it's off.

29
00:01:36,230 --> 00:01:41,950
Thinking okay, the engineering lead is starting off the engineering lead.

30
00:01:41,990 --> 00:01:43,910
Of course that is GPT four zero.

31
00:01:44,350 --> 00:01:46,830
The way I have it set up, you may have picked a different model.

32
00:01:46,870 --> 00:01:48,630
You may even be trying with a llama.

33
00:01:48,670 --> 00: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

34
00:01:53,070 --> 00:01:57,030
do imagine that this will stretch llama to the max.

35
00:01:57,150 --> 00:02:03,590
This is going to be very, very hard challenge and depending on which model you pick underneath a llama,

36
00:02:03,630 --> 00:02:05,710
you may have limited success with this.

37
00:02:05,710 --> 00: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

38
00:02:12,330 --> 00:02:14,610
output folder so that you can have that to hand.

39
00:02:14,610 --> 00:02:19,330
And you know, this might give you something to watch and learn from rather than running it yourself.

40
00:02:19,730 --> 00:02:23,730
But if you want to try it with GPT four and mini, that should work just fine.

41
00:02:23,890 --> 00:02:26,130
Anyway, we can see that it's done the design.

42
00:02:26,130 --> 00: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.

43
00:02:31,290 --> 00:02:34,770
In fact, I think last time it took about five minutes to run all the way through.

44
00:02:34,810 --> 00:02:35,890
And that wasn't with deep seek.

45
00:02:35,890 --> 00:02:37,250
And deep seek can be a bit slower.

46
00:02:37,250 --> 00:02:38,490
So we'll see what happens.

47
00:02:38,490 --> 00:02:40,370
I will be right back in a minute.

48
00:02:40,610 --> 00:02:41,210
Okay.

49
00:02:41,290 --> 00:02:42,530
It just finished.

50
00:02:42,610 --> 00:02:43,490
It's exciting.

51
00:02:43,490 --> 00:02:45,650
I guess it did take about five minutes I think.

52
00:02:45,890 --> 00:02:49,530
Let's have a look at what was produced in the output folder.

53
00:02:49,890 --> 00:02:51,730
So I guess well there's a lot of files there.

54
00:02:51,730 --> 00:02:52,810
That's a good start.

55
00:02:52,850 --> 00:02:55,210
Let's start with the design document.

56
00:02:55,530 --> 00:02:57,170
It is indeed in markdown.

57
00:02:57,410 --> 00:02:59,570
It's uh, let's get rid of this terminal.

58
00:02:59,570 --> 00:03:05,050
It's got certainly like a design written out there and it's got like method signatures and things.

59
00:03:05,050 --> 00:03:06,370
That seems great.

60
00:03:07,050 --> 00:03:09,410
And now the big guy accounts dot pi.

61
00:03:10,010 --> 00: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

62
00:03:15,640 --> 00:03:20,320
price for Apple, Tesla and Google as example to to seed it.

63
00:03:20,440 --> 00:03:20,760
Okay.

64
00:03:20,800 --> 00:03:21,840
Class account.

65
00:03:21,840 --> 00:03:22,480
That's good.

66
00:03:22,480 --> 00:03:28,000
And it's got the right kinds of, uh, setups deposit accounts, withdraw accounts with comments with

67
00:03:28,000 --> 00:03:28,920
docstrings.

68
00:03:29,360 --> 00:03:29,800
Okay.

69
00:03:29,840 --> 00:03:32,400
That's that looks good from eyeballing.

70
00:03:32,440 --> 00:03:34,040
I'm seeing good looking stuff.

71
00:03:34,400 --> 00:03:38,000
Obviously we'd expect to see, uh, price times quantity.

72
00:03:38,280 --> 00:03:45,680
And then, uh, I see they, they're going to, uh, return false or return true depending on whether

73
00:03:45,680 --> 00:03:46,760
it was successful or not.

74
00:03:46,760 --> 00:03:47,720
That's interesting.

75
00:03:48,160 --> 00:03:48,720
Okay.

76
00:03:48,960 --> 00:03:52,160
And yeah, this all looks pretty comprehensive, doesn't it.

77
00:03:52,200 --> 00:03:53,320
Calculate profit or loss.

78
00:03:53,320 --> 00:03:55,440
Get the holdings takes a copy.

79
00:03:55,440 --> 00:03:58,720
That's that's an that's a pro thing to have done.

80
00:03:58,760 --> 00:04:01,280
I wouldn't have even thought of that if I was doing it myself.

81
00:04:01,320 --> 00:04:03,280
That of course is the right thing to do.

82
00:04:03,800 --> 00:04:04,480
Okay.

83
00:04:04,880 --> 00:04:05,600
Very nice.

84
00:04:05,600 --> 00:04:07,040
This looks very comprehensive.

85
00:04:07,080 --> 00:04:08,960
This looks like the Kobe we're looking for.

86
00:04:09,000 --> 00:04:11,120
Let's look at the test accounts.

87
00:04:11,520 --> 00:04:11,880
Sure.

88
00:04:11,920 --> 00:04:16,550
I mean, these are the kinds of tests you'd expect plenty of of assertions in here.

89
00:04:16,550 --> 00:04:17,470
That's great.

90
00:04:17,950 --> 00:04:21,270
And then that's the right kind of scaffolding around a unit test.

91
00:04:21,470 --> 00:04:23,110
And there is an API.

92
00:04:23,150 --> 00: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

93
00:04:28,430 --> 00:04:30,110
way when I'm back.

94
00:04:30,430 --> 00:04:31,870
Let's, uh, let's try this.

95
00:04:32,430 --> 00:04:32,790
Okay.

96
00:04:32,830 --> 00: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

97
00:04:37,830 --> 00:04:41,710
end developer, we're going to go into the folder called output.

98
00:04:41,950 --> 00:04:42,710
Here we are.

99
00:04:43,030 --> 00:04:46,470
Now I imagine that we're going to need to install gradio.

100
00:04:46,510 --> 00:04:50,350
I imagine if we just do app.py it's going to have an import failure.

101
00:04:50,390 --> 00:04:51,350
Let's try this.

102
00:04:51,550 --> 00:04:53,870
You've run App.py which you remember.

103
00:04:53,870 --> 00:04:58,910
You've run is the equivalent of Python when you're using UV environment.

104
00:04:59,430 --> 00:05:00,150
Let me see.

105
00:05:00,190 --> 00:05:01,510
No module named Gradio.

106
00:05:01,550 --> 00:05:04,590
Okay, so I have to do UV add gradio.

107
00:05:05,150 --> 00:05:06,270
And it's now added.

108
00:05:06,270 --> 00:05:07,630
And now we try this again.

109
00:05:07,670 --> 00:05:08,950
You've run App.py.

110
00:05:09,910 --> 00:05:10,230
Okay.

111
00:05:10,270 --> 00:05:12,990
It's thinking it's doing its stuff.

112
00:05:13,710 --> 00:05:15,350
Thinking thinking hasn't crashed.

113
00:05:15,710 --> 00:05:19,570
It's loading the various gradio dependencies right now, I believe.

114
00:05:19,810 --> 00:05:20,250
Okay.

115
00:05:20,290 --> 00:05:22,890
So it's it started a radio app.

116
00:05:23,370 --> 00:05:24,570
This is kind of crazy.

117
00:05:25,410 --> 00:05:26,370
Follow the link.

118
00:05:26,690 --> 00:05:27,330
Okay.

119
00:05:27,370 --> 00:05:27,930
Here we go.

120
00:05:27,930 --> 00:05:29,410
Here is a user interface.

121
00:05:29,770 --> 00:05:30,290
Okay.

122
00:05:30,330 --> 00:05:34,730
So first of all the first thing I'll notice this is you're getting like a raw reaction video here.

123
00:05:34,730 --> 00:05:36,290
I'm like astonished.

124
00:05:36,410 --> 00:05:39,450
You can see that it's done an audio out with with these tabs.

125
00:05:39,610 --> 00:05:42,410
Account management trading and reports.

126
00:05:42,570 --> 00:05:43,450
That's cool.

127
00:05:43,730 --> 00:05:45,490
So create an account.

128
00:05:45,730 --> 00:05:50,450
I get to give it a user ID, so I guess I'll call it ad initial deposit.

129
00:05:51,210 --> 00:05:53,690
We'll put that in I'll press create account.

130
00:05:54,730 --> 00:05:57,490
Account created for ad with initial deposit of 10,000.

131
00:05:57,530 --> 00:05:58,330
And there we go.

132
00:05:58,690 --> 00:05:59,170
Holdings.

133
00:05:59,210 --> 00:05:59,890
No holdings.

134
00:05:59,930 --> 00:06:00,370
All right.

135
00:06:00,410 --> 00:06:00,970
Fine.

136
00:06:01,490 --> 00:06:02,810
Now we go over to.

137
00:06:02,970 --> 00:06:05,890
I guess I can withdraw and, uh, and add.

138
00:06:05,930 --> 00:06:06,850
That's cool.

139
00:06:07,050 --> 00:06:08,010
I'll go to trading.

140
00:06:08,010 --> 00:06:12,810
We'll do symbol apple quantity one, buy shares.

141
00:06:13,530 --> 00:06:14,130
And here we go.

142
00:06:14,130 --> 00:06:16,410
Successfully bought one share of Apple at.

143
00:06:16,490 --> 00:06:17,250
Let's zoom out a bit.

144
00:06:17,250 --> 00:06:17,930
Let's see if we can.

145
00:06:17,970 --> 00:06:18,570
There we go.

146
00:06:19,090 --> 00:06:21,330
Zoom out again at that much.

147
00:06:21,330 --> 00:06:22,680
So the user is editor.

148
00:06:22,680 --> 00:06:24,360
That's now my cash balance that's come down.

149
00:06:24,360 --> 00:06:29,120
The portfolio value is of course the full amount because I've I've spent some money but I've bought

150
00:06:29,120 --> 00:06:30,240
equivalent Apple shares.

151
00:06:30,240 --> 00:06:31,160
That's calculating that.

152
00:06:31,160 --> 00:06:31,640
Right.

153
00:06:31,720 --> 00:06:35,320
And there's the holdings one share at 150 each.

154
00:06:35,560 --> 00:06:36,080
That's great.

155
00:06:36,080 --> 00:06:37,600
Let's go over to reports.

156
00:06:38,160 --> 00:06:41,240
Portfolio value is uh 10,000.

157
00:06:41,280 --> 00:06:42,360
Profit loss zero.

158
00:06:42,360 --> 00:06:43,280
Current holdings.

159
00:06:43,320 --> 00:06:47,480
Is there transaction history uh deposit and buy shares.

160
00:06:47,760 --> 00:06:48,480
This is great.

161
00:06:48,480 --> 00:06:49,440
This is so cool.

162
00:06:49,440 --> 00:06:50,440
I can't believe this.

163
00:06:50,440 --> 00:06:52,600
This is this isn't a simple user interface.

164
00:06:52,600 --> 00:06:54,800
This is a really good user interface.

165
00:06:54,840 --> 00:06:58,840
Look at the way things are organized into groups and are, like, nicely laid out.

166
00:06:58,880 --> 00: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

167
00:07:03,080 --> 00:07:04,040
not looked as good as this.

168
00:07:04,040 --> 00:07:10,320
It's worked for sure, but this is a sharp user interface with with tabs, with sections organized quite

169
00:07:10,360 --> 00:07:11,040
nicely.

170
00:07:11,360 --> 00:07:16,520
And, uh, I guess we better let's try selling a share of Tesla that we don't have.

171
00:07:16,920 --> 00:07:19,000
Quantity one sell shares.

172
00:07:19,600 --> 00:07:19,960
Error.

173
00:07:20,000 --> 00:07:21,400
Insufficient shares to sell.

174
00:07:21,440 --> 00:07:23,040
Okay, we get an error message.

175
00:07:23,040 --> 00:07:26,140
Now let's try selling an Apple share Sell.

176
00:07:26,180 --> 00:07:26,740
Share.

177
00:07:26,780 --> 00:07:28,940
Successfully sold one share of Apple.

178
00:07:29,100 --> 00:07:31,180
And now we have no holdings.

179
00:07:31,180 --> 00:07:36,220
And if we go and look at our transactions, hopefully we'll see that we both bought and sold.

180
00:07:36,500 --> 00:07:37,780
Transaction history.

181
00:07:37,940 --> 00:07:39,300
Buy one share of Apple.

182
00:07:39,340 --> 00:07:40,540
Sell one share of Apple.

183
00:07:41,260 --> 00:07:43,260
Well, I got to tell you, this is astonishing.

184
00:07:44,460 --> 00:07:45,580
I'm, uh.

185
00:07:45,940 --> 00:07:46,780
There's there's this.

186
00:07:46,780 --> 00:07:48,380
This isn't a fake.

187
00:07:48,380 --> 00:07:50,900
I haven't run this in advance to to see this before.

188
00:07:50,940 --> 00:07:52,780
You're getting my raw reaction.

189
00:07:52,780 --> 00:07:57,820
And it's definitely surpassing my expectations in terms of this being a nice user interface.

190
00:07:57,820 --> 00:08:00,340
Like, if I had built this, I would be quite pleased with it.

191
00:08:00,620 --> 00:08:03,340
I'm, uh, frankly, I'm astonished.

192
00:08:03,620 --> 00:08:06,180
So that's a great conclusion.

193
00:08:06,300 --> 00:08:10,780
I will be sure to make sure I'll put some examples in example outputs.

194
00:08:10,820 --> 00: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

195
00:08:16,060 --> 00:08:16,500
this.

196
00:08:16,780 --> 00:08:19,300
And uh yeah it's really amazing to see.

197
00:08:19,300 --> 00:08:26,860
So a collaboration between GPT four and Claude 37 and deep seek to build this platform with, frankly,

198
00:08:26,860 --> 00:08:29,300
a really impressive user interface.

199
00:08:29,300 --> 00:08:29,700
Wow.