Skip to content

LangChain

langchain介绍

学习初衷

想要更加灵活的、更好的融入到实际的业务中的工作流。

核心概念

LangChain表达式 (LCEL)

链式调用,可以通过这个表达式编排工作流,例如:

python
chain = prompt_template | model | parser

进行提示词的创建->调用模型->解析模型的返回结果

核心:

  1. 声明式 (Declarative): 只需定义数据处理的逻辑和流程,而不需要编写复杂的执行代码。描述“做什么”,而不是“怎么做”。
  2. 可组合 (Composable): LCEL 的基本单元(如 PromptTemplate, ChatModel, OutputParser)都实现了统一的接口(Runnable),可以无缝地通过 | 操作符组合在一起。
  3. Runnable 接口: LCEL 的基石是 Runnable 接口。任何实现了 invoke, stream, batch, ainvoke (异步) 等方法的类或对象都是一个 Runnable。这意味着你可以对任何 Runnable 执行相同的操作。
  4. 管道操作符 |: 这是构建 LCEL 链的核心。它将前一个组件的输出自动传递给后一个组件的输入。a | b 表示将 a 的输出作为 b 的输入。

Runnable

标准接口包括:

  • stream: 流式返回响应的块
  • invoke: 在输入上调用链
  • batch: 在输入列表上调用链

异步方法与asyncioawait语法一起使用以实现并发:

  • astream: 异步流式返回响应的块
  • ainvoke: 异步调用链上的输入
  • abatch: 异步调用链上的输入列表
  • astream_log: 在发生时流式返回中间步骤,除了最终响应
  • astream_events: 测试版 在链中发生时流式事件 (在 langchain-core 0.1.14 中引入)

调试

使用LangSmith可以进行工作流的调试,可以查看每个环节的详细信息

step1:

注册登录

image-20250807105243168

step2:

创建项目信息

image-20250807105406447

粘贴到项目中的.env文件中

LANGSMITH_TRACING 改为 LANGCHAIN_TRACING_V2 (删除后面“true”的引号)

image-20250807105459277

setp3:

运行工作流后到web查看

image-20250807105807285

最近更新