Appearance
在正式开始敲代码之前,先来了解一下市面上主流的 AI 研发技术栈:
OpenAI SDK、LangChain、LlamaIndex、Vercel AI SDK 快速上手使用。
4 种技术栈对比和选择
学习环境:Jupyter Notebook + Deno + Vscode(Cursor)
- Jupyter Notebook:在 AI 领域常用的一款交互式编程工具
- Deno:一个现代化的 JavaScript 和 TypeScript 运行时,可以结合 Jupyter Notebook 使用
安装 Deno
bash
# 安装 Deno
curl -fsSL https://deno.land/x/install/install.sh | sh
# 使用 Deno 作为 Jupyter 的kernel(内核)
deno jupyter --install
安装 Jupyter Vscode(Cursor)插件
测试
OpenAI SDK
基本介绍
OpenAI 官方提供的 AI SDK
- 提供了直接访问 OpenAI API 的能力
- 集成了 chat、embedding、fine-tuning 等
- 支持所有 OpenAI 系列的 LLM
- 支持三方中转 api(302、openrouter 等)
快速上手
快速上手代码详见:jupyter-notebook/第 20 课/openai-api.ipynb
OpenAI 更多资料详见官方文档:https://platform.openai.com/docs/overview
LangChain
基本介绍
LangChain 是一个用于开发 LLM 应用的框架
- 它提供了一套完整的工具链,通过 LCEL(LangChain Expression Language) 可以帮助开发者快速构建基于 LLM 的应用。
- 支持大量 LLM 模型的调用,包括 OpenAI、Anthropic、Google 等。
- 可通过 LangGraph 快速构建 Agent 应用
快速上手
LCEL 是 LangChain 提供的一种表达式语言,用于描述和执行复杂的链式操作。
Runnables
- 一个 Runnable 是一个可以执行的组件,它可以是 LLM、工具、链 等。
- 通过 Runnable 进行组合构建一条链式操作(Chain)。
Chains
- 本身也是 Runnable
- 也可以和其它的 Runnable 组合在一起,形成一条新的链式操作(Chain)。
快速上手代码详见:jupyter-notebook/第 20 课/langchain-api.ipynb
Langchain 更多资料详见官方文档:https://js.langchain.com/docs/how_to/
LlamaIndex
基本介绍
LlamaIndex 是一个开发 LLM 应用的框架
专注于帮助 LLM 应用连接和处理自定义数据。它提供了一套完整的工具,核心用于构建 RAG 应用。
支持大量 LLM 模型的调用,包括 OpenAI、Anthropic、Google 等。
针对 RAG 的不同阶段包含很多内置的组件和优化方案(数据加载、分割、嵌入、检索前处理、检索后处理等)
快速上手
快速上手代码详见:jupyter-notebook/第 20 课/llamaindex-api.ipynb
LlamaIndex 更多资料详见官方文档:https://ts.llamaindex.ai/docs/llamaindex
Vercel AI SDK
基本介绍
Vercel AI SDK 是一个专注于前端 AI 应用开发的工具包,特别适合构建基于 React 、 Next.js、Vue 等的全栈 AI 应用。
- 提供了一系列的 Hooks 和组件,用于快速构建 AI 应用。
- 支持多种 LLM 模型,包括 OpenAI、Anthropic、Google 等。
快速上手
详见:jupyter-notebook/第 20 课/vercel-ai-sdk-api.ipynb
Vercel AI SDK 更多资料详见官方文档:https://sdk.vercel.ai/docs/introduction#why-use-the-ai-sdk
对比
AI 框架 | 类比 UI 框架 | 类比说明 |
---|---|---|
OpenAI SDK | Tailwind CSS | • 基础的工具集(原子化的样式,但不原始) • 灵活性、可控性高但需要自己组装 |
LangChain | Ant Design | • LCEL 中包含大量的组件(类似于 Ant Design 中包含大量针对不同场景的组件) • 可以快速搭建一个原型,但是可控性、灵活性相对较差 • 包含大量组件 api,学习成本相对较高 |
LlamaIndex | Ant Design Pro | • 同样包含很多组件,尤其是针对 RAG 应用的场景(类似于 Ant Design Pro 针对后台管理系统的场景) • 能快速搭建一个原型,同样但是可控性、灵活性相对较差 • 包含大量组件 api,学习成本相对较高 |
Vercel AI SDK | Shadcn UI | • 在基础工具集的基础上,拓展了一些使用场景,比如支持多模型、hooks 机制(类似于 Shadcn UI 基于 tailwind 拓展了一些组件场景,但没改变原始的 tailwind 写法) • 相比较 OpenAI SDK,拓展了更多的使用场景,相比较于 LangChain、LlamaIndex,没有封装大量组件 api,学习成本、灵活、可控性更高 |
从 0 ~ 1 的场景,前端如何选择技术栈框架
原型验证
可视化低代码平台:Dify 等
代码构建,可以选择 LangChain(工具链大全集) 或 LlamaIndex(RAG 处理大全集)
生产环境
全栈 AI 应用(可能会调用不同 LLM provider),可以选择 Vercel AI SDK
深度聚焦使用 OpenAI,可以选择 OpenAI SDK