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

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

说明:LangServe代替 langchainserver 成为新的langchain 部署工具

官网资料:🦜️🏓 LangServe | 🦜️🔗 Langchain

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

  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.rhkb.cn/news/202149.html

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

相关文章

VM——畸变校正、标定板标定

1、需求:精密测量时,使用远心镜头时依然会有畸变,最好使用标定板进行畸变校正和像素当量计算 2、方法:使用VM的“畸变校正”、“标定板标定”模块 2.1 标定板制作 step1: 使用海康的标定板生成工具,可以制作海康I型…

单片机调试技巧--修改bin文件实现断点

fromelf --text -a -c --outputall.dis F103_Moduel\F103_Moduel.axffromelf --bin --outputtest.bin F103_Moduel\F103_Moduel.axf 在启动文件中,修改UsageFault_Handler UsageFault_Handler\PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE…

智能座舱架构与芯片- (14) 测试篇 上

一、 验证平台概要 1.1 测试软件方法论 “软件定义汽车” 的时代,软件在整车制造中的重要性日渐凸显。但不同于其他行业的软件开发,汽车行业有自己独特的软件开发要求。首先是需求严谨、需求层次复杂、需要通过专业的工具进行管理;其次开发…

【开源】基于Vue.js的康复中心管理系统

项目编号: S 056 ,文末获取源码。 \color{red}{项目编号:S056,文末获取源码。} 项目编号:S056,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…

c语言:回文字符串

题目: 思路: 创建一个字符数组,然后判断字符串长度,用循环,看对应字符是否相等,相等则输出,不相等则将对应字符ascll较大的改成ascll较小的(题目要求字典最小的情况)。…

Markdown语法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

自然资源土地管理法律法规知识竞赛这么办才高端

近些年,全国各地自然资源厅举办了土地管理法律法规知识竞赛,从我公司承办的这些赛事来看,传统的必答题、抢答题、风险题的方式已无法激起现场比赛气氛,需要更加复杂有趣的环节设置及高端竞赛软件及其配套设备加持才可以让知识竞赛…

BootStrap【表格二、基础表单、被支持的控件、表单状态】(二)-全面详解(学习总结---从入门到深化)

目录 表格二 表单_基础表单 表单_被支持的控件 表单_表单状态 表格二 紧缩表格 通过添加 .table-condensed 类可以让表格更加紧凑&#xff0c;单元格中的内补&#xff08;padding&#xff09;均会减半 <table class"table table-condensed table-bordered"…

2023-11-22 LeetCode每日一题(网格中的最小路径代价)

2023-11-22每日一题 一、题目编号 2304. 网格中的最小路径代价二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数矩阵 grid &#xff0c;矩阵大小为 m x n &#xff0c;由从 0 到 m * n - 1 的不同整数组成。你可以在此矩阵中&#xff0c;从一个…

LeetCode(32)串联所有单词的子串【滑动窗口】【困难】(含图解)

目录 1.题目2.答案3.提交结果截图4.图解 链接&#xff1a; 串联所有单词的子串 1.题目 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 w…

Notpad-- ubuntu下载安装

Notpad-- ubuntu下载安装 下载 Gitee链接&#xff1a; https://gitee.com/cxasm/notepad– 安装 sudo apt install *.deb运行 /opt/apps/com.hmja.notepad/files/Notepad--出错 需要安装qt5 sudo apt-get install qt5-default

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化:输入延迟、卡顿,大小核调度

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化&#xff1a;输入延迟、卡顿&#xff0c;大小核调度 一、前言二、VMware 的优化2.1 键鼠输入延迟问题的解决2.1.1 搜索内核隔离2.1.2 关闭内存完整性并重启2.1.3 搜索启用或关闭windows功能2.1.4 关闭 hyper-v 和…

【Android】画面卡顿优化列表流畅度六(终篇)

上一篇&#xff1a; 【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改 场景回顾&#xff1a; 业务经过一年半左右的运行后&#xff0c;出现了明显的列表卡顿情况&#xff1b;于是开始着手进行列表卡顿优化。目前的情况是&#xff1a; 网络图…

2022最新版-李宏毅机器学习深度学习课程-P49 GPT的野望

GPT→类似于Transformer Encoder 训练任务&#xff1a;Predict Next Token 使用MASK-attention&#xff0c;不断预测“下一个token”。 可以用GPT生成文章。 How to use GPT? 给出描述和例子 给出前半段&#xff0c;补上后半段 In-context Learning(no GD) 结果 目前看起…

npm install安装报错

npm WARN notsup Not compatible with your version of node/npm: v-click-outside-x3.7.1 npm ERR! Error while executing: npm ERR! /usr/bin/git ls-remote -h -t ssh://gitgithub.com/itargaryen/simple-hotkeys.git 解决办法1&#xff1a;&#xff08;没有解决我的问题…

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞

思福迪 运维安全管理系统 test_qrcode_b 远程命令执行漏洞 一、漏洞描述二、漏洞影响三、网络测绘四、漏洞复现1.手动复现2.自动化复现3.python源代码 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任…

Navicat 技术指引 | 适用于 GaussDB 的数据迁移工具

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

从根到叶:随机森林模型的深入探索

一、说明 在本综合指南中&#xff0c;我们将超越基础知识。当您盯着随机森林模型的文档时&#xff0c;您将不再对“节点杂质”、“加权分数”或“成本复杂性修剪”等术语感到不知所措。相反&#xff0c;我们将剖析每个参数&#xff0c;阐明其作用和影响。通过理论和 Python 实践…

CSS实现空心的“尖角”

大家好&#xff0c;我是南宫&#xff0c;来分享一个昨天解决的问题。 我记得之前刷面试题的时候&#xff0c;CSS面试题里面赫然有一题是“如何用CSS实现三角形”&#xff0c;我觉得这个问题确实很经典&#xff0c;我上的前端培训班当初就讲过。 大概思路如下&#xff1a; 先…

win10戴尔电脑安装操作系统遇到的问题MBR分区表只能安装GPT磁盘

首先按F2启动boot管理界面 调整启动盘的启动顺序&#xff0c;这里启动U盘为第一顺序。 第一步 选择安装程序的磁盘 第二步 转换磁盘为GPT磁盘 一般出现 磁盘0和1&#xff0c;说明存在两个盘 &#xff0c;这里两个盘不是说的是C盘和D盘的问题&#xff0c;而是在物理上实际存在…