LangChain.js
LangChain.js
是 Python 版 LangChain 的姊妹项目,也是由 Harrison Chase 主理。
特点:
- 可以和 Python 版 LangChain 无缝对接
- 抽象设计完全相同,概念一一对应
- 所有对象序列化后都能跨语言使用
- 但 API 差别挺大,不过在努力对齐
支持环境:
- Node.js (ESM and CommonJS) - 18.x, 19.x, 20.x
- Cloudflare Workers
- Vercel / Next.js (Browser, Serverless and Edge functions)
- Supabase Edge Functions
- Browser
- Deno
安装
npm install langchain
不足之处
版本升级坑
如果想 npm update
能更新 LangChain.js 到最新版,需要修改 package.json
:
- "langchain": "^0.0.155",
+ "langchain": "~0.0.155",
文档坑
文档质量还在持续提升,但稍微用深一些,还得读源码才行。
比如向 OpenAI 发出请求,最核心的一个 call函数 options
参数没有枚举可选值。
代码示例
以下代码使用 LangChain.js 的 PromptTemplate
和 ChatOpenAI
、ChatBaiduWenxin
,测试批量 prompt 在不同大模型下的效果。
总结
- 努力对齐 Python 版的能力(甚至为此做了一个基于 gpt-3.5-turbo 的代码翻译器)
- 保持兼容尽可能多的环境
- 对质量关注不多,但相信随时间自然能解决
LangChain 做为 LLM 应用的浪尖项目,尽管它有很多缺点,但它所做的每件事,都有真实需求在背后推动。 就算不用 LangChain,也可以学习它的思路,了解它的变化,掌握前沿技术。
推荐订阅 LangChain 的 blog
。
思考
未来产品经理和研发的分工可能有所改变:
- 产品经理定义
prompt
、chain
、agent
(简称 PCA),研发开发调试环境和生产环境 - PCA 的定义数据保存在独立 repo,独立进行版本管理,和代码解耦
- 无需传统上线发布行为,就能改变产品的行为。这是另一种「热更新」
- 以上工作就算都是一个人做,也值得解耦