人们最常问我的个人人工智能Ask LukeW 的问题之一是“你是怎么构建这个服务的?” 虽然我写过很多关于这项服务的高层架构和产品设计细节的文章,但我从未发表过更技术性的概述。这份概述展现了足够多有趣的生成式出版理念,因此我决定分享一些这个过程。
首先,“问问 LukeW”利用了我多年来撰写的数千篇文章,解答了人们关于数字产品设计的问题。没错,篇幅确实很大,但这不足以涵盖我过去 30 年学到的所有知识。这意味着有时人们会向 LukeW 提出一些我可以回答但从未写过的问题。
在我为 Ask LukeW 构建的管理系统中,我不仅可以看到那些回答得不太好的问题,还可以添加内容以便将来更好地回答这些问题。在过去的两年里,我添加了大约 500 个答案,从而大大扩展了 Ask LukeW 的回复库。这样,下次再有人问类似的问题时,大家就不会束手无策了。
这个过程是生成式出版中一个有趣的部分,我之前写过,但这也是我知道人们经常问我如何构建 Ask LukeW 的原因。他们想要技术细节:什么框架,什么模型,什么服务。我从未写过这些,因为我不太懂技术,而且有几位优秀的工程师帮助我构建了 Ask LukeW。因此,我觉得自己无法很好地详细描述技术层面。
但有一天,我突然想到,可以利用我们代码人工智能公司Augment Code的帮助,它对代码库有着深入的上下文理解,可以帮助我编写 Ask LukeW 的工作原理。我在 VS Code 中打开了代码库,并向 Augment 询问人们提出的问题:“这个功能是如何工作的?”“代码库是什么?”“技术栈是什么?”,得到了非常详细的回复。
然而,Augment 的解答方式跟我不一样。所以我把 Augment 的详细技术回复发给了我们的另一家公司Bench 。前段时间,我用 Bench 阅读了我的很多博客文章,并创建了一个可以按照我的方式撰写文章的提示。我已将此提示保存在 Bench 的代理库中,可以随时应用它来按照我的风格撰写文章。
当我用 Augment 按照 Bench 的解释方式,将 Ask LukeW 的技术细节写好后,我把结果添加到 Ask LukeW 语料库中,作为已保存的答案。现在,每当有人问这类问题时,都能得到更详细的技术答案。事实上,这种方法非常有效,以至于我还请 Augment 为我的网站编写了整体技术栈,并进行了同样的流程。
就我个人而言,我发现这确实对生成式出版的现状提供了启发。通过观察人们向我的个人人工智能提出但得不到满意答案的问题,我可以了解我应该发布哪些类型的信息。我可以使用人工智能编码工具将代码转换成散文。我可以使用代理工作区按照我的方式重写散文,因为我教会了它像我一样写作。最后,我可以将这些内容反馈到我的语料库中,以便将来人们提出任何类似的问题时可以使用。
在我看来,这不像是以前的出版方式。当然,它被拆分成多个工具,需要我了解每个工具的功能,还有很多其他问题。我们还处于早期阶段,但这很令人兴奋。