当前位置: 首页 > news >正文

[干货]LangChain入门-LangChain框架的构成与特点

LangChain

什么是LangChain?

LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 ChatGPT的API 和数据库。

LangChain是一个基于语言模型开发应用程序的框架。它可以实现以下功能:

  • 数据感知: 将语言模型与其他数据源连接起来
  • 主体性: 允许语言模型与其环境进行交互

LangChain可以用来做什么

  • 自治代理(autonomous agents) : 长时间运行的代理会采取多步操作以尝试完成目标。 AutoGPT 和 BabyAGI就是典型代表。

  • 代理模拟(agent simulations) : 将代理置于封闭环境中观察它们如何相互作用,如何对事件作出反应,是观察它们长期记忆能力的有趣方法。

  • 个人助理(personal assistants) : 主要的 LangChain 使用用例。个人助理需要采取行动、记住交互并具有您的有关数据的知识。

  • 问答(question answering) : 第二个重大的 LangChain 使用用例。仅利用这些文档中的信息来构建答案,回答特定文档中的问题。

  • 聊天机器人(chatbots) : 由于语言模型擅长生成文本,因此它们非常适合创建聊天机器人。

  • 查询表格数据(tabular) : 如果您想了解如何使用 LLM 查询存储在表格格式中的数据(csv、SQL、数据框等),请阅读此页面。

  • 代码理解(code) : 如果您想了解如何使用 LLM 查询来自 GitHub 的源代码,请阅读此页面。

  • 与 API 交互(apis) : 使LLM 能够与 API 交互非常强大,以便为它们提供更实时的信息并允许它们采取行动。

  • 提取(extraction) : 从文本中提取结构化信息。

  • 摘要(summarization) : 将较长的文档汇总为更短、更简洁的信息块。一种数据增强生成的类型。

  • 评估(evaluation) : 生成模型是极难用传统度量方法评估的。 一种新的评估方式是使用语言模型本身进行评估。 LangChain 提供一些用于辅助评估的提示/链。

LangChain的构成

该框架由几个部分组成。

  • LangChain 库:Python 和 JavaScript 库。包含用于组件接口和集成的基本运行时,以及链和代理的现成实现。
  • LangChain 模板:一系列易于部署的参考架构,适用于各种任务。
  • LangServe:用于将 LangChain 链部署为 REST API 的库。
  • LangSmith:一个开发者平台,可让您调试、测试、评估和监控基于任何 LLM 框架构建的链,并与 LangChain 无缝集成。

这些产品共同简化了整个应用程序生命周期:

  • 开发: 在 LangChain/LangChain.js 中编写您的应用程序。使用模板作为参考开始运行。
  • 可观测: 使用 LangSmith 检查、测试和监控您的链,以便您可以充满信心地不断改进和部署。
  • 部署: 使用 LangServe 将任何链转换为 API。

LangChain的模块

  • 模型(models): LangChain 支持的各种模型类型和模型集成。
  • 提示(prompts): 包括提示管理、提示优化和提示序列化。
  • 内存(memory): 内存是在链/代理调用之间保持状态的概念。LangChain 提供了一个标准的内存接口、一组内存实现及使用内存的链/代理示例。
  • 索引(indexes): 与您自己的文本数据结合使用时,语言模型往往更加强大——此模块涵盖了执行此操作的最佳实践。
  • 链(chains): 链不仅仅是单个 LLM 调用,还包括一系列调用(无论是调用 LLM 还是不同的实用工具)。LangChain 提供了一种标准的链接口、许多与其他工具的集成。LangChain 提供了用于常见应用程序的端到端的链调用。
  • 代理(agents): 代理涉及 LLM 做出行动决策、执行该行动、查看一个观察结果,并重复该过程直到完成。LangChain 提供了一个标准的代理接口,一系列可供选择的代理,以及端到端代理的示例。

LangChain的特点

  • LLM 和提示: LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的便捷实用程序。
  • 链(Chain): 这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口,与各种工具集成,为流行应用提供端到端的链。
  • 数据增强生成: LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如,它可以帮助总结长文本或使用特定数据源回答问题。
  • Agents: Agents 让 LLM 做出有关行动的决定,采取这些行动,检查结果,并继续前进直到工作完成。LangChain 提供了代理的标准接口,多种代理可供选择,以及端到端的代理示例。
  • 内存: LangChain 有一个标准的内存接口,有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。
  • 评估: 很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。

程序员新手福利

个人目前有w_x的账号, yqpan1991 , 关于最新的AI咨询以及AI框架相关的信息, 欢迎大家关注和交流. 加账号时, 请备注, 来自csdn.

对于python入门, 数据库, 测试等入门有一定的启发,欢迎加入学习

相关文章:

  • C语言绘图
  • 深度学习:到底怎么理解embedding
  • 云原生专栏丨基于服务网格的企业级灰度发布技术
  • 100套Axure RP大数据可视化大屏模板及通用组件库
  • xftp连接wsl2
  • 二百零五、Flume——数据流监控工具Ganglia单机版安装以及使用Ganglia监控Flume任务的数据流(附流程截图)
  • 南京--ChatGPT/GPT4 科研实践应用
  • 查询数据库DQL
  • 确保软件供应链安全,不容忽略的三大步骤
  • 直播美颜SDK对比评测:技术原理与应用实践
  • 低代码平台全解析:衍生历程、优势呈现与未来趋势一览无余
  • CentOS中安装常用环境
  • Python大数据之linux学习总结——day09_hive调优
  • 湖北交通厅安全员ABC公路安全员ABC证报考详情
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • JavaScript-如何实现克隆(clone)函数
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • centos安装java运行环境jdk+tomcat
  • docker容器内的网络抓包
  • Git 使用集
  • JS+CSS实现数字滚动
  • Vue 动态创建 component
  • vue-cli在webpack的配置文件探究
  • yii2中session跨域名的问题
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 番外篇1:在Windows环境下安装JDK
  • 分享几个不错的工具
  • 工作手记之html2canvas使用概述
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 区块链共识机制优缺点对比都是什么
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 @font-face
  • 思考 CSS 架构
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 项目管理碎碎念系列之一:干系人管理
  • 用 Swift 编写面向协议的视图
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​人工智能书单(数学基础篇)
  • (2)(2.10) LTM telemetry
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Java数据结构)ArrayList
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (六)c52学习之旅-独立按键
  • (一)UDP基本编程步骤
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • ****Linux下Mysql的安装和配置
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [.NET]桃源网络硬盘 v7.4
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [c]扫雷
  • [CareerCup] 14.5 Object Reflection 对象反射