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

langchain系列(一) - LangChain 基础概念

导读

环境:OpenEuler、Windows 11、WSL 2、Python 3.12.3 langchain 0.3.15

背景:前期忙碌的开发阶段结束,需要沉淀自己的应用知识,过一遍LangChain

时间:20250211

说明:技术梳理

langchain简介

LangChain是一个开源的python AI框架,提供了基于大模型的AI应用所需的模块和工具。通过LangChain,开发者可以轻松的与LLM集成,完成对话、文本生成、翻译等应用的开发,同样也可以实现多模态模型的集成。

LangChain特性

简化应用

开发:使用 LangChain 的开源构建块和组件构建您的应用程序。使用第三方集成和模板快速启动。
生产化:使用 LangSmith 来检查、监控和评估您的链条,这样您就可以持续优化并充满信心地部署。
部署:使用 LangServe 将任何链条转化为 API。

大模型与提示(prompt)

LangChain对很多大模型进行了API抽象,统一访问接口,提供了提示词模板管理

链(chain)

对于常见的场景均封装了模块,如:问答系统、生成sql语句等,这些任务就如同工作流一样,一步一步 依次执行,所以称之为链

LCEL表达式

LangChain Expression Language是新版本的特性,用于解决工作流的编排问题,能够灵活的处理AI任务流程

RAG

Retrival Augmented Generation 检索增强生成,用于解决大模型的幻觉等问题

Agent

基于大模型的一种设计模式,利用模型的理解与推理能力,实现根据用户的需求,自动调用所需的工具,实现完全自动化处理任务

Memory

记住上下文的信息,便于更合理的回答用户

LangChain组件

LangSmith

用于追踪大模型处理的细节,类似于debug的分析、查找问题的功能

LangServe

将 LangChain 链条部署为 REST API。

Templates

用于模板定义

LangChain核心:

Chains 实现链式调用

Agent实现智能体的开发应用

Retrival Strategies 检索策略

LangChain-Community

第三方大模型厂商提供模型(qwen、hunyuan等)的API接口开发,主要是社区力量实现,主要分为图示的三大块,模型、检索、工具

LangChain-Core

主要是LCEL,LangChain表达式语言,主要实现了一些底层的方法或工具的调用

LangChain模块构成

LangChain:分为python、JavaScript库,实现基础的链式调用,以及封装好的链、代理的实现

LangChain模板:LangChain封装好的一些AI任务组件或工具(已废弃)

LangGraph:使用LLM构建有状态的多角色应用程序的库,用于创建(多)Agent工作流

LangServe:基于Fast API开发,部署使用LangChain开发的应用

LangSmith:是一个服务(或云平台),可以自己部署本地。 实现调试、测试、评估和监控基于任何 LLM 框架构建的链和智能代理,并无缝集成 LangChain

概念

Chat models:通过聊天API公开的LLM,它将消息序列作为输入和输出消息进行处理。
Messages: 聊天模型中的通信单位,用于表示模型输入和输出。
Chat history:一个对话,表示为一系列消息,在用户消息和模型响应之间交替。
Tools:一个函数,它有一个相关的模式,定义了函数的名称、描述和它接受的参数。
Tool calling:一种聊天模型API,它接受工具模式(沿着消息)作为输入,并将这些工具的调用作为输出消息的一部分返回。
Structured output: 一种使聊天模型以结构化格式响应的技术,例如匹配给定模式的JSON。
Memory: 关于会话的信息,它被保存下来,以便在未来的会话中使用。
Multimodality:能够处理不同形式的数据,如文本、音频、图像和视频。
Runnable interface: 许多LangChain组件和LangChain表达式语言构建的基础抽象。
Streaming:LangChain流式API,用于在生成结果时显示结果。
LangChain Expression Language (LCEL): 用于编排LangChain组件的语法。对于简单的应用程序非常有用。
Document loaders: 将源作为文档列表加载。
Retrieval: 信息检索系统可以从数据库中检索结构化或非结构化数据以响应查询。
Text splitters: 将长文本分割成可以单独索引的较小块,以实现粒度检索。
Embedding models:在向量空间中表示文本或图像等数据的模型。
Vector stores: 矢量和相关元数据的存储和高效搜索。
Retriever:一个组件,它从知识库中返回相关文档以响应查询。
Retrieval Augmented Generation (RAG): :一种通过将语言模型与外部知识库相结合来增强语言模型的技术。
Agents: 使用语言模型来选择要执行的操作序列。代理可以通过工具与外部资源交互。
Prompt templates:用于分解出模型“提示”(通常是一系列消息)的静态部分的组件。对于序列化、版本化和重用这些静态部件很有用。
Output parsers: 负责获取模型的输出,并将其转换为更适合下游任务的格式。在工具调用和结构化输出普遍可用之前,输出解析器主要是有用的。
Few-shot prompting: 一种通过在提示中提供一些要执行的任务示例来提高模型性能的技术。
Example selectors: 用于根据给定的输入从数据集中选择最相关的示例。示例选择器用于少量提示中,为提示选择示例。
Async programming: 在异步环境中使用LangChain应该知道的基础知识。
Callbacks: 回调允许在内置组件中执行自定义辅助代码。回调用于从LangChain中的LLM流输出,跟踪应用程序的中间步骤等。
Tracing: 记录应用程序从输入到输出的步骤的过程。跟踪对于调试和诊断复杂应用程序中的问题至关重要。
Evaluation: 评估AI应用程序的性能和有效性的过程。这涉及到根据一组预定义的标准或基准测试模型的响应,以确保它符合所需的质量标准并实现预期的目的。这个过程对于构建可靠的应用程序至关重要。
Testing: 验证集成或应用程序的组件是否按预期工作的过程。测试对于确保应用程序行为正确以及对代码库的更改不会引入新的错误至关重要。

     未完待续


    http://www.mrgr.cn/news/90370.html

    相关文章:

  • Win11从零开始配置Ubuntu虚拟机(2025.2)
  • vant4 van-list组件的使用
  • RAG核心机制和原理概述-3
  • 数据结构-基础
  • ES 索引结构
  • 对接DeepSeek
  • 尚硅谷的ShardingShphere分库分表课程总结
  • ARM Cortex-M3/M4 权威指南 笔记【一】技术综述
  • 【腾讯地图】录入经纬度功能 - 支持地图选点
  • 3. CSS中@scope
  • 深入解析 STM32 GPIO:结构、配置与应用实践
  • FAST_LIVO2初次安装编译
  • DaDianNao:一种无主存储器的多核加速器
  • 西门子S7-200 PLC串口PPI转以太网通讯的模块链接方式
  • 解决:Cannot find a valid baseurl for repo: base/7/x86_64
  • 一个简单的Windows TCP服务器实现
  • Unity-Mirror网络框架-从入门到精通之MultipleMatches示例
  • Excel大数据量导入导出
  • 排列组合
  • Java 中的 128 陷阱与自动拆装箱深度解析