glownight

返回

LangChain (TypeScript) 使用目录清单#

一、环境搭建与基础配置#

  1. 安装与初始化

    • npm install langchainyarn add langchain
    • 环境变量配置(OPENAI_API_KEY, ANTHROPIC_API_KEY 等)
    • 第一个 Hello World 示例
  2. 核心概念理解

    • Model / Prompt / OutputParser 三元组
    • Chain 的组装原理
    • Runnables 协议(.pipe(), .invoke()

二、模型调用 (Models)#

  1. Chat Models(对话模型)

    • ChatOpenAI - GPT-4 / GPT-3.5
    • ChatAnthropic - Claude 系列
    • ChatGoogleGenerativeAI - Gemini
    • ChatOllama - 本地开源模型
    • 参数配置:temperature, maxTokens, modelName
  2. LLM(补全模型, legacy)

    • OpenAI 文本补全接口
    • 与 Chat Models 的区别
  3. 多模态模型

    • 图像输入处理
    • HumanMessage 携带图像内容
  4. 模型切换与路由

    • 动态选择不同模型
    • Fallback 机制(模型降级)

三、提示工程 (Prompts)#

  1. Prompt Templates

    • PromptTemplate - 单轮字符串模板
    • ChatPromptTemplate - 对话消息模板
    • MessagesPlaceholder - 动态消息插槽
    • 部分变量填充(.partial()
  2. Few-Shot Prompting

    • FewShotPromptTemplate
    • 示例选择器(SemanticSimilarityExampleSelector
    • 动态示例加载
  3. 结构化输出

    • StructuredOutputParser / JsonOutputParser
    • Zod Schema 定义输出格式
    • withStructuredOutput() 方法

四、链式调用 (Chains)#

  1. 基础链

    • LLMChain(legacy,推荐使用 LCEL)
    • SimpleSequentialChain
    • SequentialChain
  2. LCEL(LangChain Expression Language)⭐

    • .pipe() 方法链式组装
    • RunnableSequence
    • RunnableParallel(并行执行)
    • RunnableBranch(条件分支)
    • RunnableLambda(自定义函数)
  3. 常用内置链

    • RetrievalQAChain - 检索问答
    • ConversationalRetrievalQAChain - 对话式检索
    • SQLDatabaseChain - 数据库查询
    • APIChain - API 调用

五、文档加载与处理 (Document Loaders)#

  1. 文件加载器

    • TextLoader - 纯文本
    • PDFLoader - PDF 文件
    • CSVLoader - CSV 表格
    • JSONLoader - JSON 数据
    • UnstructuredLoader - 通用非结构化
  2. Web 加载器

    • CheerioWebBaseLoader - 网页抓取
    • PlaywrightWebBaseLoader - 动态渲染页面
    • GithubRepoLoader - GitHub 仓库
  3. 数据库加载器

    • NotionAPILoader
    • ConfluenceLoader
    • AirtableLoader

六、文本分割 (Text Splitters)#

  1. 基础分割器

    • CharacterTextSplitter - 按字符分割
    • RecursiveCharacterTextSplitter ⭐ - 递归分割(推荐)
    • TokenTextSplitter - 按 Token 分割
  2. 结构化分割器

    • MarkdownTextSplitter - Markdown 语义分割
    • CodeTextSplitter - 代码语言感知分割
    • HTMLHeaderTextSplitter - HTML 标题分割
    • JSONSplitter - JSON 结构分割
  3. 分割策略优化

    • Chunk Size 与 Overlap 调优
    • 语义分割(SemanticChunker

七、向量存储与检索 (Vector Stores & Retrievers)#

  1. 向量数据库集成

    • MemoryVectorStore - 内存存储(开发测试)
    • Chroma - 开源向量数据库
    • Pinecone - 云端向量数据库
    • Weaviate / Qdrant / Milvus
    • Faiss / HNSWLib - 本地向量索引
  2. Embedding 模型

    • OpenAIEmbeddings - text-embedding-3
    • HuggingFaceTransformersEmbeddings - 本地嵌入
    • OllamaEmbeddings - 本地模型嵌入
    • CacheBackedEmbeddings - 嵌入缓存
  3. 检索器 (Retrievers)

    • VectorStoreRetriever - 基础向量检索
    • MultiQueryRetriever - 多查询扩展
    • ContextualCompressionRetriever - 上下文压缩
    • ParentDocumentRetriever - 父文档检索
    • SelfQueryRetriever - 元数据自查询
    • TimeWeightedVectorStoreRetriever - 时间加权

八、记忆管理 (Memory)#

  1. 对话记忆

    • BufferMemory - 完整历史缓冲
    • BufferWindowMemory - 窗口缓冲
    • ConversationTokenBufferMemory - Token 限制缓冲
    • SummaryMemory - 对话摘要
    • VectorStoreRetrieverMemory - 向量检索记忆
  2. 记忆持久化

    • Redis / DynamoDB / Postgres 存储后端
    • 自定义记忆存储

九、工具与代理 (Tools & Agents)#

  1. 工具定义

    • DynamicTool / DynamicStructuredTool
    • SerpAPI - 搜索引擎
    • Calculator - 数学计算
    • WebBrowser - 网页浏览
    • 自定义工具函数
  2. Agent 类型

    • OpenAIFunctionsAgent ⭐ - Function Calling(推荐)
    • XMLAgent - XML 格式 Agent
    • StructuredChatAgent - 结构化对话
    • ReAct Agent - Reasoning + Acting
    • PlanAndExecuteAgent - 计划执行
  3. Agent 执行器

    • AgentExecutor 配置
    • 工具调用追踪
    • 最大迭代次数与超时控制
    • createOpenAIFunctionsAgent() 快捷创建

十、回调与追踪 (Callbacks & Tracing)#

  1. 回调系统

    • BaseCallbackHandler 自定义回调
    • 日志记录与监控
    • Token 用量统计
  2. 调试与可视化

    • LangSmith 集成(追踪、评估、监控)
    • LangServe 部署服务
    • 流式输出(stream() / streamLog()

十一、输出解析与后处理 (Output Parsers)#

  1. 解析器类型
    • StringOutputParser - 字符串输出
    • JsonOutputParser - JSON 解析
    • StructuredOutputParser - 结构化解析
    • CommaSeparatedListOutputParser - 列表解析
    • DatetimeOutputParser - 日期解析
    • RegexParser - 正则解析

十二、高级功能#

  1. 流式处理

    • model.stream() 实时流式输出
    • transform 流式转换
    • SSE (Server-Sent Events) 集成
  2. 批处理

    • .batch() 批量调用
    • .abatch() 异步批量
    • 错误处理与重试
  3. 路由与多链

    • RunnableBranch 条件路由
    • RunnableMap 并行映射
    • 多模型 Ensemble
  4. Rate Limiting & Caching

    • 请求限流
    • CacheBackedEmbeddings
    • 模型响应缓存

十三、生态集成 (Ecosystem)#

  1. LangServe

    • 将 Chain 部署为 REST API
    • 服务端流式传输
    • playground 调试界面
  2. LangGraph

    • 状态机工作流
    • 循环与条件边
    • 多 Agent 协作图
    • 持久化与检查点
  3. 第三方集成

    • Vercel AI SDK 集成
    • Next.js / Express 后端集成
    • 前端 React Hooks(useChat

十四、测试与评估#

  1. 评估框架

    • StringEvaluator - 字符串匹配评估
    • CriteriaEvaluator - 标准评估
    • LabeledCriteriaEvaluator - 标签评估
    • 自定义评估链
  2. 数据集与测试

    • 测试用例构建
    • A/B 测试不同 Prompt

十五、部署与生产化#

  1. 性能优化

    • 连接池与并发控制
    • 长连接保持
    • 模型预热
  2. 安全与合规

    • 输入过滤与脱敏
    • 输出内容审核
    • 密钥管理(AWS KMS / HashiCorp Vault)
  3. 监控与日志

    • 结构化日志(Pino / Winston)
    • 指标采集(Prometheus)
    • 分布式追踪(OpenTelemetry)

推荐学习路径#

基础 → 模型调用 → Prompt 模板 → LCEL 链式语法 → RAG(文档加载→分割→向量化→检索)→ Agent(工具+记忆)→ LangGraph 工作流 → 部署(LangServe/Vercel)
plaintext

如需其中任何章节的详细代码示例或深入讲解,请告诉我!

LangChain (TypeScript) 使用目录清单
作者 glownight
发布于 2026年4月29日