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

本文来源公众号“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.mzph.cn/news/733065.shtml

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

相关文章

《Python源码剖析》之字符串拼接的一个效率问题

前言 我们常用的字符串拼接方法有两个,一个是通过“”号实现字符串的拼接,还一个就是通过join方法来实现拼接,前者在写法上更加便利,和数字之间的加法运算一样,通常只有两个运算对象,只不过他们的运算规则…

XS2186 PSE控制器产品-八通道,兼容IEEE 802.3at/af

XS2186 PSE控制器产品-八通道,兼容IEEE 802.3at/af 芯片特性: 八通道,兼容IEEE 802.3at/af 0.1Ω内置电流检测电阻 内置电源功率管 每个端口高达30W 10位端口电流和电压实时监测 兼容I2C,3线串口 支持独立供电操作 为遗…

新贵Claude 3家族强势登场,AI领域掀起新一轮浪潮!

人工智能领域的风云再起,Anthropic公司日前放出狠招,推出了全新的大模型家族Claude 3系列。Claude 3由三款不同级别的大模型组成,分别是Claude 3 Haiku、Claude 3 Sonnet和Claude 3 Opus。这一系列产品的推出,不仅扩充了AI生态,更是对OpenAI的GPT-4等龙头产品发出了挑战。让我们…

函数柯里化:JavaScript中的高级技巧

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

利用GPT开发应用005:Codex、Turbo、ChatGPT、GPT-4

文章目录 一、GPT-3 Codex二、GPT-3.5 Turbo二、ChatGPT三、GPT-4 一、GPT-3 Codex 2022年3月,OpenAI 发布了 GPT-3 Codex 的新版本。 这个新模型具有编辑和插入文本的能力。它们是通过截至 2021 年 6 月的数据进行训练的,并被描述为比之前版本更强大。到…

力扣爆刷第88天之hot100五连刷26-30

力扣爆刷第88天之hot100五连刷26-30 文章目录 力扣爆刷第88天之hot100五连刷26-30一、142. 环形链表 II二、21. 合并两个有序链表三、2. 两数相加四、19. 删除链表的倒数第 N 个结点五、24. 两两交换链表中的节点 一、142. 环形链表 II 题目链接:https://leetcode.…

ospf静态路由实验简述

1、ospf静态路由实验简述 实验拓扑图 实验命令 r2: sys sysname r2 undo info enable int loopb 0 ip add 2.2.2.2 32 quit int e0/0/0 ip add 23.1.1.2 24 quit ospf 1 area 0 network 23.1.1.0 0.0.0.255 network 2.2.2.2 0.0.0.0 ret r3: sys sysname r3 undo info enable …

C++vector简单实现

由于我们之前已经详细讲解了string接口,而vector接口大都在string上有,所以大家只需自行翻阅前面文章就可以明白接口的使用了,所以,这里我们只实现vector,注意:vector会有迭代器失效的情况,大家…

SuperNIC:用于人工智能的网络加速器

随着人工智能的复杂性和规模不断增长,传统的网络解决方案往往无法满足这些先进系统的数据密集型需求。为了解决人工智能工作负载所面临的问题,SuperNIC应运而生。在本文中,我们将探讨SuperNIC的变革能力,探索它如何革新网络性能&a…

C语言经典算法题-2

文章目录 11.字串核对12.双色、三色河内塔13.背包问题(Knapsack Problem)14.蒙地卡罗法求 PI15.Eratosthenes筛选求质数 11.字串核对 说明:今日的一些高阶程式语言对于字串的处理支援越来越强大(例如Java、Perl等)&am…

python 蓝桥杯之动态规划入门

文章目录 DFS滑行(DFS 记忆搜索) 思路: 要思考回溯怎么写(入参与返回值、递归到哪里,递归的边界和入口) DFS 滑行(DFS 记忆搜索) 代码分析: 学会将输入的数据用二维列表…

变换,动画

面试题——需求:在不知道父元素与子元素的宽高时 如何让子元素在父元素内居中? 1.定位 父相子绝 2.子元素 top:50% left:50% 3.子元素 transform: translate(-50%,-50%) .parent{height: 500px;background-color: red;position: relative;}.c…

Docker compose部署redis哨兵集群

Docker compose部署redis哨兵集群 安装Docker和docker-compose准备docker-compose文件redis exporter本地部署准备Redis配置文件ACL用户权限配置Linux内核参数优化启停Redis实例主从复制配置 环境准备: IP版本角色172.x.x.11RHEL 7.9master172.x.x.12RHEL 7.9repli…

在QDialog中嵌入QML

在一些一开始使用QWidget的项目,现由于要支持的硬件及系统已升级,可以很好的使用QML。在这种情况下,就需要通过QWidget与QML混合使用的方式来慢慢把整个项目过渡到纯QML工程。这时在QWidget中嵌入QML是经常要做的事,现就说一说在Q…

Lesson 6 Convolutional Neural Network(CNN)

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了CNN的适用范围,整体架构与工作流程,CNN的应用,CNN的缺点以及解决方法。 1. CNN的输入与输出 CNN是专门为了图像而设计的一…

【web | CTF】SQL注入打法

题目一:叠堆注入,使用预处理来拼接select查询 进去先判断拼接的是单引号,再发现是可以叠堆注入,然后用预处理执行SQL语句 【web | CTF】BUUCTF [强网杯 2019]随便注-CSDN博客

面试经典150题——合并两个有序链表

You just work on it. Time will do the rest! 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个题目还是比较简单的,通过分析题目,我们可以知道题目中关键信息为: 所以我们只需要从前向后遍历两个链表,在两个链表不空的情况下&…

电流环,速度环,位置环以及PID算法的简单了解

PID算法的通俗讲解 PID算法的江湖地位? PID算法在控制领域是非常常见的算法,小到控制温度,大到控制飞机的飞行姿态,基本上算是在控制领域万能的算法。 关于PID算法的生活小故事: 假设一辆慢点量的车,跑着跑…

HTML静态网页成品作业(HTML+CSS)——原神介绍设计制作(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

CUDA学习笔记06:共享内存加速矩阵乘法

参考资料 CUDA编程模型系列六(利用shared memory和统一内存优化矩阵乘)_哔哩哔哩_bilibili 代码片段 #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> #include <math.h>#define M 1000 #define N 50…