LangChain 的核心组件
- 模型 I/O 封装 - LLMs:大语言模型
- Chat Models:一般基于 LLMs,但按对话结构重新封装
- PromptTemple:提示词模板
- OutputParser:解析输出
 
- 数据连接封装 - Document Loaders:各种格式文件的加载器
- Document Transformers:对文档的常用操作,如:split, filter, translate, extract metadata, etc
- Text Embedding Models:文本向量化表示,用于检索等操作(啥意思?别急,后面详细讲)
- Verctorstores: (面向检索的)向量的存储
- Retrievers: 向量的检索
 
- 记忆封装 - Memory:这里不是物理内存,从文本的角度,可以理解为“上文”、“历史记录”或者说“记忆力”的管理
 
- 架构封装 - Chain:实现一个功能或者一系列顺序功能组合
- Agent:根据用户输入,自动规划执行步骤,自动选择每步需要的工具,最终完成用户指定的功能 - Tools:调用外部功能的函数,例如:调 google 搜索、文件 I/O、Linux Shell 等等
- Toolkits:操作某软件的一组工具集,例如:操作 DB、操作 Gmail 等等
 
 
- Callbacks

- 功能模块:https://python.langchain.com/docs/get_started/introduction
- API 文档:https://api.python.langchain.com/en/latest/langchain_api_reference.html
- 三方组件集成:https://python.langchain.com/docs/integrations/platforms/
- 官方应用案例:https://python.langchain.com/docs/use_cases
- 调试部署等指导:https://python.langchain.com/docs/guides/debugging
LangChain 与 Semantic Kernel 对比
| 功能/工具 | LangChain | Semantic Kernel | 
|---|---|---|
| 版本号 | 0.1.19 | python-0.9.7b1 | 
| 适配的 LLM | 多 | 少 + 外部生态 | 
| Prompt 工具 | 支持 | 支持 | 
| Prompt 函数嵌套 | 需要通过 LCEL | 支持 | 
| Prompt 模板嵌套 | 支持 | 不支持 | 
| 输出解析工具 | 支持 | 不支持 | 
| 上下文管理工具 | 支持 | C#版支持,Python 版尚未支持 | 
| 内置工具 | 多,但良莠不齐 | 少 + 外部生态 | 
| 三方向量数据库适配 | 多 | 少 + 外部生态 | 
| 服务部署 | LangServe | 与 Azure 衔接更丝滑 | 
| 管理工具 | LangSmith/LangFuse | Prompt Flow (*) | 
- LangChain 随着版本迭代可用性有明显提升
- 使用 LangChain 要注意维护自己的 Prompt,尽量 Prompt 与代码逻辑解依赖
- 它的内置基础工具,建议充分测试效果后再决定是否使用