LangChain: 类似 Flask/FastAPI 之于 Django,LangServe 就是「LangChain 自己的 FastAPI」

原文:LangChain: 类似 Flask/FastAPI 之于 Django,LangServe 就是「LangChain 自己的 FastAPI」 - 知乎

当前阶段对开发者来讲,一个让人感到舒服的开发流程应该具备这么五特性:

  1. 支持 LCEL,让人赏心悦目又可以简化开发流程的 dsl 必须支持
  2. 优雅简洁的 cli ,可以方便的通过 cli 来创建项目骨架、对话式配置需要用到的依赖、变量等
  3. 「reload」支持,可以边改代码边看到结果
  4. 改完马上就能看到 demo 的结果,而不是为了看一眼结果转头去调一堆部署细节到头来忘了接下来想干啥...
  5. 多机多卡集群部署支持,llm 时代就是大数据时代,真正有意义的生产级部署面临的数据预处理、数据并行、参数并行、推理并行都不是单机的思路可以解决的,所以仅仅针对单机环境优化的开发工具除了自嗨没有意义

让人惊喜的是 LangServe 已经完成了前四个,第五个且再看。

LangServe 是 LangChain 的 Eugene Yurtsev 帅哥主刀开发的一个快速开发应用框架,跟 LangChain 的关系有点类似于 Flask/FastAPI 之于 Django 的关系,ta 自己 github 上的介绍是 「LangServe helps developers deploy LangChain runnables and chains as a REST API.」,其中 runnable 就是「人民群众最喜欢的 LCEL」的基本构成模块,LangServe 刚开始开发还没「满月」,git 上的第一条 commit 是 9 月 29 号,以至于 langserve.ai 域名都还没人抢注(只能帮到这儿了.... ;)

说实话头一次看到 LangServe 我还以为是 LangChainServe,以至于名字看过几回都没仔细研究 ta,jina-ai 的 LangChainServe 挺好的,由 Jina 开发并开源出来,方便大家把写好的 LangChain 服务放到 Jina 云上去,毕竟 Jina 本身就是从 BERT-as-a-service 开始的,把机器学习中的服务独立放出来是它家看家本领。

看一下 LangServe 的 Features:

  1. LangServe 是由 LangChain 团队自己开发,作用跟 jina 的 LangChainServe 类似(估计这也是为啥 jina 把LangChainServe 设成 archived 的原因),技术选型上都差不多但没有绑定特定的云(当然 ta 的 cli 里面倒是率先支持了 gcp)。初步看下来只是更加倾向于 LCEL 了,把 DAG 的每一部分都打散开,做成 web service,更加方便拆开、重组,单这一个点就很吸引人!
  2. 内置了 langchain cli,通过运行 「langchain your-project」就可以像运行 「django-admin startproject mysite」写 web 一样的方式写 llm 应用!更进一步,在生成项目骨架之后, LangServe 提供了 makefile 脚本,方便通过 make start/deploy/test 等指令快速部署,当前版本的部署实现是通过 uvicorn 来做的,云端方面内置了 gcp 的支持。由于整个开发包是通过 poetry 管理的,你会发现如果你想把你开发的 llm 应用通过 pypi 放出去简直不要太简单,因为 poetry 内置了针对 pypi 的支持,想发布 package 到 pypi 你要做的就是去申请一个账号,然后在本地 poetry release。
  3. llm 应用其实就是 web 应用,自然没有理由不支持 「--reload」
  4. 另外一个特点当然就是内置了 「playground」页面,类似 FastAPI 可以随时查看测试 API ,通过这个你可以随时把 每个 runnable 打开看看,调试一下。FastAPI 是通过 http://your-ip:port/docs 或者 redoc 来内置提供了 api 的说明、调试,LangServe 也类似,ta 的入口在 http://your-ip:port/playground
  5. 没有针对多机多卡的集群环境支持,TBD

总结一下 LangServe 已经非常接近理想中的 llm 应用开发工具了,开发环境的各个步骤分别长这个样子,强烈推荐新项目采用!直观看一下几个开发界面:

图一:项目骨架内置的快速开发指令

图二:必不可少的 FastAPI docs

图三:重点是这个,可配置、可 debug 的 playground

跑个题,RAG 的评测还真是很不容易整!主观性墙,量化费劲,量化费劲就意味着不太容易通过升职加薪的答辩 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/206209.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坚鹏:中国工商银行数字化转型发展现状与成功案例培训圆满结束

中国工商银行围绕“数字生态、数字资产、数字技术、数字基建、数字基因”五维布局,深入推进数字化转型,加快形成体系化、生态化实施路径,促进科技与业务加速融合,以“数字工行”建设推动“GBC”(政务、企业、个人&…

Globalsign证书

Globalsign证书是一种被广泛应用于各个领域的网络安全解决方案。它提供了一系列的功能,包括保证在线交易的安全性、管理大量的数字身份以及自动验证和加密等。由于其全面的安全保障功能,许多大型公司、云服务供应商以及互联网创业者都选择了Globalsign证…

python命令行交互 引导用户输入一个数字

代码 以下代码将在命令行中,引导用户选择一个数字,并反馈用户输入的值 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/22 15:51 file: 引导用户输入一个数字.py desc: xxxxxx """#…

多普勒流速仪的功能作用是什么?

我国地域广大,各地降雨分布不均,某些城市经常会出现连续的降雨进而导致城市排水压力过大,为了提高城市应对排水过量的极端情况的出现,亟需一种方案能够对城市排水进行有效及时的监测,从而能够及时的采取应对方案。 在污…

pyqt5 窗口调用网页高德地图kpi,进行实时地图导航

作为主项目功能的一部分,这部分我想单独记录下来 一,注册高德kpi【进行实名认证】 高德开放平台 | 高德地图API (amap.com) 二,申请Key 三,进入路径规划-API文档-开发指南-Web服务 API|高德地图API (amap.com) 找到你需要的路径…

【漏洞复现】DPTech VPN存在任意文件读取漏洞

漏洞描述 DPtech是在网络、安全及应用交付领域集研发、生产、销售于一体的高科技企业。DPtech VPN智能安全网关是迪普科技面向广域互联应用场景推出的专业安全网关产品,集成了IPSec、SSL、L2TP、GRE等多种VPN技术,支持国密算法,实现分支机构…

[开源]Web端的P2P文件传输工具,简单安全高效的P2P文件传输服务

一、开源项目简介 小鹿快传 - 在线P2P文件传输工具 小鹿快传是一款Web端的P2P文件传输工具,使用了WebRTC技术实现P2P连接和文件传输。 二、开源协议 使用MIT开源协议 三、界面展示 产品截图 四、功能概述 简单安全高效的P2P文件传输服务 小鹿快传是一款Web端…

DolphinDB 浙商银行 | 第二期现场培训圆满结束

自 DolphinDB 高级工程师计划开展以来,客户们纷纷响应,除了定期收看我们每周三开设的线上公开课外,也有部分客户报名参加了 “总部工程师培训计划” 。 上周,我们迎来了总部培训的第二期学员:来自浙商银行的4位策略研…

什么是搜索相关性?AI如何驱动搜索相关性?

训练数据驱动机器学习,机器学习促进丰富的人机交互体验。在快速迭代的互联网时代,我们不断被各种广告铺盖,甚至经常细思极恐,“天呐,小红书怎么知道我面膜没了。”这都是算法和机器学习的鬼斧神工洞察着用户的搜索意图…

元素清空操作clear与选择操作check

元素清空操作clear与选择操作check clear() 作用 清空输入框的所有内容.clear() 等价于 .type("{selectall}{backspace}") 语法 .clear() .clear(options)option选项 元素选中操作check与uncheck check 语法 // 所有匹配到的选择框都会被选中一遍 .check()/…

【面试HOT300】滑动窗口篇

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于【CodeTopHot300】进行的,每个知识点的修正和深入主要参…