1
00:00:00,200 --> 00:00:02,480
现在我们继续执行任务。

2
00:00:02,480 --> 00:00:07,440
在这里你会看到有一个研究任务和一个报告任务。

3
00:00:07,760 --> 00:00:08,560
默认情况下。

4
00:00:08,560 --> 00:00:11,800
但我们将改变这一点，我们将有一些不同的任务。

5
00:00:11,800 --> 00:00:13,760
我们将有一个名为“提议”的任务。

6
00:00:14,320 --> 00:00:19,160
这当然是提出动议的任务。

7
00:00:19,400 --> 00:00:22,280
所以描述这个任务是什么。

8
00:00:22,720 --> 00:00:27,560
这将是您提出的动议，然后是我们完成该部分时通过的动议。

9
00:00:27,840 --> 00:00:30,440
提出支持该动议的明确论据。

10
00:00:30,480 --> 00:00:31,760
非常有说服力。

11
00:00:32,320 --> 00:00:36,640
然后我们将得到预期的输出，这将非常简单。

12
00:00:36,680 --> 00:00:43,560
预期的输出将以简洁的方式成为您支持该动议的明确论据。

13
00:00:44,080 --> 00:00:44,960
代理。

14
00:00:44,960 --> 00:00:48,320
因此，您可以在此处将任务与代理关联起来。

15
00:00:48,320 --> 00:00:51,760
显然，这将与辩手代理有关。

16
00:00:52,200 --> 00:00:55,720
然后我们可以在这里做另一件事，那就是输出文件。

17
00:00:55,840 --> 00:01:02,120
我们想把它放在子目录输出中，我们将其命名为propose.md。

18
00:01:02,120 --> 00:01:06,310
这就是我们的提案任务。

19
00:01:06,310 --> 00:01:11,510
现在我们将有另一个任务，我将复制并粘贴该任务。

20
00:01:11,510 --> 00:01:14,750
而这一点将会遭到反对。

21
00:01:15,150 --> 00:01:18,470
这是辩手说的没有描述。

22
00:01:18,710 --> 00:01:27,470
不要提出你反对该动议，而是提出明确的论点反对该动议

23
00:01:27,470 --> 00:01:28,390
运动。

24
00:01:28,510 --> 00:01:29,910
看起来科斯塔斯可以在这方面提供帮助。

25
00:01:29,910 --> 00:01:30,910
它确实有帮助。

26
00:01:30,950 --> 00:01:32,150
非常有说服力。

27
00:01:32,190 --> 00:01:34,430
你反对该动议的明确论据。

28
00:01:34,670 --> 00:01:37,510
那应该是反对的。

29
00:01:37,550 --> 00:01:38,590
太神奇了，不是吗？

30
00:01:38,590 --> 00:01:40,630
所以草书为我们完成了所有工作。

31
00:01:40,830 --> 00:01:45,710
现在我们有了最后的任务，这将被称为“决定”。

32
00:01:46,350 --> 00:01:53,070
呃，这里有一个小提示，值得知道的是你不能调用你的任务

33
00:01:53,070 --> 00:01:58,550
与您致电代理的方式相同，否则您将遇到名称冲突的问题。

34
00:01:58,550 --> 00:02:02,110
因此，有时最好将其称为“提议任务”、“反对任务”。

35
00:02:02,430 --> 00:02:03,270
但我保持简短。

36
00:02:03,270 --> 00:02:06,790
但例如，我们不能将此任务称为法官。

37
00:02:06,830 --> 00:02:09,950
否则就会与我们称为法官的代理发生冲突。

38
00:02:10,430 --> 00:02:11,070
好的。

39
00:02:11,310 --> 00:02:14,550
所以描述我们会说评论。

40
00:02:14,870 --> 00:02:15,310
让我看看。

41
00:02:15,350 --> 00:02:18,310
现在回顾一下这些论点。

42
00:02:18,910 --> 00:02:19,710
开始了。

43
00:02:20,990 --> 00:02:25,710
审查辩手提出的论点并决定哪一方更有说服力。

44
00:02:26,110 --> 00:02:29,950
我们只需更改它即可删除所有这些。

45
00:02:30,790 --> 00:02:31,870
我们不需要这些。

46
00:02:31,910 --> 00:02:38,150
我们只需要说预期的输出是你决定哪一方更有说服力。

47
00:02:38,550 --> 00:02:41,550
让我们说说为什么。

48
00:02:42,230 --> 00:02:42,870
好的。

49
00:02:42,870 --> 00:02:52,950
然后这应该转到文件夹输出并决定文件夹输出。

50
00:02:52,990 --> 00:02:53,350
好的。

51
00:02:53,350 --> 00:02:54,110
看起来不错。

52
00:02:54,150 --> 00:02:56,150
这就是我们的任务。

53
00:02:56,830 --> 00:02:57,510
好的。

54
00:02:57,870 --> 00:03:04,430
所以最后一步实际上是设置 pi 和 Main.py。

55
00:03:04,710 --> 00:03:06,180
然后我们就准备出发了。

56
00:03:06,900 --> 00:03:09,820
所以这是默认模块crew dot pi。

57
00:03:09,820 --> 00:03:13,980
您可以看到这里有一些基于标准脚手架的东西。

58
00:03:14,100 --> 00:03:16,140
它创建了一个类。

59
00:03:16,340 --> 00:03:19,660
它周围有这个船员基地装饰器。

60
00:03:19,700 --> 00:03:23,780
并且这个类的命名与我们项目辩论的名称相同。

61
00:03:23,780 --> 00:03:27,540
所以它为我们设定了这一点，并将其称为“Debate Crew”，这是完全正确的。

62
00:03:27,780 --> 00:03:33,460
现在我有点不喜欢的一件事是它确实生成了所有这些脚手架代码，所有这些

63
00:03:33,460 --> 00:03:37,660
带有大量注释的标准代码，您可以阅读一些注释并点击链接。

64
00:03:37,660 --> 00:03:41,740
它有类似的东西，你可以通过多种方式添加在调用时调用的函数

65
00:03:41,740 --> 00:03:43,740
开始和结束之类的东西。

66
00:03:43,740 --> 00:03:49,180
但我确实发现这些评论有点妨碍，我通常首先通过并

67
00:03:49,180 --> 00:03:52,340
删除其中的所有内容只是为了保持干净整洁。

68
00:03:52,340 --> 00:03:58,140
但您会看到它的完成效果很好，它引入了代理的配置和任务

69
00:03:58,140 --> 00:03:58,820
配置。

70
00:03:58,980 --> 00:04:02,980
它只是从此处的配置文件夹中引入它们。

71
00:04:02,980 --> 00:04:06,380
所以这些被设置为这个类的变量。

72
00:04:06,380 --> 00:04:09,460
您可以看到它如何直接引用我们的配置。

73
00:04:09,460 --> 00:04:13,740
当然，这意味着如果您有不同的配置文件，那么您可以将它们带入

74
00:04:13,740 --> 00:04:15,020
就这样。

75
00:04:15,060 --> 00:04:17,780
然后这是关于如何引入自己的工具的内容。

76
00:04:17,980 --> 00:04:21,740
这就是我们设立代理的地方。

77
00:04:21,820 --> 00:04:24,060
显然我们没有一个叫做研究员的特工。

78
00:04:24,060 --> 00:04:26,140
我们有一个叫辩手的特工。

79
00:04:26,500 --> 00:04:31,740
特工装饰师正在告诉工作人员这是一名特工。

80
00:04:31,980 --> 00:04:34,900
它将返回一个代理，即配置。

81
00:04:34,900 --> 00:04:38,820
我们想要将其更改为辩手，并且我们将保留它的冗长。

82
00:04:38,940 --> 00:04:39,220
真的。

83
00:04:39,260 --> 00:04:42,740
这意味着我们将得到一个很好的打印，因为它正在运行正在发生的事情。

84
00:04:43,260 --> 00:04:46,820
然后我们会有另一个特工并记住这个人的名字。

85
00:04:47,060 --> 00:04:52,220
好吧，即使你不这样做，幸运的是光标会这样做，并且它已经在两个地方都填充了它。

86
00:04:52,220 --> 00:04:52,980
我们开始吧。

87
00:04:53,020 --> 00:04:55,180
法官是我们的另一位代理人。

88
00:04:55,740 --> 00:04:56,500
好的。

89
00:04:56,940 --> 00:05:00,340
现在我正在删除有关任务的评论。

90
00:05:00,340 --> 00:05:04,940
但它告诉您如何执行跟踪输出和依赖项等操作。

91
00:05:04,940 --> 00:05:07,580
但我们将继续定义我们的任务。

92
00:05:07,620 --> 00:05:10,410
他们又面临着装饰者的任务。

93
00:05:10,650 --> 00:05:13,450
现在我们将有一个名为“提议”的任务。

94
00:05:14,250 --> 00:05:15,530
我们就这样吧。

95
00:05:15,570 --> 00:05:16,770
光标将其填充。

96
00:05:16,810 --> 00:05:19,250
现在它列出了一个输出文件。

97
00:05:19,250 --> 00:05:23,650
但我们不需要它，因为它已经在我们的配置文件中指定了。

98
00:05:23,650 --> 00:05:25,130
所以这实际上并不需要。

99
00:05:25,450 --> 00:05:29,890
你知道现在我看到了这个我不得不说我认为如果我们有这个就会更干净

100
00:05:29,890 --> 00:05:32,890
像这样全部在一行上，我们不需要在多行上。

101
00:05:33,010 --> 00:05:37,690
现在您可以看到整个函数看起来是多么简单。

102
00:05:37,730 --> 00:05:39,290
看光标将为我们做这件事。

103
00:05:39,330 --> 00:05:40,810
然后我们就可以删除它。

104
00:05:41,250 --> 00:05:45,490
抱歉，当您看到 JupyterLab 中的效果有多么好时，我正在整理这一切。

105
00:05:45,490 --> 00:05:47,290
你不必看着我做这一切。

106
00:05:47,650 --> 00:05:48,690
所以别恨我。

107
00:05:48,690 --> 00:05:52,850
我会很快，但我认为如果我们让它看起来像那样漂亮和锋利那就更好了。

108
00:05:52,850 --> 00:05:55,290
你看这有多漂亮、简单、干净吗？

109
00:05:55,450 --> 00:06:01,090
这就是使用我们不需要的配置的好处，这里有太多的配置。

110
00:06:01,090 --> 00:06:03,490
然后另一个任务是反对。

111
00:06:04,250 --> 00:06:07,010
显然它引入了反对的配置。

112
00:06:07,010 --> 00:06:09,650
然后最后一件事就决定了。

113
00:06:09,930 --> 00:06:11,120
我们就这样吧。

114
00:06:11,160 --> 00:06:13,520
感谢光标为我们填写了该信息。

115
00:06:13,920 --> 00:06:18,080
这就是我们的两个代理和三个任务。

116
00:06:18,080 --> 00:06:20,640
我们已经进入最后一部分了。

117
00:06:21,280 --> 00:06:21,920
好的。

118
00:06:22,160 --> 00:06:25,920
所以现在我们现在创建这个团队。

119
00:06:26,360 --> 00:06:29,040
这是，这是在职能部门。

120
00:06:29,040 --> 00:06:30,640
它有装饰人员。

121
00:06:31,000 --> 00:06:36,120
我将拿出我们稍后会谈到的那部分。

122
00:06:36,160 --> 00:06:39,520
所以我们只需要创建一个船员实例。

123
00:06:39,760 --> 00:06:48,120
我们用代理填充代理，正如cry有用地告诉我们的那样，这是由以下自动创建的

124
00:06:48,160 --> 00:06:49,880
代理装饰器。

125
00:06:50,440 --> 00:06:53,440
我们用类似创建的任务填充它。

126
00:06:53,640 --> 00:06:59,560
这就是我们在流程中选择顺序而不是分层的地方，并且我们希望

127
00:06:59,560 --> 00:07:00,920
变得冗长。

128
00:07:00,960 --> 00:07:04,880
如果你愿意的话，还有一些关于分层的东西。

129
00:07:05,160 --> 00:07:10,600
呃，听着，如果你想使用那里工作人员团队的那条漂亮的小评论。

130
00:07:11,040 --> 00:07:11,640
好的。

131
00:07:11,760 --> 00:07:14,000
这就是我们的船员对象。

132
00:07:14,000 --> 00:07:15,280
我们快完成了。

133
00:07:15,560 --> 00:07:16,560
那是我们的乘员舱。

134
00:07:16,560 --> 00:07:20,520
现在我们将进入主模块，在那里我们完成所有的事情。

135
00:07:21,040 --> 00:07:26,080
所以这又是你可以阅读的所有这些内容。

136
00:07:26,480 --> 00:07:29,840
该主文件旨在在本地运行您的工作人员。

137
00:07:29,840 --> 00:07:32,920
所以不要添加不必要的逻辑。

138
00:07:33,240 --> 00:07:33,920
明白了。

139
00:07:34,320 --> 00:07:41,280
因此，当我们运行工作人员时，我们将在此处选择输入的模板值

140
00:07:41,280 --> 00:07:42,320
我们的 YAML 文件。

141
00:07:42,320 --> 00:07:44,400
这是我们选择我们希望它们成为的样子的地方。

142
00:07:44,440 --> 00:07:50,960
所以我们希望他们在这里是我们想要提出一项动议，我们想要给自己一个好的机会

143
00:07:50,960 --> 00:07:51,320
运动。

144
00:07:51,320 --> 00:07:52,680
我们没有，我们没有这个。

145
00:07:52,720 --> 00:07:54,840
我们只有一个场运动。

146
00:07:55,160 --> 00:07:56,720
什么动作？

147
00:07:56,720 --> 00:07:59,520
我们认为我们希望他们辩论什么？

148
00:07:59,600 --> 00:08:08,960
让我们提出一个议案，应该有一个，那就是我用这个呃光标前往的地方。

149
00:08:09,240 --> 00:08:13,710
我一定是超级有预见性的，但让我们的眼睛进行辩论似乎确实是一件好事。

150
00:08:13,750 --> 00:08:14,830
我们不要说应该有。

151
00:08:14,830 --> 00:08:22,030
假设需要有严格的法律来规范LLM。

152
00:08:22,470 --> 00:08:22,990
我们开始吧。

153
00:08:23,030 --> 00:08:25,870
对于他们来说，这是一个很好的辩论话题。

154
00:08:26,190 --> 00:08:29,230
然后我们就把东西放在这里了。

155
00:08:29,230 --> 00:08:30,310
我们会回来讨论这个问题。

156
00:08:30,310 --> 00:08:31,950
我们不关心这些。

157
00:08:32,030 --> 00:08:34,310
这就是所需要的一切。

158
00:08:34,310 --> 00:08:39,550
我们现在应该准备好在此基础上运行我们的第一批工作人员。

159
00:08:40,190 --> 00:08:46,270
实际上，在我们运行之前，让我在这个主模块中进行另一个小更改。

160
00:08:46,270 --> 00:08:51,710
我只是要确保将结果打印到屏幕上以获得满意的结果。

161
00:08:51,750 --> 00:08:53,350
它也将被保存到文件中。

162
00:08:53,670 --> 00:08:55,590
结果等于辩论。

163
00:08:55,710 --> 00:08:58,750
然后我们将打印结果点原始。

164
00:08:58,870 --> 00:09:05,030
这将打印发送给最终代理的最终任务的原始输出。

165
00:09:05,630 --> 00:09:11,510
然后也许我要做的另一个小改变是我意识到我们现在正在派出两名辩手

166
00:09:11,510 --> 00:09:15,950
评委是 OpenAI，但把这个调换一下会更有趣。

167
00:09:15,990 --> 00:09:16,950
我们来翻转一下吧。

168
00:09:16,950 --> 00:09:18,030
正如光标所示。

169
00:09:18,070 --> 00:09:21,310
让我们使用最新的克劳德第37首十四行诗。

170
00:09:21,310 --> 00:09:27,950
最新的Claude 3.7模型让我们对OpenAI的争论有了人择判断。

171
00:09:27,950 --> 00:09:34,110
这也意味着这次我们将使用人择，这对我们上次来说比较困难。

172
00:09:34,550 --> 00:09:37,670
好的，现在我想我们应该准备好了。

173
00:09:37,710 --> 00:09:39,790
我们可以打开一个终端。

174
00:09:40,030 --> 00:09:40,830
这里是。

175
00:09:41,070 --> 00:09:47,350
我们将要更改为工作人员目录，然后更改为辩论目录。

176
00:09:47,590 --> 00:09:49,590
现在我们只需输入“crew”即可。

177
00:09:49,590 --> 00:09:52,870
我跑去开始跑步。

178
00:09:52,870 --> 00:09:56,630
第一次这样做时，它会做一些紫外线的事情来构建环境。

179
00:09:56,630 --> 00:09:58,870
但我已经做到了，所以它马上就运行了。

180
00:09:59,030 --> 00:10:01,150
可以看到它正在执行任务。

181
00:10:01,390 --> 00:10:05,430
辩手，每个特工现在都在进行辩论。

182
00:10:05,430 --> 00:10:10,630
这是提议者的辩论者已经表示反对者现在正在辩论。

183
00:10:10,950 --> 00:10:15,830
现在我们根据争论来决定辩论的获胜者。

184
00:10:15,830 --> 00:10:16,900
这是人为的。

185
00:10:16,940 --> 00:10:17,860
那就是思考。

186
00:10:18,340 --> 00:10:24,860
如果幸运的话，我们很快就会看到人类是否决定支持或反对这项动议。

187
00:10:25,260 --> 00:10:25,900
开始了。

188
00:10:25,940 --> 00:10:26,860
让我看看。

189
00:10:27,500 --> 00:10:33,220
经过评估，我发现支持该议案的论据更有说服力。

190
00:10:33,420 --> 00:10:39,100
所以观点是应该有严格的法律来规范大型语言模型，比如非常规的语言模型。

191
00:10:39,100 --> 00:10:41,420
在这里做出判断的人。

192
00:10:41,780 --> 00:10:42,380
好的。

193
00:10:42,420 --> 00:10:43,020
于是就跑了。

194
00:10:43,020 --> 00:10:46,180
看，这是来自人类的相当冗长的回应。

195
00:10:46,220 --> 00:10:50,380
在那里你可以在这里看到所发生的思考的痕迹。

196
00:10:50,500 --> 00:10:53,700
您将看到已经创建了一个输出目录。

197
00:10:53,700 --> 00:10:59,220
如果我们打开它并且关闭这个终端，那么它就不会妨碍我们进入输出，

198
00:10:59,220 --> 00:11:05,580
你会发现有支持 LM 法律法规的重要论据，你可以阅读

199
00:11:05,580 --> 00:11:11,740
关于需要严格监管框架的道德、安全和社会挑战。

200
00:11:12,140 --> 00:11:15,300
然后还有相反的想法。

201
00:11:15,780 --> 00:11:19,020
毫无疑问，这会阻碍创造力。

202
00:11:19,260 --> 00:11:19,900
是的。

203
00:11:19,940 --> 00:11:20,580
非常好。

204
00:11:20,620 --> 00:11:23,540
我确信那里也有一些令人信服的论据。

205
00:11:23,780 --> 00:11:28,900
然后这个决定就是我们刚才已经看到的、来自人类的决定。

206
00:11:29,100 --> 00:11:33,460
这是我们对船员世界的第一次实验。

207
00:11:33,500 --> 00:11:35,180
我们设置了 yaml。

208
00:11:35,180 --> 00:11:40,820
我们为机组人员设置了整体模块，即机组人员模块。

209
00:11:40,980 --> 00:11:47,620
然后 main.py 是我们设置动作的地方，这是在各种模板中模板化的东西

210
00:11:47,620 --> 00:11:48,260
YAML 文档。

211
00:11:48,260 --> 00:11:56,340
我们实际上通过辩论进行了辩论，工作人员开始传递输入，这本字典

212
00:11:56,500 --> 00:12:00,820
模板化键及其值。

213
00:12:01,300 --> 00:12:07,660
因此，我希望您喜欢我们对乘员人工智能的首次尝试，并且我非常鼓励您也做同样的事情。

214
00:12:07,700 --> 00:12:12,740
好吧，当然你实际上会在那里看到这个辩论项目，但你可以去制作第二个

215
00:12:12,740 --> 00:12:13,140
一。

216
00:12:13,140 --> 00:12:16,860
或者只需输入 query run 来运行它并获取句柄。

217
00:12:16,900 --> 00:12:20,140
充分了解船员人工智能的工作原理。