LangChain 入门①:什么是 LangChain?LLM 应用开发的 “好帮手”

作者:大模型教程日期:2025/11/29

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

1.LangChain概述

LangChain是 2022年10月 ,由哈佛大学的 Harrison Chase (哈里森·蔡斯)发起研发的一个开源框架,用于开发由大语言模型(LLMs)驱动的应用程序。

比如,搭建“智能体”(Agent)、问答系统(QA)、对话机器人、文档搜索系统、企业私有知识库等。 ‍

常用的LLM开发框架

开发语言开发框架stars数量推荐指数
PythonLangChain112k⭐⭐⭐⭐⭐
PythonLlamaIndex43.3k⭐⭐⭐⭐
JavaLangChain4J8.5k⭐⭐⭐
JavaSpringAl6.2k⭐⭐
JavaSpringAl Alibaba5.0k⭐⭐
C#SemanticKernel25.5k⭐⭐⭐
  • LangChain:这些工具里出现最早、最成熟的,适合复杂任务分解和单智能体应用LlamaIndex :专注于高效的索引和检索,适合 RAG 场景。(注意不是Meta开发的)
  • LangChain4J:LangChain还出了Java、JavaScript(LangChain.js)两个语言的版本,
  • LangChain4j的功能略少于LangChain,但是主要的核心功能都是有的
  • SpringAI/SpringAI Alibaba :有待进一步成熟,此外只是简单的对于一些接口进行了封装
  • SemanticKernel :也称为sk,微软推出的,对于C#同学来说,那就是5颗星

基于RAG架构开发(Retrieval-Augmented Generation)

  • RAG:全称Retrieval-Augmented Generation(检索增强生成)
  • 作用:为大模型提供“知识库”,通过处理将数据存储到向量存储中,大模型根据用户输入,在向量存储中匹配需要的数据,并根据数据进行回答

RAG架构图

类似结构图:

基于Agent架构开发

对比RAG,Agent更加依赖LLM的推理决策能力,通过增加规划记忆工具调用的能力,构造一个能够独立思考、逐步完成给定目标的智能体。

举例

目前市面上比较火的AI编辑插件:cline本质上也是一个Agent

  • cline 是一款 Visual Studio Code 的开源 AI 编程辅助插件。
  • 它能够利用模型、工具和指令这三个构建模块自主生成代码,还可在获得用户许可后创建和编辑文件、运行命令、使用浏览器等,独立完成复杂的软件开发任务,符合智能体的定义。

Agent架构图

一个个数学公式来表示:

Tips

Agent和RAG不是冲突的,两个架构往往可以结合使用,实现1+1>2的效果

大模型应用开发的4个场景

场景1:纯Prompt

  • Prompt是操作大模型的唯一接口
  • 当人看:你说一句,ta回一句,你再说一句,ta再回一句...

场景2:Agent + Function Calling

  • Agent:AI 主动提要求
  • Function Calling:需要对接外部系统时,AI 要求执行某个函数
  • 当人看:你问 ta「我明天去杭州出差,要带伞吗?」,ta 让你先看天气预报,你看了告诉ta,ta再告诉你要不要带伞

场景3:RAG (Retrieval-Augmented Generation)

‍RAG:需要补充领域知识时使用

  • Embeddings:把文字转换为更易于相似度计算的编码。这种编码叫向量
  • 向量数据库:把向量存起来,方便查找
  • 向量搜索:根据输入向量,找到最相似的向量

举例:考试答题时,到书上找相关内容,再结合题目组成答案

RAG在智能客服中用的最广泛。

‍### 场景4:Fine-tuning(精调/微调)

‍举例:努力学习考试内容,长期记住,活学活用。

特点:成本最高;在前面的方式解决不了问题的情况下,再使用。

核心组件


  • Model I/O模块:使用最多,也最简单
  • Chains 模块: 最重要的模块
  • Retrieval模块、Agents模块:大模型的主要落地场景
  • 在这个基础上,其它组件要么是它们的辅助,要么只是完成常规应用程序的任务。
  • 辅助:⽐如,向量数据库的分块和嵌⼊,⽤于追踪、观测的Callbacks任务:⽐如,Tools,Memory ‍

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI


LangChain 入门①:什么是 LangChain?LLM 应用开发的 “好帮手”》 是转载文章,点击查看原文


相关推荐


C#.NET 范围与索引(Range、Index)完全解析:语法、用法与最佳实践
唐青枫2025/11/27

简介 C# 8.0 引入了范围(Ranges)和索引(Indices)功能,提供了更简洁、更直观的语法来处理集合中的元素和子集。这些功能大大简化了数组、字符串、列表等数据结构的操作。 索引(Indices) 从末尾开始的索引 使用 ^ 运算符表示从末尾开始的索引: int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 传统方式获取最后一个元素 int last1 = numbers[numbers.Length - 1]; // 9 //


VI视频输入模块学习
浅笑离愁12342025/11/24

文章目录 1.RV1126的视频输入vi模块1.1什么是VI模块1.2RV1126的VI模块重要参数 2.RV1126的VI模块初始化API2.1RK_MPI_VI_SetChnAttr讲解: 1.RV1126的视频输入vi模块 V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写 1.1什么是VI模块 RV1126的VI模块指的是视频输入模块,它的


Redis_16_哨兵
寻梦缘62025/11/23

在我们上篇文章讲的主从复制模式下,主节点一旦挂了,就需要人工进行主从切换,并且需要将新的主节点通知给客户端。这会大大影响系统的可用性,毕竟靠人工修复这个事情是很不靠谱的,先不说要耗费大量的时间;还有可能配置错误,导致出现问题。 哨兵机制就是通过自动化的手段来解决主节点挂了的问题~~ 基本概念 哨兵进程是通过独立的进程来体现的,和之前redis-server是不同的进程!!redis-sentinel不负责存储数据,只是对redis-server起到监控的效果。而且这里的哨兵节点,也会搞一个


「干货长文」强化学习完全指南:从基础MDP到TRPO/PPO/GRPO算法演进
智见AGI2025/11/21

随着 gpt-o1出现以及 DeepSeek-R1 的技术开源,强化学习从以谷歌 DeepMind 团队为主的游戏领域,以及与传统控制相结合的具身智能机器人领域,走上了LLM甚至多模态的行业赛道。通过复杂任务拆解和奖励为导向的迭代训练大幅提升了大模型解决复杂问题能力,泛化性以及动态调整能力。Reinforce Learning 带领 LLM 步入 2.0 时代,继 PPO 之后,最近关于梯度优化(Policy Optimization)算法的创新也是层出不穷,GRPO,DAPO,CISPO 等


TypeScript 简史:它是怎么拯救我的烂代码的
也无风雨也雾晴2025/11/19

看烂代码的场景 接手老旧 JavaScript 项目的时候,盯着屏幕上的一行代码发呆,这种绝望你一定体会过: JavaScript function process(data) { return data.value + 10; // 此时 data 是 undefined,程序崩了 } 看着这个 data,我满脑子都是问号: 它是对象还是数字? 到底是谁传进来的? 我要是改了它,会不会导致隔壁模块的页面挂掉? 为什么明明是字符串 '10',结果拼成了 '1010'? 这时候我就在


从Docker到宝塔:Magento2 2.3.5 安装全流程踩坑与成功实践
Linux运维技术栈2025/11/18

前言:Magento2 作为 Adobe 旗下的企业级开源电商平台,凭借强大的扩展性、多语言支持和精细化运营功能,成为全球众多电商企业的首选。但它的安装配置门槛较高,尤其对新手而言,环境兼容、依赖管理、静态资源部署等环节极易踩坑——我就曾因盲目尝试 Docker 容器部署,遭遇了版本冲突、权限隔离、内存溢出等一系列问题,耗费大量时间仍未成功。 后来转向操作更直观的宝塔面板,在反复调试中解决了 Composer 1.x 降级、内存限制解除、静态文件 404、CSS/JS 缺失等核心痛点,最终摸索出


Python 的内置函数 set
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 set Python 的内置函数 set() 是一个非常有用的数据结构,用于创建无序且不包含重复元素的集合。它提供了高效的成员检测和元素去重功能,是处理集合运算的理想选择。 基本用法 创建集合: # 使用花括号 fruits = {'apple', 'banana', 'orange'} # 使用set()函数 numbers = set([1, 2, 3, 2, 1]) # 结果为{1, 2, 3} 空集合创建: emp


Python 的内置函数 ord
IMPYLH2025/11/16

Python 内建函数列表 > Python 的内置函数 ord Python 的内置函数 ord() 是一个非常有用的字符串处理函数,它主要用于获取单个字符的 Unicode 码点值。具体来说,ord() 函数接受一个长度为 1 的字符串(即单个字符)作为参数,并返回该字符对应的 Unicode 码点的整数数值。 语法格式: ord(c) 其中 c 是一个表示单个字符的字符串。 主要特点: 只能处理单个字符,如果传入字符串长度超过1会抛出 TypeError对 ASCII 字符返


Redis(125)Redis在社交网络中的应用有哪些?
Victor3562025/11/15

在社交网络中,Redis 被广泛应用于以下场景: 用户会话管理 好友关系存储 消息队列 活动流 点赞和评论统计 排行榜 下面详细介绍这些应用场景,并结合 Java 代码示例进行讲解。 1. 用户会话管理 Redis 可以用于管理用户会话,通过 Redis 的高效性和持久化机制,能够快速读取和写入会话数据。 示例代码 import redis.clients.jedis.Jedis; public class SessionManagementExample { public sta


OkHttp网络框架设计
杨充2025/11/13

OkHttp网络框架设计 目录介绍 01.整体概述介绍 1.1 概述介绍 1.2 核心特性说明 1.3 技术架构概览 1.4 问题思考 02.核心架构设计 2.1 整体架构设计 2.2 整体设计思路 2.3 核心组件关系图 03.核心组件详解 3.1 OkHttpClient 3.2 Request请求封装 3.3 Call请求执行接口 3.4 Dispatcher调度器 3.5 拦截器机制 3.6 Response返回 04.核心流程分析 4.1 请求执行流程 4.2 连

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读