10 2025 档案

摘要:作者:谢杰 该文章是并发异步操作系列文章第五篇。 有了前面几篇文章所介绍的知识铺垫后,本系列最终篇,我们来封装一个能够指定并发上限的方法。 需求 先来过一下需求,封装一个异步方法 runWithConcurrency,如下: async function runWithConcurrency(ite 阅读全文
posted @ 2025-10-30 14:43 Zhentiw 阅读(8) 评论(0) 推荐(0)
摘要:作者:谢杰 该文章是并发异步操作系列文章第四篇。 今天我们来解决一个很多同学经常搞混的概念对:并发和并行。 这两个词在日常交流中常常被混用,但在编程领域,它们指的是完全不同的执行模式。理解它们的区别,不仅能帮你正确选型,还能在调优性能时少走弯路。 先抛一个问题: 你一边刷手机一边等外卖,这是并发还是 阅读全文
posted @ 2025-10-30 14:35 Zhentiw 阅读(10) 评论(0) 推荐(0)
摘要:作者:谢杰 该文章是并发异步操作系列文章第三篇。 前面介绍了关于 Promise 的相关静态方法,本篇文章来做一个实战,封装一个超时工具方法。 需求 先说一下需求,非常简单,执行异步任务的时候,异步任务完成的时间是不定的,因此我们做一个超时的功能。 超时函数(异步任务, 能接受的时间, 遥控器) 超 阅读全文
posted @ 2025-10-29 14:44 Zhentiw 阅读(8) 评论(0) 推荐(0)
摘要:作者:谢杰 该文章是并发异步操作系列文章第二篇。 早期大家学习 Promise 的时候,都是从最基础的例子开始的,例如: // 创建一个 Promise 实例 const myPromise = new Promise((resolve, reject) => { // 模拟异步任务,例如 2 秒后 阅读全文
posted @ 2025-10-29 14:37 Zhentiw 阅读(11) 评论(0) 推荐(0)
摘要:异步任务取消机制 作者:谢杰 该文章是并发异步操作系列文章第一篇。 为什么需要取消异步任务 在现代的 Web 和 Node.js 应用中,我们经常需要启动一些耗时较长的异步任务,比如: 下载大文件 进行高强度的计算 持续监听一个长时间的事件流 然而,一旦任务开始运行,传统上我们只能等待它结束或因异常 阅读全文
posted @ 2025-10-29 14:32 Zhentiw 阅读(12) 评论(0) 推荐(0)
摘要:LangChain Expression Language,是 LangChain 提供的一种声明式构建 链式 调用流程的方式。它允许开发者用 .pipe() 操作符将不同的模块(如提示模板、模型、解析器等)连接起来,形成一个完整的“链(Chain)”。 LCEL 的设计理念: 所有模块都实现统一接 阅读全文
posted @ 2025-10-26 16:04 Zhentiw 阅读(7) 评论(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 阅读(9) 评论(0) 推荐(0)
摘要:在做聊天应用时,我们的提示词往往是一串按角色分好的消息 [ SystemMessage { "content": "xxx", }, HumanMessage { "content": "xxx", }, 占位符1 AIMessage { "content": "xxx", }, 占位符2 Huma 阅读全文
posted @ 2025-10-23 14:33 Zhentiw 阅读(6) 评论(0) 推荐(0)
摘要:类名 用途 ChatPromptTemplate 构造整个多轮提示词结构 SystemMessagePromptTemplate 设置系统规则 / 行为模式 HumanMessagePromptTemplate 模拟用户输入 AIMessagePromptTemplate 模拟模型输出(上下文中使用 阅读全文
posted @ 2025-10-23 13:40 Zhentiw 阅读(8) 评论(0) 推荐(0)
摘要:在跟各种 聊天模型 交互的时候,在构建聊天信息时,不仅仅包含了像上文中的文本内容,也需要与每条消息关联的角色信息。 例如这条信息是由 人类、AI、还是给 chatbot 指定的 system 信息,这种结构化的消息输入有助于模型更好地理解对话的上下文和流程,从而生成更准确、更自然的回应。 为了方便地 阅读全文
posted @ 2025-10-21 13:42 Zhentiw 阅读(6) 评论(0) 推荐(0)
摘要:在使用 LangChain 构建大模型应用时,提示词(Prompt)设计是第一步。但直接写死字符串容易出错、复用性差,也不利于维护。这时候就该用上 LangChain 提供的 Prompt Template —— 一个专为语言模型设计的提示词模板工具。 快速上手 无变量,纯字符串模板 import 阅读全文
posted @ 2025-10-18 17:55 Zhentiw 阅读(19) 评论(0) 推荐(0)
摘要:在实际开发 AI 应用的过程中,我们经常会遇到重复输入的情况: 同一用户多次询问相同的问题 刷新页面或误触按钮触发了相同请求 不同用户提出了内容高度相似的问题 如果每次都让大模型重新生成响应,不仅效率低下,还会带来不必要的计算成本。为了解决这个问题,我们可以引入“缓存机制”。 启用缓存的好处 提升响 阅读全文
posted @ 2025-10-18 17:05 Zhentiw 阅读(10) 评论(0) 推荐(0)
摘要:LangChain 支持两类主流语言模型: 文本补全模型 对话模型 文本补全模型 Text Completion Models 这类模型以一段纯文本作为输入,输出结果是一段连续生成的文字(这里的输出文本其实就是对前面输入文本的一个补全),不区分说话角色,也不会自动记录上下文。它们通常用于单轮任务,如 阅读全文
posted @ 2025-10-15 19:39 Zhentiw 阅读(22) 评论(0) 推荐(0)
摘要:在大模型时代,LangChain 是一个帮助开发者快速构建“智能应用” 的工具框架。它像是你搭建 AI 应用时的“万能胶水”——把大模型(如 OpenAI、LLM API)、工具(如搜索引擎、数据库)、记忆能力、链式调用等模块统统串联起来,组成一个可交互、可记忆、有逻辑的智能体(Agent)。 基本 阅读全文
posted @ 2025-10-15 19:24 Zhentiw 阅读(51) 评论(0) 推荐(0)
摘要:LoRA 英文全称为 Low-Rank Adaptation,中文:“低秩适配器” 秩的概念 英文 Rank 中文:秩 所谓秩,指的就是一个矩阵中 真正包含的信息量 有多少。 🙋小红买了 3 个苹果 4 个桃子,花了 18 元,小明买了 2 个苹果 3 个桃子,花了 13 元,请问苹果和桃子各多少 阅读全文
posted @ 2025-10-13 13:52 Zhentiw 阅读(16) 评论(0) 推荐(0)
摘要:英文:Fine-tuning 中文:大模型微调 大模型的构建其实分为 2 个阶段: 预训练(pre-training):此阶段模型会在 大规模、多样化的数据集 上进行训练,从而形成全面的语言理解能力。 微调(fine-tuning):在规模较小的 特定任务或特定领域数据集 上对模型进行 针对性的训练 阅读全文
posted @ 2025-10-13 13:52 Zhentiw 阅读(28) 评论(0) 推荐(0)
摘要:RAG架构演进 RAG 的概念和思想最早是在 2020 年由 Meta 公司的技术团队在文章 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” 中正式提出的,用于给当时已经开始出现的大型预训练语言模型提供来自外部的 阅读全文
posted @ 2025-10-12 16:42 Zhentiw 阅读(40) 评论(0) 推荐(0)
摘要:RAG经典架构: 数据索引 读取外挂语料库的时候,语料库是一个 pdf 文件,需要一个额外的依赖:pdf-parse 转化为向量嵌入:nomic-embed-text function getEmbedding(text) { const res = await fetch("http://loca 阅读全文
posted @ 2025-10-12 16:41 Zhentiw 阅读(7) 评论(0) 推荐(0)
摘要:type ErrorWithMessage = { message: string } function isErrorWithMessage(error: unknown): error is ErrorWithMessage { return ( typeof error 'object' && 阅读全文
posted @ 2025-10-09 19:06 Zhentiw 阅读(7) 评论(0) 推荐(0)
摘要:远程通信方式 通信方式: Stdio: 推荐,高效、简洁、本地 Streamable HTTP: 远程 前置知识 SSE 全称 Server-Sent Events,中文是“服务器发送事件”。是一种基于 HTTP 的单向通信协议,由浏览器发起连接,服务器可以持续不断地向客户端推送数据。 你可以把它想 阅读全文
posted @ 2025-10-06 14:22 Zhentiw 阅读(39) 评论(0) 推荐(0)
摘要:远程通信方式 通信方式: Stdio: 推荐,高效、简洁、本地 Streamable HTTP: 远程 前置知识 SSE 全称 Server-Sent Events,中文是“服务器发送事件”。是一种基于 HTTP 的单向通信协议,由浏览器发起连接,服务器可以持续不断地向客户端推送数据。 你可以把它想 阅读全文
posted @ 2025-10-06 02:53 Zhentiw 阅读(25) 评论(0) 推荐(0)
摘要:Prompts MCP 支持 3 种上下文能力: tools:工具 resources:资源 prompts:提示词 在 MCP 中,prompts 表示服务端内置的提示词模板(prompt templates)集合,通过 prompt 模板机制,客户端无需硬编码 prompt,而是复用服务端定义的 阅读全文
posted @ 2025-10-06 02:52 Zhentiw 阅读(40) 评论(0) 推荐(0)
摘要:RAG基础知识 基本介绍 RAG,全称 Retrieval-Augmented Generation,中文:检索增强生成 核心思想:为大模型补充来自于外部的相关数据与上下文,从而帮助大模型生成更丰富、更准确、更可靠的内容。 也就是 临时给大模型外挂一个知识库。 解决的问题: 受限于已有知识库,无法快 阅读全文
posted @ 2025-10-04 18:15 Zhentiw 阅读(15) 评论(0) 推荐(0)
摘要:有两种形式: 资源列表变化 资源内容变化 资源列表变化 用于监听资源目录是否发生增删改。 工作机制 当服务器上的资源列表发生变化时(例如 resources/list 中的项发生增删),服务器主动发送通知: notifications/resources/list_changed 这个方法名也是固定 阅读全文
posted @ 2025-10-04 18:14 Zhentiw 阅读(14) 评论(0) 推荐(0)
摘要:chokidar chokidar 是一个功能强大、跨平台、性能优秀的 文件系统监听库,适用于 Node.js 环境,底层使用原生 fs.watch 和 fs.watchFile,并在 macOS/Linux 上优先使用更高效的 fsevents(若可用)。 基本用法: import chokida 阅读全文
posted @ 2025-10-03 13:54 Zhentiw 阅读(17) 评论(0) 推荐(0)
摘要:Schema MCP 里面提供了一组 Schema. Schema 由 TypeScript + Zod 定义,制作成 JSON Schema,用于验证协议消息结构。 在 SDK 中,每个 JSON‑RPC 方法(如 resources/list、tools/call)都对应相应的 Zod Sche 阅读全文
posted @ 2025-10-01 14:09 Zhentiw 阅读(13) 评论(0) 推荐(0)