langchain的构成

1.简介

langchain的构成其包含langchain-core,langchain-community,langchain,langgraph,langserve,langSmith。
在这里插入图片描述

2,构件的详解

‌LangChain Core‌
‌LangChain Core‌是LangChain框架的核心组成部分,它包含了不同组件的基本抽象以及将它们组合在一起的方法。这个包定义了核心组件的接口,如LLM(大型语言模型)、向量存储、检索器等,并没有定义第三方集成,依赖项被设计得非常轻量级。LangChain Core为LangChain生态系统的其余部分提供了基础的抽象,使得任何提供商都可以实现所需的接口,然后轻松地在LangChain生态系统的其余部分中使用。这种设计使得开发人员不需要理解如何进行模型底层API调用,从而简化了开发过程。

LangChain Core的概念之一是Runnable,这是大多数LangChain Core组件实现的接口,为它们提供了一个通用的调用接口(调用、批处理、流等),并提供了用于重试、回退、模式和运行时可配置性的内置实用程序。使用LangChain表达式语言(LCEL)可以声明式地使用LangChain Core对象,或者通过命令式方式直接调用它们。此外,LangChain Core还允许通过LangServe轻松部署应用程序。

LangChain框架的目标是为各种大型语言模型应用提供通用接口,从而简化应用程序的开发流程。通过LangChain Core,开发人员可以更容易地将大型语言模型的多样形态与向量数据库、灵活多变的交互层、外部世界的广阔知识海洋以及高效的外部代理工具巧妙地编织在一起,构建出独一无二的LLM应用‌。

langchain-community
‌LangChain的langchain-community是一个包含由LangChain社区维护的第三方集成的集合。
合作伙伴包(例如 langchain-openai,langchain-anthropic等):一些集成已进一步拆分为自己的轻量级包,仅依赖于langchain-core。
上图中可以看出,大概分为三大类第三方集成包。
模型的输入和输出,model I/O 模型,提示词、示例、输出解释器。
Retrieval(rag相关) ,Retrieval ,文本加载器,向量数据库,文档切分,嵌入模型(将文件切分后进行向量化)
Agent Tooling(工具),比如搜索工具等

langchain
其主要作用是构成应用程序认知架构的链、代理和检索策略。
Chains链路,将提示词、大模型、输出解释器就构成了一个链,在代码中用|进行分隔。
Agents, 通过大模型和第三方工具做成一个agents智体,如Chains就是其中一部分。

langgraph
通过将步骤建模为图中的边和节点,使用LLM构建健壮且有状态的多角色应用程序。
LangGraph 的核心概念
LangGraph 将应用程序的工作流程表示为一个图结构,其中:

节点(Nodes):代表不同的操作或步骤,例如调用一个 LLM、访问一个数据库、处理用户输入等。
边(Edges):代表步骤之间的关系或流程,例如数据流、决策路径等。
这种图形结构允许创建复杂的、有状态的多角色应用程序,每个角色可以独立执行操作,互相通信,并根据前一步骤的结果动态调整。

LangGraph 的主要特点
高级接口:LangGraph 提供了用于创建常见代理的高级接口,使开发者可以快速构建代理应用。
低级 API:允许开发者自定义和组合自己的工作流程,以满足特定需求。
状态管理:支持构建有状态的应用程序,能够在多步骤和多角色之间传递和管理状态。
动态调整:基于前一步骤的结果,可以动态调整工作流程,适应不同的情况和需求。

langserve
将langChain链部署为REST API。

LangSmith
一个开发者平台,可让你调试、测试、评估和监控LLM应用程序,并与LangChain无缝集成。

3,LCEL相关代码

langchain开发表达式(LCEL)
LCEL表达式语言,这块在之前文章里展示过,就是文章中的一个实例,里面就有LCEL。
那么什么是LCEL了,它是一种使用注解轻松的构建链的声明式方法。

  • 强大的流支持
  • 异步支持
  • 优化的并行执行
  • 输入和输出样式
  • 无缝LangSmith追踪
  • 无缝LangServe步骤

例子:

import os
from langchain_community.chat_models import
### DeepSeek LangChain 使用指南 #### 安装与环境配置 对于希望利用DeepSeek平台上的LangChain功能来开发应用的开发者来说,首先需要完成必要的安装和环境设置工作[^1]。这通常涉及到创建一个新的Python虚拟环境,并通过pip工具安装最新的langchain库版本。 ```bash python -m venv my-langchain-env source my-langchain-env/bin/activate # Windows用户应使用 `my-langchain-env\Scripts\activate.bat` pip install langchain deepseek-client ``` #### 构建基础的应用程序框架 一旦完成了上述准备工作之后,就可以着手于构建一个简单的LangChain应用程序了。这里提供了一个非常基础的例子作为起点: ```python from langchain import LangChain, DocumentStore, QueryEngine # 初始化文档存储组件 doc_store = DocumentStore() # 向其中添加一些初始数据 doc_store.add_documents([ {"id": "0", "content": "这是一个测试文档"}, ]) # 创建查询引擎实例并与之关联 query_engine = QueryEngine(document_store=doc_store) # 实例化LangChain对象并指定使用的查询引擎 lc_app = LangChain(query_engine=query_engine) ``` 此部分展示了如何初始化核心组件以及它们之间的连接方式。 #### 数据处理与增强 当进一步探索更复杂的功能时,则会接触到有关数据输入输出(I/O)、预处理、特征提取等方面的内容。这些操作主要围绕着`DocumentProcessor`类展开,它允许使用者自定义文本清洗逻辑或是集成第三方API来进行更加精细的数据准备过程[^2]。 ```python from langchain.processors import DocumentProcessor processor = DocumentProcessor() processed_docs = processor.preprocess(documents_from_db_or_api_call) ``` 以上代码片段说明了怎样运用处理器对原始资料实施初步转换,使之更适合后续分析任务的需求。 #### 链接多个处理单元形成流水线 除了单独调用各个模块外,还可以借助链条机制将不同类型的处理器串联起来构成一条完整的自动化流程。这种方式不仅简化了编码结构而且提高了整体效率。 ```python from langchain.chains import ChainBuilder pipeline = ( ChainBuilder() .add_step(processor.step_one) .add_step(another_processor.another_method) .build() ) final_output = pipeline.run(input_data) ``` 这段示范体现了链式编程风格的优势所在——清晰直观的同时也具备高度灵活性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值