上周,LangChain 团队发布了 LangServe,目标是让链和代理能够以生产就绪的方式被快速部署。具体来说,它可以把一个链快速拉起为一个 FastAPI 服务,提供流式与批量接口,同时还能流式返回中间步骤。

本周,LangServe 又增加了两项能力:Playground 和可配置参数。两者围绕同一个思路展开:常见架构、实验与协作。

打开网易新闻 查看精彩图片

Playground 随部署免费获得

现在使用 LangServe 部署链时,会直接附带一个 Playground 体验。在这个 Playground 里,用户可以修改某些可配置参数的值,也可以尝试不同输入,并实时看到流式返回的响应。

官方给出的示例来自 WebLangChain 的 Playground。这个界面虽然简单,但已经包含了几项必要能力:

  • 流式输出
  • 中间步骤的完整日志
  • 可配置选项

这意味着工程师可以把链接分享给同事,让对方直接在界面里与链或代理交互,从而促进更大团队内的协作。官方设想的一个典型场景是:工程师可以很容易地把链或代理暴露给非技术同事使用,而不需要再单独接入前端。

面向实验的参数切换

Playground 的另一个作用是方便试验不同参数。在 WebLangChain 示例中,官方暴露了多个不同模型,包括 Anthropic 和 OpenAI,也暴露了多个不同的检索器。

这样一来,无论是技术人员还是非技术人员,都可以很方便地试验不同组件组合。

可配置参数来自 Runnable 配置

支撑这种实验能力的新特性,是 Runnable 的配置机制。官方最近加入了新语法,允许任意组件或组件的一部分被设为可配置。这个能力并不局限于 LangServe,它本身属于 LangChain Expression Language 的一部分,官方也提供了对应 cookbook。

目前这个配置能力已经在几个地方暴露出来。除了前面提到的 Playground,官方也在主 WebLangChain 应用中开放了配置入口。

通过 URL 保存不同配置版本

借助配置能力,用户可以通过 URL 保存不同版本的配置。这个机制有几种使用方式。在 WebLangChain 中,官方把它暴露给最终用户,让用户可以在界面里直接使用某个配置。

官方更看重的场景是内部应用:让内部用户在不同配置选项之间进行选择。在 Playground 中,这个能力同样被暴露出来,用户可以为某个配置复制对应的 URL。

需要说明的是,目前配置选项还不会被持久化保存。官方正在 alpha 测试一个部署平台,在这个平台上配置会被持久化,并且可以为多个不同用户分别保存配置。