上周我们发布了 LangServe,这是一种以生产就绪方式轻松部署链和代理的方法。具体来说,它接受一个链,并轻松启动一个具有流式传输和批量端点的 FastAPI 服务器,并提供一种流式传输中间步骤的方法。
本周,我们正在进行一些新增功能——一个 Playground 和可配置性。两者都围绕着相同的理念:通用架构、实验和协作。
Playground
现在,当您使用 LangServe 部署您的链时,您将免费获得一个 Playground 体验。在这个 Playground 中,您可以更改某些可配置参数的值(稍后会详细介绍),以及尝试不同的输入并实时获得流式传输的响应。
下面的屏幕截图来自 WebLangChain 的 Playground,您可以在 这里 访问它。

为什么这有用?
首先,这立即为您的链和代理提供了一个(简单的)UI。虽然简单,但此 UI 确实具有必要的功能,例如
- 流式输出
- 中间步骤的完整日志
- 可配置选项
这将使与同事共享链接并在 UI 中与他们互动成为可能,从而促进更大的团队之间的协作。具体来说,我们认为这是一种让工程师轻松地为非技术人员提供与他们的链/代理交互的方式(而无需将其连接到前端)。
其次,这提供了一种试验不同参数的方法。在 WebLangChain 示例中,我们公开了多个不同的模型(Anthropic 和 OpenAI)以及多个不同的检索器
这使得任何人 - 技术人员或非技术人员 - 都非常容易地试验不同的组件。
可配置性
使这种实验成为可能的一项新功能是 runnable 的配置。具体来说,我们最近添加了语法,允许任何组件(或组件的某些部分)是可配置的。无论您是否使用 LangServe,这都是可行的 - 这只是 LangChain Expression Language 的一部分。请参阅我们的 cookbook 此处。
我们现在在几个地方公开了此配置。首先,如上所示,我们已在 Playground 中轻松公开了此配置。但是,此配置可以在 Playground 之外使用。我们也在我们的主要 WebLangChain 应用程序中公开了它。

通过配置,您可以通过 URL 保存不同版本的配置。这可以通过几种方式使用。对于 WebLangChain,我们将其公开给最终用户,以便他们可以在 UI 中使用该配置。我们认为这更多地用于内部应用程序,您希望让内部用户在不同的配置选项之间进行选择。我们还在 Playground 中公开了此功能,如下所示,您可以在其中复制给定配置的 URL。

请注意,对于配置选项,配置目前不会持久保存。我们目前正在 alpha 测试一个部署平台,在该平台上,配置是持久保存的 - 并且可以为多个不同的用户持久保存。如果您对此感兴趣,请联系 sales@langchain.dev。
通用架构
我们看到 LLM 应用程序的通用架构正在快速涌现。这些架构相当通用,并且可以通过几种不同的方式进行参数化。这一观察结果正在推动我们的大量工作。
例如,让我们看一下上周的 WebLangChain 应用程序。这是一个旨在检索增强生成的认知架构,它可以配置的方式有
- 用于回答的 LLM
- 用于生成后续搜索查询的 Prompt
- 用于生成答案的 Prompt
- 用于查找查询的检索器
我们看到,应用程序的架构通常需要大量的工程才能启动和运行。但在那之后,许多配置最好在某种 GUI 中完成。这可以实现更轻松的协作。
这种洞察力 - 以及对这是应用程序开发良好途径的信念 - 正在推动我们在这一领域的大量工作。