在 LangChain,我们认为网络研究是 LLM 的绝佳用例。一个月前,我们为此撰写了一篇博客文章。在那篇博客中,我们提到了领先的开源研究助手实现方案 - gpt-researcher。今天,我们很高兴地宣布 GPT Researcher 已与 LangChain 集成。具体来说,它与我们的 OpenAI 适配器集成,这允许 (1) 在底层轻松使用其他 LLM 模型,(2) 通过 LangSmith 轻松进行日志记录。
什么是 GPT Researcher?来自 GitHub 仓库
主要思想是运行“规划”和“执行”代理,其中规划代理生成要研究的问题,而执行代理根据每个生成的研究问题寻找最相关的信息。最后,规划代理过滤和聚合所有相关信息并创建研究报告。这些代理利用 gpt3.5-turbo-16k 和 gpt-4 来完成研究任务。
更具体地说
- 生成一组研究问题,这些问题共同构成对任何给定任务的客观意见。
- 对于每个研究问题,触发一个爬虫代理,该代理抓取在线资源以获取与给定任务相关的信息。
- 对于每个抓取的资源,根据相关信息进行总结,并跟踪其来源。
- 最后,过滤和聚合所有汇总的来源,并生成最终研究报告。
架构图如下所示。

在底层,这使用了 OpenAI 的 ChatCompletion
端点。随着可用模型数量开始增加(Anthropic、Llama2、Vertex 模型),我们一直在与 GPT Researcher 团队讨论集成 LangChain。这将使他们能够利用我们拥有的大约 10 种不同的 Chat Model 集成。这也将允许用户利用 LangSmith - 我们最近发布的调试/日志记录/监控平台。
为了使这种过渡尽可能无缝,我们添加了一个 OpenAI 适配器,它可以作为 OpenAI 的直接替代品。有关此适配器的完整演练,请参阅此处的文档。此适配器可以通过以下代码替换来使用
- import openai
+ from langchain.adapters import openai
有关在 GPT Researcher 仓库上启用它的完整 PR,请参阅此处。
它提供的第一个好处是能够轻松使用其他模型。通过传入 provider="ChatAnthropic", model="claude-2",
来创建,您可以轻松使用 Anthropic 的 Claude 模型。
它提供的第二个好处是与 LangSmith 的无缝集成。在底层,GPT Researcher 会进行许多独立的 LLM 调用。这种复杂性是它能够表现如此出色的重要原因。与此同时,这种复杂性也会使调试和理解正在发生的事情变得更加困难。通过启用 LangSmith,您可以轻松跟踪它。
例如,这是 LangSmith 跟踪,用于在语言模型生成要使用的代理描述时对其进行的调用
这是 LangSmith 跟踪,用于对语言模型的最终调用 - 当它要求它编写最终报告时

我们非常高兴能够支持 GPT Researcher。我们认为这是 LLM 的最大机遇之一。我们还认为 GPT Researcher 达到了适当的平衡,其架构当然非常复杂,但它比完全自主的代理更专注。我们认为能够达到这种平衡的应用程序代表着未来,我们非常高兴能够以任何方式与他们合作并提供支持。