收藏!小白程序员轻松入门大模型:LangChain、LangGraph与LangSmith开发框架详解

langsmith功能总结 现阶段下的langsmith功能总结 阅读详情

LangChain、LangGraph 和 LangSmith 开发框架

LangChain v.s. LangGraph

LangChain 和 LangGraph 出自于同一个团队,都被设计用于与 LLM 集成并协同工作,两者常被混淆。但顾名思义,两者有着显著的区别:

  • LangChain(链条):静态顺序工作流,每个步骤都遵循预先定义的顺序。
  • LangGraph(有向图):动态分支工作流,允许在每一步进行决策并选择分支。

显然,LangChain 和 LangGraph 有着不同的应用场景,LangChain 专注于提供组件和 LCEL(LangChain Expression Language)链式编程语法,适合简单的一次性任务;LangGraph 则是构建有状态 Agent 系统的理想选择。两者并不互斥,可以协同工作。例如:在 LangGraph 中的一个 Node 可以使用LangChain 来定义一系列步骤。

所以,在学习 LangGraph 前,建议先学习 LangChain 的基础知识。虽然使用 LangGraph 创建智能体或许不需要完全掌握 LangChain,但扎实掌握其基础知识肯定会有所帮助。

特性对比:

LangChain

LangChain 是一个开发 LLM AI 应用程序的基础框架,封装并提供了各种常用的接口和工具,可以方便开发者快速调用并实现业务功能,加快开发速度。 官方手册:https://python.langchain.com/docs/introduction/

  1. 调用 LLM 的统一接口
  2. 搜索、文档处理、向量数据库处理等工具
  3. 链式调用(Chains)语法
  4. 记忆管理
  5. 提示词模版
  6. 等

LangChain 的 LCEL 语法示例:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
model = ChatOpenAI()
prompt = ChatPromptTemplate.from_template("请回答以下问题:{question}")
# LCEL 链式编排
chain = prompt | model
# 运行链
result = chain.invoke({"question": "什么是人工智能?"})

LangGraph

LangGraph 基于 LangChain 之上,是一个基更高级的 AI Agent 编排框架,可以处理复杂的 Workflow 编排和 Multi-Agent 编排。 官方手册:https://langchain-ai.github.io/langgraph/

  1. 图结构架构:支持条件分支、循环、并行、回溯等复杂的控制流。
  2. 状态管理:基于状态(State)的工作流处理,拥有强大的状态管理模块,确保上下文连续性。
  3. 检查点(Checkpoints)管理:支持人工介入二次检查
  4. 等

顾名思义,Lang(语言)+ Graph(图)= 用图结构组织 LLM AI 的思考流程。如下图所示。

值得注意的是 LangGraph 中的 State 机制。常规的 LLM 模型 API 调用不能维持多步骤的连续推理过程,每次对话都是独立的,不能记住之前的处理结果,也不能基于中间结果动态调整后续步骤。LangGraph State 正是为了解决这个问题,它将复杂任务分解成多个步骤,并记住每个步骤的结果。后续步骤可以访问前面步骤的结果和数据,并根据结果判断调整执行路径,最终完成整个任务链条。


LangGraph 的图结构编程示例:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
from langgraph.graph import StateGraph
from typing import TypedDict
class State(TypedDict):
messages: list
current_step: str
def node_a(state: State) -> State:
return {"messages": state["messages"] + ["处理A"], "current_step": "A"}
def node_b(state: State) -> State:
return {"messages": state["messages"] + ["处理B"], "current_step": "B"}
# 创建图结构
graph = StateGraph(State)
graph.add_node("node_a", node_a)     # node
graph.add_node("node_b", node_b)     # node
graph.add_edge("node_a", "node_b")   # edge

执行模式对比:

LangSmith

LangSmith 是一个针对 Agent 和 LLM Call 之间的可视化监控、追踪、调试、测试和评估平台:

  • Debugging:实时诊断 LLM 交互中的逻辑错误。高亮异常节点(如工具调用超时、JSON 解析失败),关联错误与代码位置(如提示词第 15 行格式错误)。
  • Tracing:记录跨组件的完整调用链,例如:串联 LangGraph 节点调用、数据库查询、API 请求等。
  • Monitoring:生产环境实时指标观测与告警,包括:请求量、延迟、错误率、Token 消耗分布、工具调用成功率等。
  • Test & Evaluation:自动化测试,支持对不同的 Prompt、LLM 执行 A/B 测试并生成质量评估。
  • Prompt & Optimisation:追踪每次 Prompt 的修改对结果输出的影响。 官方地址:https://www.langchain.com/langsmith

Agent-chat UI

Agent-chat UI 是 LangChain Ecosystem 中的一部分,帮助开发者快速搭建一个基于 AI Agent 的 Chat WebUI。 项目地址:https://github.com/langchain-ai/agent-chat-ui

RAG

RAG(Retrieval Augmented Generation,检索增强生成)最初用于解决 LLM 数据过时、幻觉和偏见问题,现今也常被用于注入私域知识。是 Agent 和 LLM 交互环节中的一个重要组成部分。

  • 数据过时:LLM 的知识边界受限于过时的预训练数据。此外,LLM 版本迭代往往也是滞后的。
  • 幻觉:当 LLM 遇到知识盲区时,会启动一种联想补全机制基于局部信息拼接出看似合理、实则虚构的内容,并自信的认为这是真实的。
  • 私域知识:LLM 预训练数据来自于公域数据,并不包含企业内部的私域数据,所以也无法理解企业内部的私域知识。

RAG 是缓解或解决上述问题的良药,核心是 “动态知识注入机制”,提供了一个外部知识存储,在不修改 LLM 参数的前提下,通过 “外挂” 的形式为 LLM 补充 “实时、准确、私域” 的知识,拓宽了 LLM 的知识边界。

  • 解决数据过时:RAG 外部知识存储具有实时性,输入 User Query 前会主动检索实时数据,再将其组合到上下文输入给 LLM。
  • 缓解幻觉:RAG 外部知识存储具有准确性,LLM 返回结果之前会自动检索准确数据进行对比,降低 LLM 捏造虚假内容的概率。但实际上 RAG 无法完全杜绝幻觉问题。
  • 解决私域知识:RAG 外部知识存储具有私域知识,输入 User Query 前会将私域知识输入给 LLM。

如下图所示,RAG 的核心流程有检索阶段、增强阶段和生成阶段。

MCP

Agentic AI 解决了 LLM 无法操作外部环境的问题,RAG 解决了 LLM 知识边界固化的问题,使得 LLM 应用的潜力得到了极大的扩展。而 Anthropic 于 2024 年 11 月推出的 MCP(Model Context Protocol,模型上下文协议)则是为了解决 LLM 上下文的局限性问题,包括:

  • 长上下文传输瓶颈:传统 JSON 格式输入 10K token 的上下文到 LLM 需 500ms+,而 MCP 压缩后仅需 20ms。
  • 动态更新低效:局部更新(如新增对话)需重传全量上下文到 LLM,而 MCP 支持增量更新。
  • 多模型协同障碍:MCP C/S 是与 LLM 解耦的,LLM-A 的输出作为 LLM-B 的输入需序列化转换,因为 MCP 提供了标准化上下文协议容器字段。例如:创建一个与 GitHub 交互的 MCP Server 时,任何支持 MCP 的 LLM 应用程序都可以使用它。
  • 标准化扩展性差:在软件工程层面标准化 Agentic AI 和 RAG 的实现方式,使得 LLM 应用系统能够在一个标准化的协议之上进行构建,继而实现 LLM 应用的可扩展性、稳定性和深度上下文感知。

MCP 最大的特点是能够让 LLM 统一调用各种外部工具或数据源,不再需要为每一个工具单独写适配代码。带来了以下好处:

  1. 标准化交互:确保 Agentic AI 能够轻松集成和扩展其功能,纳入新工具、API 或服务。
  2. 降低开发复杂性:通过抽象化交互逻辑,减少代理开发的复杂性,使开发者能够专注于增强核心代理功能。
  3. 促进集体智能:通过标准化通信渠道共享见解和协调行动,使分布式 Agentic AI 系统能够实现单一架构无法实现的结果。

MCP 结构

  • MCP Host:LLM 应用及其运行环境,例如:ChatBot、AI IDE、AI Agent 等。
  • MCP Client:运行在 LLM 应用内的、和 MCP Server 一一对应的、向 MCP Server 发出请求的 Client 模块。
  • MCP Server:作为 MCP Client 和 Real Service 之间的桥梁,左边接受 MCP Client 的请求,右边将请求翻译并转发到后端的 Real Service,例如:API、DB、File、SSE、Internet 等等。
  • Local Resources:运行在 MCP Host 本地的工具或数据。
  • Remote Resources:云端或在线可访问的远程服务。

MCP 的 Transport Layer 采用了 JSON-RPC 结构化通信协议,支持多种消息类型:

  • Stdio(标准输入输出)
  • HTTP over SSE(服务器推送事件流)
  • 自定义实现

MCP 运行流程

MCP 应用示例

  1. 使用 LLM 应用总结代码库中最近的 5 次提交。MCP Host with Client 首先调用 MCP Server,询问有哪些可用的 Tools List。
  2. 然后 MCP Host 将这些 Tools 输入到 LLM。LLM 接收到这些信息后,会选择使用某个工具。然后 MCP Host 再向 MCP Server 发送具体某个工具的使用请求,并收到工具执行结果。
  3. 最后,MCP Host 将工具执行结果输入到 LLM。LLM 返回最终的响应结果给用户。

A2A

A2A(Agent2Agent Protocol)由 Google 在 2025 年 4 月提出,专注于 AI Agent 之间能够进行通信、协作和任务委托,并以结构化格式返回结果。支持异步工作流和多模态交互。通过 A2A 协议,Agents 之间可以了解彼此的技能,并完成任务的委托。

  • MCP 赋予智能体 “操作世界” 的能力。
  • A2A 赋予智能体 “协作彼此” 的能力。

A2A 结构

A2A 协议:基于 HTTP/S JSON-RPC 2.0 传输协议,符合 Web 原生的安全协议设计。

A2A Client:作为 Client 角色的 Agent,通过其他 A2A Server 的 Agent Cart 进行发现,并通过委托 Task 让其他 A2A Server 帮助自己完成可完成的任务。它向 A2A Server 的 URL 发送请求,如:tasks/send。

A2A Server:一个实现了 A2A 协议的 HTTP Endpoint,通过 Agent Card 对外进行发布,用于接收请求并管理任务执行。

Agent Card:是 A2S Server 的名片,JSON 格式,用于介绍 Agent 的名称、版本、能力描述、访问 Endpoint URL、支持的消息类型、身份认证方式、运行时 Metadata、供应商等信息。

Task:是 A2A Client 委托 A2A Server 执行的一个任务对象。Client 通过发送 Message(如 tasks/send 或 tasks/sendSubscribe)委托一个 Task。拥有唯一 ID 和 Stateful 状态机(如 submitted、working、input-required、completed、failed、canceled)。

Message:是 A2A 协议的消息体,A2A Client(role: “user”)与 A2A Server(role: “agent”)之间交互信息单元,由多个 Part 组成。A2A 协议建立时,Client 和 Server 之间会协商消息格式、内容粒度和可视化等机制。

Part(消息体部分):多个 Parts 组成一个 Message,可细分为 TextPart、FilePart、DataPart(结构化 JSON)等富媒体信息交换类型。

Push Notifications:A2A Server 执行 Task 的过程中会主动向 A2A Client 提供的 webhook URL 推送通知,该 URL 可通过 tasks/pushNotification/set 进行配置。

Artifact:中间产物流式处理。对于长时间运行的 Task,A2A Server 在过程中生产的持久化产物,A2A Client 从 Artifact 获取任务更新数据。例如:生成的文件或结构化数据。

Streaming:实时反馈流式处理。对于支持流式传输的 A2A Server,A2A Client 可使用 tasks/sendSubscribe 进行调用,然后接收到包含 TaskStatusUpdateEvent 或 TaskArtifactUpdateEvent 的 Server-Sent Events(SSE),以获取实时进度。

A2A 工作流程

A2A 的典型应用场景是 Multi-Agent 软件架构,以及对来自不同团队或供应商的 Agents 进行安全互操作,形成跨平台的智能体生态系统。

  1. 发现对方:Client 从 Server 的 well‑known URL(例如 https://DOMAIN/.well-known/agent.json)获取 Agent Card。
  2. 任务委托:Client 发送包含 Client Infos 和 Task ID 的 tasks/send 或 tasks/sendSubscribe 请求。
  3. 任务处理:
  • 非流式处理:Server 同步处理任务,并在 HTTP Resp 中返回最终的 Task 对象。
  • 流式处理:Server 在任务过程中,通过 SSE 发送状态更新或 Artifact 更新事件。
  1. 交互(可选):如果 Task 进入 input-required 状态,Client 可使用相同的 Task ID,通过 tasks/send 或 tasks/sendSubscribe 发送后续消息以提供所需输入。
  2. 完成:Task 最终达到终止状态之一,包括:completed、failed 或 canceled。

分层记忆系统

目前关于 AI 记忆系统的研究尚未形成统一清晰的框架,特别是缺乏对记忆机制底层原子操作的系统化理解。以下通用架构图基于现有 AI Agent 记忆系统的主流设计模式,综合参考了 MemoryOS、Mem0、LangChain Memory 等系统的架构特点,以及相关学术研究中的理论框架。

  • 多策略检索:结合语义检索、关键词匹配和图关系查询,从三层记忆中检索相关信息。
  • 短期记忆:存储会话缓存、对话历史和临时状态,支持快速访问和上下文连续性。
  • 中期记忆:维护向量索引、语义搜索和时序索引,实现高效的语义检索和时间序列分析。
  • 长期记忆:管理知识图谱、实体关系和规则库,建立持久化的知识体系和推理规则。
  • 智能记忆更新:通过增量更新、智能摘要、去重合并和分层存储,动态更新三层记忆。

Context Engineering

Context Engineering 是 Prompt Engineering 和 In-context Learning 的演进方向。

  • Prompt Engineering(提示工程):通过设计过的、结构化的 Prompt 让 LLM 准确理解用户意图,并生成期望的输出。

  • In-Context Learning(上下文学习):通过在 Prompt 中注入设计过的 Context 供 LLM 学习,而无需更新 LLM 的权重(不进行微调),最终让 LLM 能够生成期望的输出。

  • 零样本学习(Zero-shot Learning):默认的,不提供任务示例,仅靠指令和 LLM 预训练知识进行推理。

  • 少样本学习(Few-shot Learning):在 Prompt 中提供少量(e.g. 2~5 个)任务示例,引导 LLM 进行模仿,继而输出与示例相似的结果。

可见,Prompt Engineering 是应用 In-context Learning 的前提,两者有共同的目标,并且具有都是针对某个问题的、静态的、一次性的等共同特性,所以在 Chat 场景中表现良好。但在追求自主智能的 Agent 场景中,有着以下不足:

  1. 复杂度高:Agent 场景涉及数十上百个步骤,需要编写大量的静态 Prompt 费时费力。
  2. 适用性差:在长对话或多步骤任务中,目标和环境会不断演变。静态 Prompt 并不一定适用。
  3. 持续性差:长期运行会产生海量历史信息,无法全部放入有限上下文窗口。

简而言之,PE 和 ICL 本质上是 “静态” 的,它们无法适应长期运行(Long Run)的自主任务(Autonomous)中不断变化的环境和状态。Context Engineering 在 PE 和 ICL 的基础之上,提出了一种 “动态地” 为长对话/多步骤任务提供完整背景信息的思路。即:根据对话/任务的当前状态和变化,动态地构建最相关的、最有效的 Context Window(上下文窗口)。

实现 Context Engineering 的关键技术:

  1. RAG(检索增强生成):检索到的信息动态注入上下文,为模型提供最新、准确、具体的背景知识,解决模型知识陈旧和幻觉问题。
  2. 工具调用(Tool Calling / Function Calling):将工具调用的输入请求和返回结果动态地整合进上下文,极大地扩展了模型的能力边界,使其能处理实时数据、执行具体操作。
  3. 智能体记忆系统(Agent Memory):根据当前任务需求,从记忆库中动态检索并注入最相关的历史片段,维持智能体的连贯性和个性化。

例如,智能客服系统不仅能记住你 “昨天咨询过退货政策”,还能结合 “你是 VIP 用户”、“购买商品未满 7 天” 等信息,直接给出 “退货免运费” 的解决方案,无需重复解释。上下文工程需要处理动态变化的信息网络,包含三个层级:

  1. 即时信息:当前用户的输入内容,如 “我想退这个商品”。
  2. 历史信息:用户过去的交互记录,如 “3 天前购买,未拆封”。
  3. 外部信息:与场景相关的系统数据,如 “该商品支持 7 天无理由退货”、“用户是 VIP,免退货费”。

这些信息并非静态存储,而是需要通过 RAG、Tools、Memory 来获取并形成动态上下文信息。

Context Engineering 的终极目标不仅是构建数据上下文,甚至能实现指令上下文的动态优化,推动智能体向自适应性(Self-adaptive)和自我改进(Self-improvement)演进:

  • 动态 Prompt 内容或策略调整:基于任务进展、用户反馈或观察,智能地调整后续步骤的 Prompt 内容或策略。例如:

  • 内容:发现模型输出冗长时,自动在后续 Prompt 中加入 “请简洁回答” 的要求。

  • 策略:在解决复杂推理问题时,根据中间步骤的成败动态切换不同的策略,如 CoT 切换到 ToT。

  • 自我改进的实现:

  • PromptWizard 等框架:让 LLM 基于自身输出结果进行 “自我批评”,生成改进建议,并迭代优化提示。实现 Prompt 的自动优化。

  • Promptbreeder 等技术:采用进化算法,让 Prompt 在代际更替中不断优化(“自我参照”),在数学推理等任务上显著超越静态提示方法。

  • 记忆驱动的优化:分析长期记忆中的成功/失败案例,自动总结出更有效的提示模板或行动策略。

知识图谱

虽然长上下文窗口、向量数据库、RAG 等技术可以提供基于语义的检索能找到语义相似的内容,在某些领域足以作为 Agent 记忆模块优选。但由于检索到的这些知识不具有关联关系特征,所以在对实体关系紧密的复杂推理场景中,就存在着精准性、推理性和可解释性上存在不足。例如:法律合同场景,对人物、时间、地点、观点、案件情景具有密切的关系。

对此,知识图谱可以通过建模实体及其关系,继而提供精准、可解释、覆盖全面的上下文工程,使得 LLM 拥有更接近人类认知模式:

  1. 作者与情境:明确 “谁说了什么,何时何地”。
  2. 动态结构:可随新信息快速更新关系网络。
  3. 可解释性与覆盖面:推理路径透明且可持续优化。

更具体的。我们常结合 RAG 来实现一个长记忆系统,但也有认为 RAG 记忆系统存在缺陷的观点,例如:

  1. 传统 RAG 系统本质上是一个文档馆,它假设知识是固定不变的,这在处理动态业务场景时就显得力不从心了。
  2. 当新信息与旧信息发生冲突时,RAG 系统无法智能地判断哪个更可信,往往会把矛盾的信息一股脑儿返回给用户。
  3. RAG 缺乏时间维度的理解让系统无法区分用户去年的偏好和用户现在的需求,导致推荐结果偏离实际情况。

Zep 是一个具有时间特性的知识图谱软件。Graphiti 是 Zep 记忆层背后的技术,它是一个开源的库,能够构建动态的、具有时间意识的知识图谱,用以表示实体之间复杂且不断变化的关系。它采用了一个巧妙的三层知识图谱架构来解决传统 RAG 的痛点,如下图所示:

  1. Episode 子图:完整地存储原始对话、文本或 JSON 数据,不丢失任何信息。
  2. Semantic Entity 子图:从原始数据中提取实体和关系。利用实体解析技术,将新旧信息有机地整合在一起。
  3. Community 子图:通过标签传播算法对相关实体进行聚类。形成高层次的概念理解。

这种架构设计使得 Zep 系统既能保留细节信息,又能进行抽象推理。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

在这里插入图片描述

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

LangGraph 快速入门 要把大象装冰箱,总共分几步?LangGraph告诉你! 阅读详情

相关推荐

【Agent】LangSmith的配置及使用

LangChain 使得原型设计大型语言模型(LLM)应用程序和代理变得容易。然而,将 LLM 应用程序交付到生产环境可能会异常困难。可能需要大量定制和迭代prompt、chain和其他组件,以创建高质量的产品。为了帮助这个过程,推出了LangSmith,一个统一的平台,用于调试、测试和监控LLM 应用程序。

酒酿小圆子呀~ 4385

LangChain 与 LangSmith:构建与微调支持LLM的智能应用双重攻略

随着人工智能领域的不断发展,自然语言处理 (NLP) 技术也在不断进步。近年来,革命性的大型语言模型 (LLM) 已经成为了 NLP 技术的重要组成部分。作为一种可以理解并生成类似人类的文本的技术,LLM 已经在机器翻译、情感分析、聊天机器人和内容生成等任务中发挥了重要作用。在这个以语言为桥梁的世界中,LLM 的应用前景无限,而 LangChain 创新平台则是充分利用 LLM 潜力的重要手段。在本文中,我们将探索 LLM 的奇迹,并介绍如何使用 LangChain 构建 LLM 支持的应用程序。

FrenzyTechAI的博客 9193

使用LangChain、LangGraph和LangSmith来创建AI Agent

使用LangChain、LangGraph和LangSmith来创建AI Agent

安静的软件工程师 2584

【LangSmith】什么是 LangSmith

LangSmith 是一个功能全面的 LLM 应用开发平台,通过追踪、数据集管理、评估和监控等功能,帮助开发者从原型到生产高效构建可靠的 LLM 应用。它特别适合基于 LangChain 的项目,但也支持其他 LLM 框架。无论你是想调试复杂的工作流、优化模型性能,还是监控生产环境中的应用,LangSmith 都能提供强大的支持。

彬彬侠的博客 3272

基于LangChain、LangGraph与LangSmith构建医疗问诊Agent实战指南

在大模型应用开发中,Agent(智能体)已成为处理复杂任务的核心架构,它通过整合工具调用、知识检索与状态管理,实现超越单一问答的自动化工作流。其原理在于将大语言模型(LLM)作为决策中枢,结合外部工具与数据源,通过ReAct等模式进行推理与行动。这种技术价值在于显著提升了AI系统在专业领域的可靠性与实用性。在应用场景上,Agent广泛适用于需要多步骤决策、动态交互的领域,例如智能客服、数据分析与自动化办公。本文聚焦于医疗健康这一典型场景,通过一个完整的医疗问诊Agent项目,详细演示了如何利用LangCha

weixin_33767813的博客 1863

大模型开发框架LangChain、LangGraph与LangSmith全解析

大模型开发框架是现代AI应用开发的核心工具,通过模块化设计解决模型集成、工作流编排和调试监控等关键问题。LangChain采用链式架构实现数据源与工具的快速对接,其Memory机制和Document Loader组件显著提升了对话系统和知识库应用的开发效率。LangGraph引入图计算范式,通过StateGraph和检查点机制支持复杂业务流程的可视化编排与容错处理。LangSmith则提供Trace调试和评估模块,填补了AI应用开发中可视化调试与质量监控的技术空白。这些框架在智能客服、推荐系统和自动化报表等

weixin_26824299的博客 236

LangGraph、LangChain、LangFlow、LangSmith:使用哪一个以及为什么?

随着强大的语言模型如 GPT-3、GPT-4 以及其他基于变换器的模型的崛起,越来越需要能够简化语言应用程序创建和管理的框架。这些框架简化了复杂的任务,如链接多个提示检索相关文档,甚至监控模型性能。然而,并非所有框架都是相同的。有些框架提供可视化界面来管理工作流程,而其他框架则提供高级的调试和可观察性功能。让我们深入了解这些工具,以理解它们独特的功能。AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

老皮的博客 6139

LangChain、LangGraph与LangSmith:构建可控AI智能体的完整工程化方案

在构建复杂AI应用时,开发者常面临如何让模型执行多步骤、有状态任务的核心挑战。这涉及到智能体(Agent)的概念,即能够感知环境、规划并执行动作的AI系统。其核心原理在于将大语言模型与外部工具、记忆模块和状态管理相结合,通过标准化接口实现组件化。这种工程化方法的技术价值在于提升了AI应用的可靠性、可控性和可维护性,使其从简单的问答模式升级为能够处理复杂业务流程的智能系统。典型的应用场景包括智能客服、自动化工作流和决策支持系统。本文以医疗问诊助手为例,深入剖析了如何利用LangChain提供标准化组件、Lan

weixin_33912638的博客 485

LangChain生态全解析: LangGraph、LangFlow、LangSmith

LangGraph、LangChain、LangFlow和LangSmith各自针对语言模型应用的不同开发和管理需求。LangGraph提供直观的图形化工作流构建,LangChain以代码为中心,适合生产级应用开发。LangFlow简化了低代码/无代码的视觉工作流创建,而LangSmith专注于监控和调试,确保工作流的优化与稳定。选择工具时,考虑你的项目需求:是快速原型设计、生产扩展还是性能监控。同时,评估你对代码的熟悉度、工作流的复杂性,以及对易用性、灵活性和可观测性的需求。

Androiddddd的博客 4520

基于LangChain、LangGraph与LangSmith构建医疗问诊AI Agent全流程实战

这次我们来看一个医疗问诊 Agent 的完整构建过程。这个项目不是空谈概念,而是通过一个具体的应用场景,帮你彻底理清 LangChain、LangGraph 和 LangSmith 这三个核心框架各自扮演什么角色,以及如何将它们组合起来,打造一个能实际运行的智能体。如果你正在学习 AI Agent 开发,或者想了解如何将大模型能力落地到垂直领域(如医疗、金融、客服),这篇文章会直接给你一套可复现的路径。 这个医疗问诊 Agent 的核心目标是:模拟一个初步的在线问诊流程。用户描述症状,Agent 能进行多轮

weixin_34167819的博客 356

从零开始:用君正T23ZN打造智能门锁双摄系统(含代码示例与调试技巧)

本文详细介绍了基于君正T23ZN视频处理芯片构建智能门锁双摄系统的完整实战方案。内容涵盖硬件选型与核心电路设计、软件开发环境搭建、双摄驱动框架、图像信号处理(ISP)调优、人脸识别算法集成与性能优化,以及系统调试与稳定性保障。文章提供了丰富的代码示例和调试技巧,旨在帮助嵌入式开发者高效实现具备人脸识别与监控功能的低功耗智能门锁视觉系统。

opencv7vision的博客 716

掌握LangGraph:新手友好的大模型Agent开发框架,轻松提升开发效率,收藏必备!

说到现阶段目前最流行、最通用的Agent开发框架,毫无疑问,肯定是LangChain。LangChain作为2022年就已经开源的元老级开发框架,历经数年的发展,其功能和生态都已非常完善,并且拥有数量众多的开发者。在我们团队统计的今年第一季度大模型岗位JD中,有90%以上的Agent开发岗位要求掌握LangChain,可以说LangChain就是目前最通用、最流行的Agent开发框架没有之一。

Sunbuyi的博客 416

【已解决,极简单!!】求助,R语言读取csv文件各种报错

【已解决】本来之前没问题,今天更新了Rstudioh以及R,就各种报错了。也看了目前能读取到的文件,从第一个中文字符直接就没有了。也就是说 还是读取中文字符的问题?新人初学,求大佬轻喷!

youyouluming945的博客 3878

LangGraph是什么?AI Agent:轻松入门智能体开发,一篇文章带你全面了解LangGraph!

说起现阶段最流行、最通用的Agent开发框架,毫无疑问肯定是LangChain。LangChain作为2022年开源的元老级开发框架,历经数年发展其功能和生态都非常完善并且拥有数量众多的开发者。可以说LangChain就是目前能力最强、最通用、最流行的Agent开发框架没有之一。笔者刚刚更新完全套的LangChain分享教程,从底层API调用、LCEL语法到外部工具接入、智能体构建等各个方面,手把手教大家从0到1掌握LangChain AI Agent的开发技巧。

m0_63171455的博客 1454

【Python脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

你是否错过了周杰伦的票,最近又没抢到五月天的票,不要太难过,今晚有张学友的票,后天还有张杰的票,加油哦!

weixin_45841831的博客 6万+

利用Spm12进行fMRI数据分析:从预处理到结果解读的完整指南

本文提供了利用SPM12进行fMRI数据分析的完整流程指南,涵盖从数据预处理、统计建模到结果解读的全过程。详细介绍了在MATLAB环境下使用SPM12图形界面完成头动矫正、空间标准化等关键步骤的操作方法与避坑技巧,帮助神经科学研究者和心理学研究者高效处理功能磁共振成像数据并产出可靠结果。

weixin_29079671的博客 452

LangGraph:新手程序员必备,轻松掌握大模型开发的收藏攻略!

说到现阶段目前最流行、最通用的Agent开发框架,毫无疑问,肯定是LangChain。LangChain作为2022年就已经开源的元老级开发框架,历经数年的发展,其功能和生态都已非常完善,并且拥有数量众多的开发者。在我们团队统计的今年第一季度大模型岗位JD中,有90%以上的Agent开发岗位要求掌握LangChain,可以说LangChain就是目前最通用、最流行的Agent开发框架没有之一。

2601_95388079的博客 407

别再为批次效应发愁了!手把手教你用Harmony整合10x单细胞数据(附完整R代码)

本文详细介绍了如何使用Harmony工具消除单细胞数据中的批次效应,提供完整的R代码实现跨样本数据整合。通过模糊聚类和渐进校正技术,Harmony能有效区分技术噪音与真实生物信号,适用于大型数据集处理。文章包含质控要点、参数设置建议及常见问题解决方案,助力研究者获得高质量整合结果。

weixin_27215403的博客 197

LangGraph与LangSmith实战:构建可追踪、可评估的AI智能体!

本文详细介绍了如何使用LangGraph构建AI智能体,并通过LangSmith平台进行跟踪、监控和评估。通过数学问题求解的实战案例,展示了API密钥设置、智能体创建、实验运行及结果分析的全过程。这种组合能有效追踪AI系统成本、性能和准确性,是开发者构建可靠AI系统的必备工具。

bugyinyin的博客 2027

2025华为od面试手撕代码【求字符串表达式结果】

2025华为od面试手撕代码【求字符串表达式结果】

MISAYAONE的博客 1352

ArcGIS Pro 3.4 二次开发 - 地理数据库

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下,如何操作地理数据库的多种方法。首先,通过路径打开文件地理数据库,并处理可能出现的异常。其次,使用连接属性或sde文件路径打开企业级地理数据库。此外,还展示了如何从项目项、要素图层中获取地理数据库,以及如何执行SQL语句。最后,文章详细说明了如何从地理数据库中获取单个定义或定义列表,包括表定义、要素类定义、关系类定义和要素数据集定义。这些操作均在后台线程中执行,确保应用程序的响应性。

Winemonk 944

LangChain与LangGraph对比:AI代理开发框架选择指南

大语言模型(LLM)应用开发中,框架选择直接影响工程效率。LangChain作为模块化工具集,通过标准化接口整合多种LLM服务,特别适合快速原型开发和RAG(检索增强生成)系统构建。而LangGraph采用图计算模型,为复杂状态管理和持久化执行提供了专业解决方案,是开发长期运行智能代理(Agent)的理想选择。两个框架在AI工程实践中形成互补:LangChain处理数据预处理等基础任务,LangGraph管理多步骤工作流。开发者需要根据项目复杂度、状态管理需求和运行时长等维度进行技术选型。

weixin_34216107的博客 496

[Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望

杨秀璋的专栏 2万+

LangChain、LangGraph与LangSmith实战:构建可观测的医疗问诊Agent

在构建超越简单问答的智能体(Agent)时,开发者常面临流程失控、黑盒调试和组件复用难三大挑战。其核心在于如何将大语言模型(LLM)的能力与外部工具、复杂逻辑可靠地结合。LangChain作为基础组件库,提供了模型调用、工具封装和记忆管理等标准化接口,解决了“有什么”的问题。而LangGraph则通过图(Graph)结构来编排工作流,将零散的组件组织成清晰、可维护的决策路径,解决了“怎么走”的问题,尤其适合医疗问诊这类多步骤、带状态的场景。为了让整个系统稳定可靠,LangSmith提供了关键的可观测性能力,

367

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

开源模型应用落地-LangSmith试炼-入门初体验-监控和自动化(五)

学习Monitoring and automations功能,帮助开发者更好地管理和优化LangChain应用程序,提高其性能、可靠性和用户体验。

以微薄之力,予他人些许温暖. 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LangChain+LangGraph+LangSmith实战教程:从零构建、部署到评估智能体AI系统,一篇全掌握!

LangSmith是LangChain推出的一个监控和评估平台。它不依赖于特定框架,旨在与任何智能体框架(例如LangGraph)甚至完全从头构建的智能体配合使用。可以轻松配置LangSmith来跟踪 (trace)运行过程,并追踪智能体系统的开支。它还支持对系统进行实验 (experiments),例如更改系统中的提示词 (prompt) 和模型,并比较结果。它具有预定义的评估器,如有用性 (helpfulness)正确性 (correctness)和幻觉 (hallucinations)。

bagell的博客 1287

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 收藏!小白程序员必备:一文读懂AI Agent“智能体”的定义、形态与落地实践
下一篇: 三分钟速通AI铁三角:小白也能掌握企业智能化的核心引擎(收藏版)
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1476原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值