LangChain+LLM实战---LangChain概述

news2024/9/23 3:16:42

LangChain介绍

LangChain是个开源的框架,它可以让AI开发人员把像GPT-4这样的大型语言模型(LLM)和外部数据结合起来。可以简单认为LangChain是LLM领域的Spring,以及开源版的ChatGPT插件系统。

LangChain的强大之处不仅能通过API调用语言模型,还可以执行如下功能:

  • 数据感知:将语言模型连接到其他数据源
  • 具有代理性质:允许语言模型与其环境交互

例如:GPT模型是用到2021年的数据训练的,这可能会有很大的局限性,如果能让GPT模型连接到自定义的数据和计算,就就会产生更多的可能性。LangChain可以让LLM在回答问题时参考整个数据库,可以让GPT模型访问最新的数据,比如报告、文档和网站信息。

LangChian可以将LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。

LangChain组件

LangChain提供了各种不同的组件来帮助使用LLM。其核心组件有Models、Indexes、Chains、Memory、Prompts以及Agent,如图所示:

将LangChain的核心组件按照逐渐增加的复杂性排列如下:

  • 模型(models):LangChain支持的各种模型类型以及模型集成。
  • 提示(prompts):LangChain提供了PromptTemplates,允许可以根据用户的输入来动态地更改提示。包括提示管理、提示优化和提示序列化。
  • 记忆(memory):内容记忆。记忆是在链/代理调用之间保持状态的概念。LangChain提供了标准的记忆接口、记忆实现及使用记忆的链/代理示例。
  • 索引(indexes):索引是指对文档进行结构化的方法,以便 LLM 能够更好的与之交互。该组件主要包括:Document Loaders(文档加载器)、Text Splitters(文本拆分器)、VectorStores(向量存储器)以及Retrievers(检索器)。
  • 链(chains):链不仅仅是单个LLM调用,还包括其他系列调用(无论是调用LLM还是不同的实用工具)。LangChain提供了标准的链接口、许多与其他工具的集成。LangChain提供了用于常见应用程序的端到端的链调用。
  • 代理(agents):代理涉及LLM做出行动决策、执行该行动、查看观察结果,并重复该过程直到完成。LangChain提供了标准的代理接口,许多可供选择的代理,以及端到端代理的示例。

LangChain实现原理

  • 通过将大文档进行向量化表示,然后就可以用它和LLM一起工作,只检索需要引用的信息,来创建相关的提示-完成(prompt-completion)对。
  • 当把提示输入到新的聊天机器人里,LangChain就会在向量存储里查询相关的信息,然后将信息和提示一起提供给LLM,生成需要的答案。

其实现流程:加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> query问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答,如图所示:

从文档处理角度来看,实现流程如下: 

Docker虚拟磁盘文件迁移

使用Docker来实现LangChain+LLM的功能时,通常所使用的镜像比较大,即Docker虚拟磁盘文件ext4.vhdx会比较大。在Windows本地安装Docker Desktop时,ext4.vhdx默认在C盘下,随着docker run项目的增多会变得更大,所以往往会需要迁移到其他盘符,过程如下:

  • 打开Windows CMD
    • 查看docker状态和版本:wsl -l -v
    • 其中docker-desktop-data需要迁移到其他盘
  • wsl --shutdown
  • 导出docker-desktop-data
    • wsl --export docker-desktop-data D:\docker_data\docker-desktop-data.tar
  • 注销 docker-desktop-data
    • wsl --unregister docker-desktop-data
  • 重新导入docker-desktop-data
    • wsl --import docker-desktop-data E:\docker_data\data\ E:\docker_data\docker-desktop-data.tar --version 2 

LangChain执行动作用途

LangChain可以创建一些可以执行动作的应用程序,比如上网、发邮件、完成其他API相关的任务,例如:AgentGPT。这样的应用程序有很多可能的用途,如下所示:

  • 个人AI邮件助手
  • AI学习伙伴
  • AI数据分析
  • 定制公司客服聊天机器人
  • 社交媒体内容创作助手

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

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

相关文章

LLMs之ChatGLM3:ChatGLM3/ChatGLM3-6B的简介(多阶段增强+多模态理解+AgentTuning技术)、安装、使用方法之详细攻略

LLMs之ChatGLM3:ChatGLM3/ChatGLM3-6B的简介(多阶段增强多模态理解AgentTuning技术)、安装、使用方法之详细攻略 导读:2023年10月27日,智谱AI在2023中国计算机大会上推出了全自研的第三代基座大模型ChatGLM3及其相关系列产品,这是…

系列二十一、请描述BeanDefinition的加载过程

一、概述 BeanDefinition是用来描述bean的生产信息,决定bean如何生产,是一个定义态的bean。 二、流程 2.1、第一步:启动IOC容器 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(MySpringConfig.cla…

嵌入式系统中C++ 类的设计和实现分析

C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。 本文介绍了写好C代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 原文:10 Best practices to design and implement a C class。 1. 尽…

基于回溯搜索算法的无人机航迹规划-附代码

基于回溯搜索算法的无人机航迹规划 文章目录 基于回溯搜索算法的无人机航迹规划1.回溯搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用回溯搜索算法来优化无人机航迹规划。 …

2023Selenium自动化测试框架入门整理(建议收藏)

本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明。作为开发人员、测试人员入门参考。 本文参考:Selenium框架最新技术规范及相关资料 简介 Selenium也是一款同样使用Apac…

实现分片上传、断点续传、秒传 (JS+NodeJS)(TypeScript)

一、引入及效果 上传文件是一个很常见的操作,但是当文件很大时,上传花费的时间会非常长,上传的操作就会具有不确定性,如果不小心连接断开,那么文件就需要重新上传,导致浪费时间和网络资源。 所以&#xff0…

Wpf 使用 Prism 实战开发Day02

一.设计首页导航条 导航条的样式,主要是从Material DesignThemes UI 拷贝过来修改的,项目用了这个UI组件库,就看自己需要什么,就去拷过来使用,界面布局或其他组件使用,不做介绍。 直接下载源码,编译运行就可…

【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)

文章目录 前言一、TextTimer1.1 子组件1.2 接口参数TextTimerController 1.3 属性1.4 事件1.5 示例代码 二、TimePicker2.1 子组件2.2 接口参数 2.3 属性2.4 事件TimePickerResult对象说明 2.5 示例代码 总结 前言 通过文本显示计时信息并控制其计时器状态的组件。 时间选择组…

防火墙的技术(NAT NAT地址池 升级版本 ) 第二一课

防火墙的技术(NAT NAT-Server 策略路由 ) 第二十课 官方文档分享 菜鸟教程 - 学的不仅是技术&#xff0c;更是梦想&#xff01; 环境的准备工作 1 配置如图所示的所有的IP地址 1 配置IIP地址 2 配置防火墙中的基本配置 防火墙的默认管理口的ip地址 <USG6000-ISP-LOCAL&…

吴恩达《机器学习》2-2->2-4:代价函数

一、代价函数的概念 代价函数是在监督学习中用于评估模型的性能和帮助选择最佳模型参数的重要工具。它表示了模型的预测输出与实际目标值之间的差距&#xff0c;即建模误差。代价函数的目标是找到使建模误差最小化的模型参数。 二、代价函数的理解 训练集数据&#xff1a;假设我…

基于springboot实现校园志愿者管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园志愿者管理系统演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;校园志愿者管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff…

论文阅读——InstructGPT

论文&#xff1a;Training_language_models_to_follow_instructions_with_human_feedback.pdf (openai.com) github&#xff1a;GitHub - openai/following-instructions-human-feedback 将语言模型做得更大并不能从本质上使它们更好地遵循用户的意图。例如&#xff0c;大型语…

共享股东模式:规则、优势与亮点

在当今高度信息化的时代&#xff0c;共享经济正在改变人们的生活方式。其中&#xff0c;共享股东模式作为一种新型的商业模式&#xff0c;正在受到越来越多企业的关注。本文将对共享股东模式的规则、优势和亮点进行详细介绍。 一、共享股东模式规则 共享股东模式是一种将闲置资…

接口自动化测试要做什么?一文3个步骤带你成功学会!

先了解下接口测试流程&#xff1a; 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建&#xff08;工具&#xff09; 6、执行用例 7、缺陷管理 8、测试报告 了解了接口测试的工作流程&#xff0c;那"接口自动化测试"怎么弄&#xff1…

山西电力市场日前价格预测【2023-10-29】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-29&#xff09;山西电力市场全天平均日前电价为318.01元/MWh。其中&#xff0c;最高日前电价为537.50元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

vue项目package.json与package-lock.json作用及区别

package.json文件介绍和使用 运行项目&#xff0c;命令行: npm run dev “dependencies” 运行依赖&#xff0c;需引入页面使用 “devDependencies” 开发依赖(生产环境使用)&#xff0c;只是开发阶段需要 我们每次新建一个项目的时候会发现在项目中会有这么俩个相似的文件&am…

Go语言标准输入

文章目录 Go语言标准输入函数使用 Go语言标准输入 函数 Scan // 使用stdin读取内容&#xff0c;读取的内容以空白&#xff08;换行也属于空白&#xff09;分隔&#xff0c;赋值给函数参数。返回读取的个数和错误 func Scan(a ...interface{}) (n int, err error)Scanf // 和…

《算法通关村—最大小栈问题解析》

《算法通关村—最大小栈问题解析》 最小栈 描述 leetCode 155: 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现最小栈 MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop()…

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上&#xff0c;转轴的直径为100mm。已知线阵相机4K7u&#xff08;一行共4096个像素单元&#xff0c;像素单元大小7um&#xff09;&#xff0c;镜头35mm&#xff0c;编码器2000脉冲/圈。保证图像不变形的条件下&#xff0c;计算相机到产品之间 摆放距离&…

Docker的架构与自制镜像的发布

一. Docker 是什么 Docker与自动化测试及其测试实践 大家都知道虚拟机吧&#xff0c;windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机&#xff0c;虚拟机将物理硬件资源虚拟化&#xff0c;按需分配和使用&#xff0c;虚拟机使用起来和真实操…