1
00:00:00,120 --> 00:00:02,040
虽然他们说当你玩得开心时时间过得真快。

2
00:00:02,040 --> 00:00:07,960
这似乎正在发生，因为我们已经到了第一天的最后、最后几天。

3
00:00:07,960 --> 00:00:14,600
一周第五天，是时候揭晓我们的大项目了，正如你所知，这是你自己的个人项目

4
00:00:14,600 --> 00:00:16,720
您网站的职业另一个自我。

5
00:00:16,760 --> 00:00:19,360
回答有关您的职业历史的问题。

6
00:00:19,800 --> 00:00:24,760
我想再说一遍，上次我们讨论了不同的 Agentic 框架和

7
00:00:24,760 --> 00:00:27,400
怎么有简单的和复杂的。

8
00:00:27,440 --> 00:00:30,360
我们这周所做的一切都是没有框架的。

9
00:00:30,360 --> 00:00:36,080
我们直接与模型交互，这非常重要，因为它为您提供了基础

10
00:00:36,080 --> 00:00:40,520
了解幕后实际发生的情况，以便当我们开始构建各种内容时

11
00:00:40,520 --> 00:00:46,480
通过巧妙的框架将我们抽象出来，您可以深入了解背后真正发生的事情

12
00:00:46,480 --> 00:00:47,320
场景。

13
00:00:48,040 --> 00:00:49,560
但这是介绍的结尾。

14
00:00:49,600 --> 00:00:54,760
现在是直接进入实验室的时候了，因为今天需要进行大量的编码。

15
00:00:54,800 --> 00:00:55,920
让我们开始吧。

16
00:00:56,480 --> 00:00:58,720
现在我们又回到了光标处。

17
00:00:58,720 --> 00:01:02,880
我们回到第一周的基础。

18
00:01:02,880 --> 00:01:06,980
现在我们正在实验室进行第一个大型项目。

19
00:01:06,980 --> 00:01:07,900
专业地。

20
00:01:07,900 --> 00:01:08,260
你。

21
00:01:08,300 --> 00:01:09,180
我正在呼唤它。

22
00:01:09,220 --> 00:01:13,780
这将是你个人职业的另一个自我，它将包括工具的使用。

23
00:01:13,820 --> 00:01:14,700
正如所承诺的。

24
00:01:14,700 --> 00:01:19,060
我知道我们在上一讲中已经介绍过它，但现在它就会出现。

25
00:01:19,620 --> 00:01:25,820
首先，我想向您介绍一个名为 Pushover 的漂亮小工具，这是我上一门课程中的人用的

26
00:01:25,820 --> 00:01:27,340
会深情地记得。

27
00:01:27,380 --> 00:01:30,780
这是一个很好的小工具，我不得不这样做。

28
00:01:30,780 --> 00:01:34,380
我必须把手机调成静音，因为我们要使用它。

29
00:01:34,380 --> 00:01:39,300
所以，如果我收到短信之类的东西，我确实很抱歉，但这很重要，就像你会的那样

30
00:01:39,300 --> 00:01:39,700
看。

31
00:01:40,060 --> 00:01:44,700
Pushover 是一个可爱的工具，可让您向手机发送推送通知。

32
00:01:44,700 --> 00:01:48,180
如果您习惯使用 Twilio 等可发送短信的工具。

33
00:01:48,220 --> 00:01:53,180
Twilio 曾经非常容易使用，但现在围绕 SMS 的监管太多，实际上它很糟糕

34
00:01:53,180 --> 00:01:57,260
很难将所有事情整合在一起，甚至给自己发送短信。

35
00:01:57,300 --> 00:02:00,180
Pushover 非常简单，而且免费。

36
00:02:00,220 --> 00:02:04,580
至少我认为第一个月我现在要支付一些小额费用，但第一个月是免费的，

37
00:02:04,580 --> 00:02:05,960
所以你有足够的时间。

38
00:02:06,080 --> 00:02:09,360
你只需简单地进行推倒就可以了，一切都非常清晰。

39
00:02:09,360 --> 00:02:14,680
你在右上角设置了一个帐户，你会得到一个 API 密钥，实际上你会得到两个。

40
00:02:14,680 --> 00:02:21,880
你就像一个用户和一个令牌，你必须将其放入你的文件中，以便它可用

41
00:02:21,920 --> 00:02:22,440
这里。

42
00:02:22,840 --> 00:02:29,960
你还在手机上安装了一个名为 Pushover 的应用程序，我就放在那里。

43
00:02:30,360 --> 00:02:37,680
你这样做的原因是，如果我现在在这里运行一些导入，我会做通常的事情

44
00:02:37,720 --> 00:02:43,680
加载 EMV，其中现在将包含我的 Pushover 用户和令牌，我将创建 OpenAI

45
00:02:43,720 --> 00:02:44,360
图书馆。

46
00:02:44,720 --> 00:02:45,080
好的。

47
00:02:45,080 --> 00:02:48,000
所以我的软弱用户就属于这个领域。

48
00:02:48,000 --> 00:02:49,600
我的代币就在里面。

49
00:02:49,600 --> 00:02:55,560
这是发送推送通知消息的端点的 URL。

50
00:02:55,760 --> 00:02:59,680
所以这里的这个函数push 就足够了。

51
00:02:59,680 --> 00:03:05,400
基本上，您只需向该端点发出请求停止发布该 URL 即可。

52
00:03:05,400 --> 00:03:07,160
然后你传递一些数据。

53
00:03:07,160 --> 00:03:09,820
该数据具有用户令牌。

54
00:03:09,860 --> 00:03:15,060
令牌令牌和您想要推送到手机的消息本身。

55
00:03:15,340 --> 00:03:16,900
这只是它的结束。

56
00:03:16,900 --> 00:03:17,260
没有什么。

57
00:03:17,300 --> 00:03:20,180
我的意思是，这就是所有事情都应该超级简单的方式。

58
00:03:20,340 --> 00:03:22,980
所以我应该能够在这里运行这个函数。

59
00:03:23,020 --> 00:03:23,380
嘿。

60
00:03:23,420 --> 00:03:25,340
它现在应该会出现在我的手机上。

61
00:03:27,740 --> 00:03:28,140
就这样吧。

62
00:03:28,180 --> 00:03:29,940
我希望你听到的声音响亮而清晰。

63
00:03:30,180 --> 00:03:31,100
我会再做一次。

64
00:03:32,620 --> 00:03:33,140
我们开始吧。

65
00:03:33,180 --> 00:03:33,740
我明白了。

66
00:03:33,740 --> 00:03:34,820
嘿，两次。

67
00:03:35,020 --> 00:03:41,300
这是一种很酷的方式，可以通过代码通知自己一些事情，而不必担心

68
00:03:41,300 --> 00:03:43,740
关于短信规则和类似的事情。

69
00:03:44,420 --> 00:03:46,340
好吧，那就推过去了。

70
00:03:46,380 --> 00:03:50,380
请在有空的时候安装它，因为我们不仅这次要用到它，而且

71
00:03:50,380 --> 00:03:52,220
我们也将在其他项目中使用它。

72
00:03:52,300 --> 00:03:54,020
这是一件有用的事情。

73
00:03:55,180 --> 00:03:55,820
好的。

74
00:03:55,860 --> 00:03:59,380
现在我将向您介绍两个看起来很简单的函数。

75
00:03:59,380 --> 00:04:04,140
其中一个称为记录用户详细信息，另一个称为记录。

76
00:04:04,180 --> 00:04:05,500
未知的问题。

77
00:04:05,980 --> 00:04:13,240
我想要为我们的 LM 配备这两个工具，以便它可以完成这些事情。

78
00:04:13,240 --> 00:04:18,320
它将能够记录用户是否想要与我们联系，并且能够

79
00:04:18,320 --> 00:04:21,280
记录用户是否提出不知道如何回答的问题。

80
00:04:21,280 --> 00:04:27,400
根据记录，我的意思是它将向我的手机发送推送通知，以便我立即知道

81
00:04:27,400 --> 00:04:28,680
如果有人这样做。

82
00:04:29,160 --> 00:04:37,160
所以它会说它正在记录某人，一个拥有这封电子邮件和这些笔记的人

83
00:04:37,320 --> 00:04:39,560
它将返回记录的内容。

84
00:04:39,560 --> 00:04:41,200
所以这是一件有用的事情。

85
00:04:41,720 --> 00:04:47,360
如果它收到一个问题，它不知道它会推送所问问题的记录。

86
00:04:48,080 --> 00:04:52,080
为什么我们不让这个问题变得更具描述性，我无法回答。

87
00:04:52,360 --> 00:04:52,840
回答。

88
00:04:52,840 --> 00:04:53,640
我们开始吧。

89
00:04:53,760 --> 00:04:57,200
所以现在可以很好、清晰地记录兴趣。

90
00:04:57,200 --> 00:04:58,960
我们从那里出发。

91
00:04:59,120 --> 00:05:05,760
好的，我们的想法是，我们希望将这些变成 LM 可以使用的工具。

92
00:05:06,040 --> 00:05:12,040
现在请记住我告诉过你，归根结底，工具的使用只是 JSON 和 if 语句，

93
00:05:12,040 --> 00:05:13,950
这就是你现在将要看到的。

94
00:05:14,430 --> 00:05:15,830
这是一些 JSON。

95
00:05:15,830 --> 00:05:17,070
JSON 相当长。

96
00:05:17,070 --> 00:05:19,070
相当冗长。

97
00:05:19,230 --> 00:05:24,030
代理框架所做的一件事是它们会自动为您完成所有这些工作。

98
00:05:24,030 --> 00:05:29,150
所以你不用再担心这个了，因为很多东西都是非常样板的，很多

99
00:05:29,150 --> 00:05:31,310
很多标准 JSON。

100
00:05:31,750 --> 00:05:35,190
但这里的 JSON 记录了用户详细信息。

101
00:05:35,190 --> 00:05:40,190
JSON 是引用此函数的 JSON blob。

102
00:05:40,190 --> 00:05:43,950
它描述了能够调用该函数的能力。

103
00:05:43,950 --> 00:05:46,270
它给它一个记录用户详细信息的名称。

104
00:05:46,270 --> 00:05:48,630
它说你为什么要这样做？

105
00:05:48,670 --> 00:05:54,310
使用此工具记录用户有兴趣联系并提供电子邮件地址。

106
00:05:54,750 --> 00:05:56,910
然后我们指定参数。

107
00:05:57,110 --> 00:06:00,550
有一种称为电子邮件，一种称为姓名，一种称为笔记。

108
00:06:00,710 --> 00:06:03,790
看这里，这是电子邮件名称和注释。

109
00:06:04,150 --> 00:06:06,230
我们对每一个都进行了描述。

110
00:06:06,510 --> 00:06:11,870
我们说电子邮件是必需的并且没有其他属性。

111
00:06:12,590 --> 00:06:17,090
所以你可能想知道这是关于什么的。

112
00:06:17,090 --> 00:06:22,930
需要记住的是，这是将发送到 OpenAI 的信息。

113
00:06:23,210 --> 00:06:26,450
我们要对它说，你有能力做到这一点。

114
00:06:26,450 --> 00:06:29,610
告诉我你是否想让我为你运行它，我会告诉你答案。

115
00:06:29,890 --> 00:06:31,450
这就是这里发生的事情。

116
00:06:31,450 --> 00:06:39,090
这就像用 JSON 格式描述这个函数的作用的打包方式，这样 LLM 就可以

117
00:06:39,090 --> 00:06:44,730
在其响应中决定是否要实际调用此工具。

118
00:06:45,410 --> 00:06:51,810
然后与记录未知用户问题非常类似，我们给它一个名称，函数的名称，

119
00:06:51,970 --> 00:06:53,610
我们给它一个描述。

120
00:06:53,610 --> 00:06:58,570
这就是法学硕士将用来决定是否适合使用该工具的依据。

121
00:06:58,930 --> 00:07:06,130
然后我们说它有一个属性问题，它是一个字符串，这个问题不可能是

122
00:07:06,130 --> 00:07:06,970
回答道。

123
00:07:07,370 --> 00:07:09,890
一切就这样结束了。

124
00:07:09,930 --> 00:07:15,050
让我们运行这个并运行它吧。

125
00:07:15,330 --> 00:07:18,190
如果我运行所有内容，我就不会运行这些函数本身。

126
00:07:18,190 --> 00:07:21,470
如果你运行失败，那么你稍后就会收到名称错误。

127
00:07:21,470 --> 00:07:22,990
这是需要注意的事情。

128
00:07:22,990 --> 00:07:26,590
因此，请务必回来并确保您已运行所有单元。

129
00:07:27,350 --> 00:07:28,070
好的。

130
00:07:28,390 --> 00:07:35,630
最后一步是我们将把这两个 JSON 块放入工具列表中。

131
00:07:35,990 --> 00:07:39,870
类型就是函数，函数就是那个函数。

132
00:07:40,030 --> 00:07:44,590
所以现在这个 JSON 斑点是一个大的 JSON 斑点。

133
00:07:44,590 --> 00:07:45,670
我们来看看吧。

134
00:07:46,030 --> 00:07:47,710
打印工具。

135
00:07:48,670 --> 00:07:52,150
如果我这样做的话，你就会看到实际上会发生什么。

136
00:07:52,150 --> 00:07:53,310
这可能看起来更好。

137
00:07:53,310 --> 00:07:53,790
我们开始吧。

138
00:07:53,790 --> 00:07:54,910
它确实看起来更好。

139
00:07:55,190 --> 00:08:03,790
这就是现在的工具，它是一大块 JSON 样板 JSON，它描述了两个函数

140
00:08:03,790 --> 00:08:08,310
我们提供名称、描述、参数等。

141
00:08:08,310 --> 00:08:13,550
将事物放入 JSON 是一种 llms 擅长理解的语言，因为它有很多内容

142
00:08:13,550 --> 00:08:14,750
他们的训练数据。

143
00:08:14,750 --> 00:08:19,510
这将帮助我们能够与 OpenAI 进行交互。