LangChain最详细教程(一)
简介
本系列教程将以「系统梳理 + 实战落地」为核心,从基础到进阶全面拆解 LangChain—— 这个目前最流行的大语言模型(LLM)应用开发框架。
一、介绍LangChain
LangChain是 2022年10月 ,由哈佛大学的 Harrison Chase (哈里森·蔡斯)发起研发的一个开源框架,
用于开发由大语言模型(LLMs)驱动的应用程序。 比如,搭建“智能体”(Agent)、问答系统(QA)、对话机器人、文档搜索系统、企业私有知识库
等。
LangChain在Github上的热度变化
顾名思义,LangChain中的“Lang”是指language,即⼤语⾔模型,“Chain”即“链”,也就
是将⼤模型与外部数据&各种组件连接成链,以此构建AI应⽤程序
有哪些大模型应用开发框架呢
- LangChain :这些工具里出现最早、最成熟的,适合复杂任务分解和单智能体应用
- LlamaIndex :专注于高效的索引和检索,适合 RAG 场景。(注意不是Meta开发的)
- LangChain4J :LangChain还出了Java、JavaScript(LangChain.js)两个语言的版本,
- LangChain4j的功能略少于LangChain,但是主要的核心功能都是有的
- SpringAI/SpringAI Alibaba :有待进一步成熟,此外只是简单的对于一些接口进行了封装
- SemanticKernel :也称为sk,微软推出的,对于C#同学来说,那就是5颗星
为什么需要LangChain
在大语言模型(LLM)如 ChatGPT、Claude、DeepSeek 等快速发展的今天,开发者不仅希望能“使
用”这些模型,还希望能 将它们灵活集成到自己的应用中 ,实现更强大的对话能力、检索增强生成 (RAG)、工具调用(Tool Calling)、多轮推理等功能。
LangChain 为更方便解决这些问题,而生的。比如:大模型默认不能联网,如果需要联网,用 langchain。
我们可以使用GPT 或GLM4 等模型的API进行开发,为何需要LangChain这样的框架?
不使用LangChain,确实可以使用GPT 或GLM4 等模型的API进行开发。比如,搭建“智能体”
(Agent)、问答系统、对话机器人等复杂的 LLM 应用。 但使用LangChain的好处:
- 简化开发难度:更简单、更高效、效果更好
- 学习成本更低:不同模型的API不同,调用方式也有区别,切换模型时学习成本高。使用LangChain,可以以统一、规范的方式进行调用,有更好的移植性。
- 现成的链式组装:LangChain提供了一些 现成的链式组装 ,用于完成特定的高级任务。让复杂的逻
- 辑变得 结构化、易组合、易扩展
LangChain 提供了哪些功能呢
LangChain 是一个帮助你构建 LLM 应用的 全套工具集 。这里涉及到prompt 构建、LLM 接入、记忆管理、工具调用、RAG、智能体开发等模块。
LangChain的使用场景
LangChain资料介绍
- 官网地址:https://www.langchain.com/langchain
- 官网文档:https://python.langchain.com/docs/introduction/
- API文档:https://python.langchain.com/api_reference/
- github地址:https://github.com/langchain-ai/langchain
二、 LangChain架构设计
总体架构图
V0.1 版本
V0.2 / V0.3 版本
图中展示了LangChain生态系统的主要组件及其分类,分为三个层次:架构(Architecture)、组件 (Components)和部署(Deployment)。
版本的升级,v0.2 相较于v0.1,修改了⼤概10%-15%。功能性上差不多,主要是往稳定性(或兼 容性)、安全性上使劲了,⽀持更多的⼤模型,更安全。
内部架构详情
结构1:LangChain
langchain:构成应用程序认知架构的Chains,Agents,Retrieval strategies等 构成应⽤程序的链、智能体、RAG。
langchain-community:第三方集成
⽐如:Model I/O、Retrieval、Tool & Toolkit;合作伙伴包 langchain-openai,langchain
anthropic等。
langchain-Core:基础抽象和LangChain表达式语言 (LCEL)
小结:LangChain,就是AI应用组装套件,封装了一堆的API。langchain框架不大,但是里面琐碎的知 识点特别多。就像玩乐高,提供了很多标准化的乐高零件(比如,连接器、轮子等)
结构2:LangGraph
LangGraph可以看做基于LangChain的api的进一步封装,能够协调多个Chain、Agent、Tools完成更 复杂的任务,实现更高级的功能。
结构3:LangSmith
https://docs.smith.langchain.com/
链路追踪。提供了6大功能,涉及Debugging (调试)、Playground (沙盒)、Prompt Management (提 示管理)、Annotation (注释)、Testing (测试)、Monitoring (监控)等。与LangChain无缝集成,帮助你 从原型阶段过渡到生产阶段。 正是因为LangSmith这样的⼯具出现,才使得LangChain意义更⼤,要不仅靠⼀些API(当然也 可以不⽤,⽤原⽣的API),⽀持不住LangChain的热度。
结构4:LangServe
将LangChain的可运行项和链部署为REST API,使得它们可以通过网络进行调用。
Java怎么调用langchain呢?就通过这个langserve。将langchain应用包装成一个rest api,对外暴露服务。同时,支持更高的并发,稳定性更好。
总结:LangChain当中,最有前途的两个模块就是:LangGraph,LangSmith。
LangChain能做RAG,其它的⼀些框架也能做,而且做的也不错,⽐如LlamaIndex。所以这时 候LangChain要在Agent这块发⼒,那就需要LangGraph。而LangSmith,做运维、监控。故,
⼆者是LangChain⾥最有前途的。
三、开发前的准备工作
- 学习过Python语言基础
- 了解什么是 LLM、Token、Prompt、Embedding
- OpenAI API 或其他模型提供商,如 Anthropic、阿里云百炼、DeepSeek等
- 通过浏览器或app使用过大模型(比如:豆包、DeepSeek等)
然后就是使用的Python环境尽量在Python 3.10及以上