/
Update
7 min read
中文 LangChain (TypeScript) 使用目录清单
LangChain (TypeScript) 使用目录清单#
一、环境搭建与基础配置#
-
安装与初始化
npm install langchain或yarn add langchain- 环境变量配置(
OPENAI_API_KEY,ANTHROPIC_API_KEY等) - 第一个 Hello World 示例
-
核心概念理解
- Model / Prompt / OutputParser 三元组
- Chain 的组装原理
- Runnables 协议(
.pipe(),.invoke())
二、模型调用 (Models)#
-
Chat Models(对话模型)
ChatOpenAI- GPT-4 / GPT-3.5ChatAnthropic- Claude 系列ChatGoogleGenerativeAI- GeminiChatOllama- 本地开源模型- 参数配置:
temperature,maxTokens,modelName
-
LLM(补全模型, legacy)
OpenAI文本补全接口- 与 Chat Models 的区别
-
多模态模型
- 图像输入处理
HumanMessage携带图像内容
-
模型切换与路由
- 动态选择不同模型
- Fallback 机制(模型降级)
三、提示工程 (Prompts)#
-
Prompt Templates
PromptTemplate- 单轮字符串模板ChatPromptTemplate- 对话消息模板MessagesPlaceholder- 动态消息插槽- 部分变量填充(
.partial())
-
Few-Shot Prompting
FewShotPromptTemplate- 示例选择器(
SemanticSimilarityExampleSelector) - 动态示例加载
-
结构化输出
StructuredOutputParser/JsonOutputParser- Zod Schema 定义输出格式
withStructuredOutput()方法
四、链式调用 (Chains)#
-
基础链
LLMChain(legacy,推荐使用 LCEL)SimpleSequentialChainSequentialChain
-
LCEL(LangChain Expression Language)⭐
.pipe()方法链式组装RunnableSequenceRunnableParallel(并行执行)RunnableBranch(条件分支)RunnableLambda(自定义函数)
-
常用内置链
RetrievalQAChain- 检索问答ConversationalRetrievalQAChain- 对话式检索SQLDatabaseChain- 数据库查询APIChain- API 调用
五、文档加载与处理 (Document Loaders)#
-
文件加载器
TextLoader- 纯文本PDFLoader- PDF 文件CSVLoader- CSV 表格JSONLoader- JSON 数据UnstructuredLoader- 通用非结构化
-
Web 加载器
CheerioWebBaseLoader- 网页抓取PlaywrightWebBaseLoader- 动态渲染页面GithubRepoLoader- GitHub 仓库
-
数据库加载器
NotionAPILoaderConfluenceLoaderAirtableLoader
六、文本分割 (Text Splitters)#
-
基础分割器
CharacterTextSplitter- 按字符分割RecursiveCharacterTextSplitter⭐ - 递归分割(推荐)TokenTextSplitter- 按 Token 分割
-
结构化分割器
MarkdownTextSplitter- Markdown 语义分割CodeTextSplitter- 代码语言感知分割HTMLHeaderTextSplitter- HTML 标题分割JSONSplitter- JSON 结构分割
-
分割策略优化
- Chunk Size 与 Overlap 调优
- 语义分割(
SemanticChunker)
七、向量存储与检索 (Vector Stores & Retrievers)#
-
向量数据库集成
MemoryVectorStore- 内存存储(开发测试)Chroma- 开源向量数据库Pinecone- 云端向量数据库Weaviate/Qdrant/MilvusFaiss/HNSWLib- 本地向量索引
-
Embedding 模型
OpenAIEmbeddings- text-embedding-3HuggingFaceTransformersEmbeddings- 本地嵌入OllamaEmbeddings- 本地模型嵌入CacheBackedEmbeddings- 嵌入缓存
-
检索器 (Retrievers)
VectorStoreRetriever- 基础向量检索MultiQueryRetriever- 多查询扩展ContextualCompressionRetriever- 上下文压缩ParentDocumentRetriever- 父文档检索SelfQueryRetriever- 元数据自查询TimeWeightedVectorStoreRetriever- 时间加权
八、记忆管理 (Memory)#
-
对话记忆
BufferMemory- 完整历史缓冲BufferWindowMemory- 窗口缓冲ConversationTokenBufferMemory- Token 限制缓冲SummaryMemory- 对话摘要VectorStoreRetrieverMemory- 向量检索记忆
-
记忆持久化
- Redis / DynamoDB / Postgres 存储后端
- 自定义记忆存储
九、工具与代理 (Tools & Agents)#
-
工具定义
DynamicTool/DynamicStructuredToolSerpAPI- 搜索引擎Calculator- 数学计算WebBrowser- 网页浏览- 自定义工具函数
-
Agent 类型
OpenAIFunctionsAgent⭐ - Function Calling(推荐)XMLAgent- XML 格式 AgentStructuredChatAgent- 结构化对话ReAct Agent- Reasoning + ActingPlanAndExecuteAgent- 计划执行
-
Agent 执行器
AgentExecutor配置- 工具调用追踪
- 最大迭代次数与超时控制
createOpenAIFunctionsAgent()快捷创建
十、回调与追踪 (Callbacks & Tracing)#
-
回调系统
BaseCallbackHandler自定义回调- 日志记录与监控
- Token 用量统计
-
调试与可视化
- LangSmith 集成(追踪、评估、监控)
- LangServe 部署服务
- 流式输出(
stream()/streamLog())
十一、输出解析与后处理 (Output Parsers)#
- 解析器类型
StringOutputParser- 字符串输出JsonOutputParser- JSON 解析StructuredOutputParser- 结构化解析CommaSeparatedListOutputParser- 列表解析DatetimeOutputParser- 日期解析RegexParser- 正则解析
十二、高级功能#
-
流式处理
model.stream()实时流式输出transform流式转换- SSE (Server-Sent Events) 集成
-
批处理
.batch()批量调用.abatch()异步批量- 错误处理与重试
-
路由与多链
RunnableBranch条件路由RunnableMap并行映射- 多模型 Ensemble
-
Rate Limiting & Caching
- 请求限流
CacheBackedEmbeddings- 模型响应缓存
十三、生态集成 (Ecosystem)#
-
LangServe
- 将 Chain 部署为 REST API
- 服务端流式传输
- playground 调试界面
-
LangGraph ⭐
- 状态机工作流
- 循环与条件边
- 多 Agent 协作图
- 持久化与检查点
-
第三方集成
- Vercel AI SDK 集成
- Next.js / Express 后端集成
- 前端 React Hooks(
useChat)
十四、测试与评估#
-
评估框架
StringEvaluator- 字符串匹配评估CriteriaEvaluator- 标准评估LabeledCriteriaEvaluator- 标签评估- 自定义评估链
-
数据集与测试
- 测试用例构建
- A/B 测试不同 Prompt
十五、部署与生产化#
-
性能优化
- 连接池与并发控制
- 长连接保持
- 模型预热
-
安全与合规
- 输入过滤与脱敏
- 输出内容审核
- 密钥管理(AWS KMS / HashiCorp Vault)
-
监控与日志
- 结构化日志(Pino / Winston)
- 指标采集(Prometheus)
- 分布式追踪(OpenTelemetry)
推荐学习路径#
基础 → 模型调用 → Prompt 模板 → LCEL 链式语法 → RAG(文档加载→分割→向量化→检索)→ Agent(工具+记忆)→ LangGraph 工作流 → 部署(LangServe/Vercel)plaintext如需其中任何章节的详细代码示例或深入讲解,请告诉我!