CVHub | 初识langchain,3分钟快速了解!

news2025/9/19 23:25:04

本文来源公众号“CVHub”,仅用于学术分享,侵权删,干货满满。

原文链接:初识langchain

1 什么是langchain

langchain[1]是一个用于构建LLM-Based应用的框架,提供以下能力:

  • 上下文感知:可以为LLM链接上下文(如知识库、prompt等)

  • 推理:通过大模型的能力进行推理(推理、决策)

用计算机类比的话,在这套框架内,LLM扮演的是CPU的角色,langchain扮演的是主板,为其提供内存、磁盘等设备,使其完成更多复杂的功能。

langchain架构图

从架构图中可以看到,langchain提供了从协议、开发、部署到观测的一条龙服务。不过我们平时自己玩玩的话,主要用到的只有图中的LangChain、LangChain-Community和Langchain-Core部分。

2 langchain 四大模块

主要有Model I/O、Retrieval、Agents、Chains四个部分组成。

2.1 Chains

Chains可以说是最重要的模块了(不然你猜为啥它叫langchain)。Chains 顾名思义,它的作用是将不同的组件和功能串联起来,形成一个完整的处理流程,从而解决更复杂或多步骤的问题。

举个例子,我现在需要构建一个自动写文章的Agent,我们首先就会选择拆解问题然后再去解决:找素材、写文章。我们可以分别构建两个链去完成这个事情,然后再将其串起来完成整个流程。并且链已经封装好了一个能力,后续其他场景假如需要使用到查找素材的能力,直接就可以复用现有的链。

一个老生常谈的问题:Chains和Agents的区别是什么?我的理解,Chains提供的是解决特定子问题的能力,Agents是决策何时、如何适用Chains

2.2 Model I/O

Model I/O

这个模块主要包含了与LLM输入输出相关的实现。包括与各种大模型的交互接口、数据格式的formator。同时,也能用于chain中不同Runable对象之间数据的传输过程中的处理。

2.3 Retrieval

Retrieval

主要用于 Retrieval Augmented Generation(RAG) 。可以把这个模块理解为大模型应用的内存+数据库。通过对文本拆条+embedding的方式存储到向量数据库中,利用查询出的相关知识用于增强回答的质量,比较适合需要大模型理解特定领域知识的场景适用。

2.4 Agents

推荐看下这篇文章LLM Powered Autonomous Agents[2],对Agent系统又比较详细的阐述。Agents模块主要解决的是如何让LLM理解问题并能够正确地选择使用哪些工具、流程来解决一个复杂问题。其中就包括了如何根据观察结果选择和执行动作,并重复此过程直到完成任务。主要包含以下子模块:

  • Agents: 负责决策的执行和推理(比如ReAct)

  • Tools:用于执行特定任务的工具(比如一个查询天气的函数可以封装成一个tool)

3 写在最后

总的来说,Langchain就像是大语言模型的乐高积木。想象一下,如果LLM是大脑的话,Langchain就像是让大脑能跑起来的双脚、手臂还有眼睛,让一切变得可能。通过组合不同的Chains和Tools,可以构建出各种有趣的东西,感觉这才是真正的低代码平台...

目前也已经有不少公司在做Agents平台了,比如字节出的Coze,笔者已经玩了好一段时间了,感觉以后没有代码基础都能够轻松构造出一个自己的LLM 应用,我不会真的要失业了吧~哈哈哈

4 References

[1]: https://github.com/langchain-ai/langchain

[2]: https://lilianweng.github.io/posts/2023-06-23-agent/

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车零部件制造中的信息抽取技术:提升效率与质量的关键

一、引言 在汽车制造业中,零部件的生产是整个制造流程的关键一环。这些零部件,包括但不限于制动系统、转向系统和传动系统,是确保汽车安全、可靠运行的基础。为了满足现代汽车工业对效率和质量的严格要求,制造商们纷纷投入到高度…

jvm堆概述

《java虚拟机规范》中对java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。 一个JVM实例只存在一个堆内存(就是new 出来一个对象),java内存管理的核心区域 java堆区在jvm启动的时候就被创建,空间大小确定。是jvm管理的最大一…

探索代理服务器:保护您的网络安全与隐私

🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 隐藏真实IP地址: 访问控制: 加速访问速度: 过滤内容: 突破访问限制&#xff1…

深入浅出计算机网络 day.1 概论③ 电路交换、分组交换和报文交换

人无法同时拥有青春和对青春的感受 —— 04.3.9 内容概述 01.电路交换、分组交换和报文交换 02.三种交换方式的对比 一、电路交换、分组交换和报文交换 1.电路交换 计算机之间的数据传送是突发式的,当使用电路交换来传送计算机数据时,其线路的传输效率一…

MUMU模拟器12连logcat的方法

大家好,我是阿赵。   在开发手机游戏的时候,在真机上会出现各种问题,在查询问题的时候,安卓手机需要用adb连接来连接手机看logcat输出分析问题。但由于连接手机比较麻烦,所以我都习惯在电脑用安卓模拟器来测试。   …

启动项目报502怎么处理呢?

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

C#中对象的相等性与同一性的判断方法总结

C#对象的相等性与同一性 1. 概述与准备1.1 概述1.2 准备 2. Equals(Object)2.1 功能:2.2 实例:2.3 扩展:2.4 重写此方法 3. Equals(Object, Object)3.1 功能3.2 实例 4. ReferenceEquals(Object, Object)4.1 功能4.2 使用场景:4.3…

成人商务英语,外贸英语纺织英语日常交流口语柯桥学外语

大家好,今天我们要说的这个短语,跟香蕉Banana有关,它就是top banana。 不过它可不是字面上的“顶级香蕉”的意思哦~ Top banana是一个俚语,常见的意思有两个: 1. the most important person in any group 一群人中最…

第14章 西瓜书——概率图模型

概率图模型 概率图模型(Probabilistic Graphical Model)是用图结构来表示多元随机变量之间条件依赖关系的模型。在图模型中,节点表示随机变量,边表示变量之间的依赖关系。概率图模型可以分为有向图模型(如贝叶斯网络&a…

C#与欧姆龙PLC实现CIP通讯

参考文档: 欧姆龙PLC使用-CSDN博客 CIP通讯介绍(欧姆龙PLC)-CSDN博客 使用NuGet添加引用:CIPCompolet 基础参考我的CIP协议介绍,默认TCP端口为:44818 类NXCompolet 类的功能可以在安装PLC开发软件后帮…

【io.net空投】交互攻略

一、io.net是什么 Io.net 是一个基于 Solana 的DePIN项目,为人工智能 (AI) 和机器学习 (ML) 公司聚合 GPU 资源。 Io.net 的例子,就是鼓励大家出借 GPU 算力,为 AI 或机器学习(ML)公司提供更低价、更有效率的算力资源…

STM32时钟树

1、STM32时钟框图

DHCP中继实验(华为)

思科设备参考: 一,技术简介 DHCP中继,可以实现在不同子网和物理网段之间处理和转发DHCP信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的IP地址。如果不在同一个物理网段,…

Python算法题集_在排序数组中查找元素的第一个和最后一个位置

Python算法题集_在排序数组中查找元素的第一个和最后一个位置 题34:在排序数组中查找元素的第一个和最后一个位置1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【二分法两次左边界】2) 改进版一【二分法左右边界】3) 改进版二【第三…

操作系统原理与实验——实验五时间片轮转进程调度

实验指南 运行环境: Dev c 算法思想: 将处理机的运行时间划分成等长的时间片,转轮式分配给各个就绪进程使用。 采用此算法的系统中,所有就绪进程按照先来先服务的原则排成一个队列,每次调度时将处理机分派给队首进程。…

基于梯度统计学的渐变型亮缝识别算法

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、场景痛点 在图像处理相关的实际工程中,会出现各式各样的现实复杂问题,有的是因为机械设计导致&#x…

图|dfs bfs|最小生成树|最短路|一篇搞定图的所有知识点

文章目录 图前言项目代码仓库图的基本概念图的表示方法邻接矩阵邻接表图的一些相关概念 图的遍历bfsdfs如果给的图不是连通图? 最小生成树Kruskal算法Prim算法 最短路径单源最短路径--Dijkstra算法单源最短路径--Bellman-Ford算法多源最短路径--Floyd-Warshall算法 …

Swift 入门学习:集合(Collection)类型趣谈-下

概览 集合的概念在任何编程语言中都占有重要的位置,正所谓:“古来聚散地,宿昔长荆棘;游人聚散中,一片湖光里”。把那一片片、一瓣瓣、一粒粒“可耐”的小精灵全部收拢、吸纳的井然有序、条条有理,怎能不让…

Elasticsearch从入门到精通-03基本语法学习

Elasticsearch从入门到精通-03基本语法学习 👏作者简介:大家好,我是程序员行走的鱼 📖 本篇主要介绍和大家一块学习一下ES基本语法,主要包括索引管理、文档管理、映射管理等内容 1.1 了解Restful ES对数据进行增、删、改、查是以…

《Effective Modern C++》- 极精简版 15-21条

本文章属于专栏《业界Cpp进阶建议整理》 继续上篇《Effective Modern C》- 极精简版 5-14条。本文列出《Effective Modern C》的15-21条的个人理解的极精简版本。 Item15、尽量使用constexpr constexpr形容对象 constexpr对象都是const,但是const对象不一定是conste…