框架选型
🎯 学习目标
- 按团队规模、场景复杂度、栈(Python/Node)选择框架
- 识别「抽象泄漏」与版本升级风险
- 给出可落地的混合架构建议
引言
没有「最好」的框架,只有与团队阶段匹配的选择。本课提供决策树,避免为用框架而用框架。
章节正文
第 1 步:决策矩阵
| 因素 | 直连 OpenAI SDK | LangChain/LangGraph | Vercel AI SDK | LlamaIndex |
|---|---|---|---|---|
| 学习曲线 | 低 | 中–高 | 中 | 中 |
| RAG 开箱 | 自研 | 好 | 需组合 | 最好 |
| Next.js 流式 UI | 自研 SSE | 可 | 最好 | 偏 Python |
| Agent 状态图 | 自研 | LangGraph | 有限 | 有 Agent |
| 依赖体积 | 最小 | 大 | 中 | 大 |
建议:
- 单一 Chat API + 固定 Prompt → 直连 SDK
- Python RAG 原型 → LangChain 或 LlamaIndex
- Next.js 全栈 Chat → Vercel AI SDK + 必要时 LangChain.js
- 复杂 Agent + 审批 → LangGraph
第 2 步:抽象泄漏与迁移成本
框架升级可能导致 import 路径变化、类名废弃。Mitigation:
- Domain 层自研:业务只依赖你的
ChatService/RagService接口 - 框架调用封装在 adapter 包内
- 核心 Eval 不依赖框架细节(7.1)
记录「若去掉 LangChain 需重写多少行」作为引入前的清醒评估。
第 3 步:混合架构示例
Next.js (Vercel AI SDK UI)
↓ HTTP/SSE
Python FastAPI
├── LlamaIndex:离线索引
└── LangGraph:Agent 运行时
↓
Postgres + Qdrant索引与在线推理分离,是多数企业的稳定形态。
动手练习
- 为你当前项目填决策矩阵,写出选型结论与 3 条理由
- 画出自研 adapter 层应暴露哪 3 个方法
本节小结
简单场景直连 SDK;RAG 深度选 LlamaIndex;Next 流式选 Vercel AI SDK;复杂 Agent 选 LangGraph。用 adapter 隔离框架,控制迁移成本。