推荐:用 NSDT场景设计器 快速搭建3D场景。
几周前的一个星期五晚上,我醒来时收到一封来自 Lenny Rachitsky 的电子邮件,他是 Lenny’s Newsletter 的作者,Lenny’s Newsletter 是 Substack 上最大的时事通讯之一。 他想知道我是如何构建我们的 Every 聊天机器人的:
在接下来的几周里,我还写了一篇文章,作为客座文章发表在他的时事通讯上,内容是关于我如何构建机器人的。 这是一份详细的分步指南,介绍了 GPT-3 的工作原理以及如何使用它轻松创建这样的问答聊天机器人——无需编程经验。 它于周二上线,成为 Lenny 有史以来流量最高的一天:
你可以看到 GPT-3 在像这样的简单完成上表现良好。 但即使提示变得更加复杂,它也表现良好。
例如,你可以提示它定义产品市场契合度:
如您所见,GPT-3 已经阅读了足够多的聊天机器人文字记录和产品管理帖子,能够根据这种提示与我们开始对话。
我们可以通过写更多的文字记录来继续我们的对话:
不错! 它在正确的范围内,但它对良好激活率的估计略低于 Lenny 的数据所说的平均值。 理想情况下,由于它是 Lenny 聊天机器人,我们希望它返回他在文章中提供的基准。
一旦我们开始真正探测机器人,这种问题只会变得更大。 例如,如果我们问它 Substack 的第一个发布者是谁——这是 Lenny 讨论过的话题——它会说是 Andrew Sullivan:
成功! 现在它告诉我们,只有不到三分之一的创始人试图解决他们自己的问题。 我们所要做的就是将 Lenny 的所有帖子写在记事卡上,并将其与我们提出的任何问题一起输入模型,它会根据他写的内容做出回答。
但这引入了另一个问题:空间限制。
记事卡类比是恰当的,因为提示中的空间有限——现在,大约 4,000 个标记(每个标记相当于一个单词的四分之三)。 所以我们不能在 Lenny 的每个问题上提供整个档案。 我们必须对我们选择的东西挑剔。
让我们谈谈如何解决这个问题。
6、嵌入莱尼的档案在这一点上,我们将不得不摆脱与 GPT-3 Playground 的手动交互,并开始使用直接与 GPT-3 API 一起工作的代码块。 我们正在构建的代码将执行以下任务:
我们需要以一种便于我们的机器人搜索的方式下载和存储 Lenny 的档案。
我们需要一些代码来帮助从我们在上一步中创建的 Lenny 内容存档中找到相关的文本块。当用户提出问题时,我们希望使用上一步中的代码来获取最有可能回答问题的文本块,并将它们放入我们发送给 GPT-3 的提示中。我们将向用户显示结果答案。使用名为 GPT Index 的库很容易做到这一点,这是一个由 Jerry Liu 创建的开源库。 它独立于 OpenAI,但旨在帮助完成此类任务。 它是这样工作的:
创建文章块的索引。找到最相关的块。使用最相关的块向 GPT-3 提出我们的问题。注意:这将变得有点复杂和技术性。 如果你对此感兴趣,请继续阅读以获取解释。
你可以在 Google Colab 文件中访问和运行本文中的代码。 Colab 是一个基于云的编程环境,可让你从浏览器运行所有内容。
让我们从索引构建开始。
7、构建我们的索引我们需要做的第一件事是构建我们的索引。 可以将索引想象成一个数据库:它以一种易于搜索的方式存储文本片段的集合。
首先,我们将 Lenny 的时事通讯存档收集到一个文件夹中。 然后我们要求 GPT Index 获取文件夹中的所有文件,并将每个文件分成小的、连续的部分。 然后我们以可搜索的格式存储这些片段。
代码如下所示:
运行此函数时,我们将创建一个名为 index.json 的文件,其中包含已转换为可搜索格式的 Lenny 文章块。 这些被称为嵌入——每个文本块的浓缩数学表示。 就像纬度和经度可以帮助你判断地图上两个城市的距离一样,嵌入对文本块也有同样的作用。 如果你想知道两段文本是否相似,请计算它们的嵌入并进行比较。 具有“更接近”在一起的嵌入的文本块是相似的。
嵌入很方便,因为当用户提出问题时,它们可以轻松搜索 Lenny 的档案并找到最有可能回答我们问题的文章。
考虑到这一点,让我们运行代码看看会发生什么。
成功! Lenny 的档案是完全索引的,我们可以查询它以找到相关的文档块并使用这些块来回答我们的问题。 (如果你对大文档执行此操作,请小心,因为每 1,000 个标记的嵌入成本为 0.0004 美元。)
8、提出我们的问题要查询我们在上一节中创建的索引,要做的就是将一个问题粘贴到 GPT 索引中。 然后它将:
找到与问题最相关的索引块。将这些块和我们的问题组合成它发送给 GPT-3 的提示。打印输出。代码如下所示:
如果我问,“什么是消费者社交产品的良好保留率?” 它说:
“25% 很好。”
如果我质疑它,“消费者创业的想法最好来自试图解决自己问题的创始人吗?” 它返回正确答案:
“根据研究,似乎消费者创业创意来自试图解决自己问题的创始人是个好主意,因为这是大约 30% 最成功的消费品公司所采用的策略。然而,这不一定是最好的策略,因为其他策略,例如关注好奇心、已经奏效的策略和范式转变,也被大量成功的公司所采用。”
我们现在有一个端到端的解决方案,可以将问题转化为基于 Lenny 档案的答案。 而且只用了几行代码!
如果想查看实际结果,请查看Lenny机器人。
9、这一切意味着什么这仅仅是个开始。 随着这些技术的发展,可能性的范围几乎每天都在发生变化。 今天很难做的事,几个月后就会很容易。
每一份被其受众用作常青参考信息的时事通讯、书籍、博客和播客现在都可以重新包装为聊天机器人。
这对观众来说非常好,因为这意味着任何时候你想知道 Lenny(或任何其他创作者)对某个主题的看法,你都不必为了获得他们的文章或播客剧集而整理档案 回答你的问题。 相反,你将能够使用 Lenny 的聊天机器人立即得到他的答案——如果你需要更多详细信息,稍后可能会完整阅读这篇文章。
这对内容创作者来说也很棒。 他们现在能够以新的方式将他们已经创建的内容货币化,并减少他们必须回答的重复问题的数量。 这将(希望)给他们更多的时间和金钱来创造伟大的内容。
一类新的内容创作者将学习如何为他们的小众受众创造引人入胜的聊天机器人体验,将他们的个性和世界观结合起来,就像一些创作者学习创作引人入胜的 YouTube 视频、时事通讯文章或 TikTok 剪辑一样。
如果你使用 Lenny 的聊天机器人或遵循代码示例,你会发现它很有前途但还不完美。 学习为用户提供令人难以置信的此类体验的个人或团体可以获得巨大的回报。
我希望这能激励你踏上这段旅程。
相关文章
猜你喜欢