随笔分类 -  LangChain

摘要:invoke/stream() 方法,方法签名如下: invoke/stream( input: Input, options?: RunnableConfig ): AsyncGenerator<StreamEvent<Output>> 1. 输入参数 (input) 类型:Input 与 inv 阅读全文
posted @ 2025-11-26 22:54 Zhentiw 阅读(15) 评论(0) 推荐(0)
摘要:什么是回退机制? 可以理解为一种“保险机制”,就像: A 计划不行 → 执行 B 计划 A 服务器挂了 → 走 B 节点 A 模型限流 → 让本地模型顶上 主模型出错时,自动调用备用模型继续执行,用户无感知,体验不中断 如何实现回退 早期的时候,LangChain.js 没有提供相应的 API,所以 阅读全文
posted @ 2025-11-25 14:43 Zhentiw 阅读(6) 评论(0) 推荐(0)
摘要:LangChain Hub LangChain Hub 是一个托管 Prompt 与 Chain 配置的集中仓库(可以理解成 Hugging Face Hub 的“提示词版”)。 它允许开发者: 上传 / 分享 自己的 prompt、chain 配置; 下游用户可以直接通过一个 key (autho 阅读全文
posted @ 2025-11-22 16:50 Zhentiw 阅读(29) 评论(0) 推荐(0)
摘要:在实际开发中,经常还有如下的需求: 禁止模型调用某个工具 强制调用某个工具 注册多个函数工具 禁止模型调用工具 默认情况下,模型会自行决定是否使用 tool。但有时你希望它只能用自己的知识回答,怎么办? 你可以通过 tool_choice: "none" 禁用工具调用。 const result = 阅读全文
posted @ 2025-11-18 01:09 Zhentiw 阅读(22) 评论(0) 推荐(0)
摘要:目前我们所使用的 Memory,大多只存在于内存中,一旦进程关闭、用户刷新页面,所有历史对话都会丢失。实际项目中,我们常常希望: 让用户“第二次回来”还能接着上次对话继续聊 将多轮聊天记录保存在本地或数据库中,用于分析、审计、训练、回溯 这时候,我们就需要将 Memory 做持久化操作,从而实现“记 阅读全文
posted @ 2025-11-16 23:07 Zhentiw 阅读(37) 评论(0) 推荐(0)
摘要:上一节我们体验了“手动维护聊天记录”,每次都要: 把用户发言添加到 history 把模型输出添加到 history 每轮都手动调用 getMessages() 构造上下文 await history.addMessage(new HumanMessage(input)); await histor 阅读全文
posted @ 2025-11-14 14:57 Zhentiw 阅读(10) 评论(0) 推荐(0)
摘要:大模型本身是无状态的,每次调用都只看当前输入。如果要在多轮对话中维持上下文,就需要 Memory 模块来存储和管理对话历史。 LangChain.js 针对 Memory 提供了多个工具类,先来学习最常用的 ChatMessageHistory 快速上手案例: import { ChatMessag 阅读全文
posted @ 2025-11-14 14:55 Zhentiw 阅读(7) 评论(0) 推荐(0)
摘要:RAG 标准流程: 索引:外挂知识库 检索 生成 Advanced RAG 针对上述 3 个阶段做了优化。例如检索阶段,新增了 检索前处理 以及 检索后处理。 检索前处理: 查询转换 查询扩充 ...... 查询扩充(Query Expansion) 在不改变用户意图的前提下,添加相关词语或同义表达 阅读全文
posted @ 2025-11-09 20:03 Zhentiw 阅读(25) 评论(0) 推荐(0)
摘要:回忆 RAG 关键步骤: 文本切割 嵌入处理 存储向量数据库 向量数据库可以分为这几种类型: 内存型 本地自托管 云托管 LangChain 内置了 MemoryVectorStore,这就是一个内存型向量库,用于将文档向量存储到内存中,适合本地调试、快速演示,零依赖、即插即用。 MemoryVec 阅读全文
posted @ 2025-11-08 19:49 Zhentiw 阅读(32) 评论(0) 推荐(0)
摘要:回忆 RAG 关键步骤: 文本切割 嵌入处理 存储向量数据库 嵌入处理,又称之为向量化操作。核心就是将文本转为向量的形式,从而为下一步做数学运算做准备。 "今天的天气真好,万里无云" [ 0.3297254741191864, 0.7386181354522705, -3.3423418998718 阅读全文
posted @ 2025-11-07 14:56 Zhentiw 阅读(14) 评论(0) 推荐(0)
摘要:为什么需要切割? 回忆一下 RAG 的流程: 用户提问 从知识库检索相关内容 将检索到的内容和用户问题一起交给模型推理 如果文档不切割,检索阶段就只能以整篇为单位,长文会超出模型的 Token 限制,无法一次性送进模型。 快速上手 如何切割? 最通用的是使用 RecursiveCharacterTe 阅读全文
posted @ 2025-11-06 15:07 Zhentiw 阅读(20) 评论(0) 推荐(0)
摘要:CheerioWebBaseLoader 作用是抓取指定网页并解析 HTML 内容,提取需要的纯文本数据。 这个 Loader 底层依赖 cheerio,语法类似 jQuery,可以方便地选择 HTML 元素并提取内容,适用于解析静态 HTML 网页。 pnpm add @langchain/com 阅读全文
posted @ 2025-11-06 14:51 Zhentiw 阅读(20) 评论(0) 推荐(0)
摘要:很多时候,我们需要加载额外的数据,比如 RAG 架构中,需要外挂知识库。 外部数据的形式千差万别:可能是一份 PDF 文件、一张表格、一段代码,甚至是来自网络的实时信息。针对这些需求,LangChain 提供了一整套开箱即用的 Loader 工具,帮助我们高效地加载各种结构化或非结构化的数据,并统一 阅读全文
posted @ 2025-11-05 15:07 Zhentiw 阅读(12) 评论(0) 推荐(0)
摘要:所谓条件路由(Conditional Routing),就是在一条 AI 推理/数据处理流水线里,先依据输入内容、上下文或运行时信号做一次判别,再把请求分发到不同的子流程(链)上执行。本质上是受控的 if/else:先“判别”,再“选择”,最后“执行”,避免“一个提示词走天下”。 在 LangCha 阅读全文
posted @ 2025-11-04 15:08 Zhentiw 阅读(15) 评论(0) 推荐(0)
摘要:RunnableSequence .pipe() 是逐个拼接,RunnableSequence.from([...]) 则是显式声明流程结构,将多个步骤写成数组更清晰。 课堂练习:快速上手示例 import { ChatOllama } from "@langchain/ollama"; impor 阅读全文
posted @ 2025-11-03 14:45 Zhentiw 阅读(12) 评论(0) 推荐(0)
摘要:在 LCEL 中,几乎所有的模块: 提示词模板 模型 解析器 都是实现了 Runnable 接口的,可以将这些模块称之为 Runnable 类型。这种类型的模块可以快速插入到链条里面。 RunnableLambda RunnableLambda 是 LangChain.js 提供的一种轻量级工具,它 阅读全文
posted @ 2025-11-02 16:14 Zhentiw 阅读(13) 评论(0) 推荐(0)
摘要:LangChain Expression Language,是 LangChain 提供的一种声明式构建 链式 调用流程的方式。它允许开发者用 .pipe() 操作符将不同的模块(如提示模板、模型、解析器等)连接起来,形成一个完整的“链(Chain)”。 LCEL 的设计理念: 所有模块都实现统一接 阅读全文
posted @ 2025-10-26 16:04 Zhentiw 阅读(8) 评论(0) 推荐(0)
摘要:LangChain.js v1.0 Streaming Guide Overview In LangChain.js v1.0, streaming has changed significantly from v0.x. This guide shows you how to properly i 阅读全文
posted @ 2025-10-26 16:01 Zhentiw 阅读(15) 评论(0) 推荐(0)
摘要:在做聊天应用时,我们的提示词往往是一串按角色分好的消息 [ SystemMessage { "content": "xxx", }, HumanMessage { "content": "xxx", }, 占位符1 AIMessage { "content": "xxx", }, 占位符2 Huma 阅读全文
posted @ 2025-10-23 14:33 Zhentiw 阅读(14) 评论(0) 推荐(0)
摘要:类名 用途 ChatPromptTemplate 构造整个多轮提示词结构 SystemMessagePromptTemplate 设置系统规则 / 行为模式 HumanMessagePromptTemplate 模拟用户输入 AIMessagePromptTemplate 模拟模型输出(上下文中使用 阅读全文
posted @ 2025-10-23 13:40 Zhentiw 阅读(15) 评论(0) 推荐(0)