LangChain 配套工具链:从开发到部署

LangChain 配套工具链:从开发到部署

前两篇讲了 LangChain 的定位和核心模块。这篇聊一个更实际的问题:用 LangChain 写完代码之后,怎么把它变成一个真正能跑的服务?

LangChain 不只是一套核心模块,还有一整套围绕它的开发运维工具。搞清楚这些工具,你才能从"写代码"走到"上线服务"。

一、LangChain Libraries:解决组件集成的问题

它是什么

LangChain Libraries 是 LangChain 生态的插件层。它提供了大量第三方库的集成接口,从向量数据库到文档解析器,从模型提供商到工具调用,覆盖了 AI 应用开发中可能用到的各种组件。

截至 2026 年,LangChain 官方支持的集成超过 300 家,包括 OpenAI、Anthropic、Google、Cohere 等主流模型提供商,以及 Pinecone、Weaviate、Milvus、Chroma 等向量数据库,还有 Slack、Notion、Google Drive 等平台的数据接入。

为什么需要它

没有 Libraries 的话,每次想用一个新的模型或数据库,你都得自己写对接代码。比如想用 Pinecone 做向量存储,你得自己写 API 调用、处理认证、解析返回结果。LangChain 把这些全部封装成了统一的接口,配置一下就能用。

实际怎么用

举个例子:你想把文档存入向量数据库做检索。用 LangChain 的 Document Loaders 加载 PDF,用 Text Splitter 切分成块,用 Embedding 模型转成向量,再用 Vector Store 存入数据库——每一步都是一个现成的组件,不需要自己写对接代码。

from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Milvus
from langchain_openai import OpenAIEmbeddings

# 加载 PDF 文档
loader = PyPDFLoader("technical_manual.pdf")
docs = loader.load()

# 切分成块
splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=150)
chunks = splitter.split_documents(docs)

# 存入 Milvus 向量数据库
vectorstore = Milvus.from_documents(
    chunks,
    OpenAIEmbeddings(),
    connection_args={"uri": "http://localhost:19530"}
)

我自己搭 RAG 系统时,用 LangChain 对接 Milvus 向量数据库,从安装到跑通只要半天。如果自己写对接代码,至少要两天。

二、LangChain Templates:解决从零开始的问题

它是什么

LangChain Templates 是官方提供的 AI 应用模板项目。每个模板是一个完整的、可运行的项目骨架,包含代码结构、依赖配置、示例数据和文档。你拿来就能改,不用从零开始。

目前官方模板库包含 100 多个模板,覆盖 RAG 问答、Agent 开发、对话系统、文档分析、代码生成等常见场景。社区贡献的模板更多,GitHub 上有数千个基于 LangChain 的开源项目可以直接参考。

为什么需要它

自己从零搭一个 LangChain 项目,光是项目结构就够头疼的:目录怎么组织?配置文件放哪?日志怎么配?测试怎么写?这些和 AI 能力本身无关,但每个项目都得搞一遍。

模板把这些基础设施都搞好了,你只需要关注业务逻辑。就像用 create-react-app 创建 React 项目一样,不用手动配 webpack。

实际怎么用

比如你想搭一个文档问答系统,用 langchain-cli 拉一个 RAG 模板:

# 安装 langchain-cli
pip install langchain-cli

# 创建一个新的 RAG 项目
langchain app new my-rag-app --template rag-conversational

# 进入项目目录
cd my-rag-app

# 安装依赖
poetry install

# 启动服务
langchain serve

一条命令生成完整项目,包含文档加载、向量存储、检索、生成回答的全套代码。你只需要把文档扔进去,调一下配置就能跑。

三、LangServe:解决 API 部署的问题

它是什么

LangServe 基于 FastAPI,能把你的 LangChain Chain 直接发布为 REST API。不需要自己写 HTTP 接口——LangServe 帮你把 AI 应用封装成标准的 API 端点。

为什么需要它

没有 LangServe 的话,你得自己写 FastAPI 或 Flask 接口:请求解析、响应序列化、错误处理、流式输出——这些和 AI 能力无关,但每个项目都得写。

LangServe 帮你处理所有这些。更重要的是,它内置了一个 Playground——启动服务后打开浏览器就能直接测试你的 AI 端点,不需要前端或 curl。

实际怎么用

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langserve import add_routes
from fastapi import FastAPI

# 定义你的 Chain
prompt = ChatPromptTemplate.from_template("用一句话概括{topic}")
model = ChatOpenAI(model="gpt-4o")
chain = prompt | model | StrOutputParser()

# 创建 FastAPI 应用
app = FastAPI(title="AI 摘要服务")

# 用 LangServe 注册 Chain 为 API 端点
add_routes(app, chain, path="/summarize")

# 启动服务:uvicorn main:app --reload
# 访问 http://localhost:8000/summarize/playground/ 即可测试

启动后,打开 http://localhost:8000/summarize/playground/,LangServe 自动生成了一个 Web 界面,你可以直接输入参数测试 AI 端点。

对于流式输出,只需要加一个 /stream 端点:

add_routes(app, chain, path="/summarize", enable_feedback_endpoint=True)

调用 POST /summarize/stream 就能拿到逐 token 返回的流式响应。

四、LangSmith:解决调试和监控的问题

它是什么

LangSmith 是 LangChain 官方的可视化调试和监控平台。它能记录每次 Chain 或 Agent 执行的完整链路——每一步的输入、输出、延迟、token 消耗。

LangSmith 是一个独立的云服务,需要注册账号和 API Key。它提供了免费额度,足够个人开发者和小团队使用。

为什么需要它

在 AI 应用开发中,最难的不是写代码,而是搞清楚模型在每一步返回了什么。一个请求往往经过多个步骤:提示词格式化、模型调用、输出解析、工具调用、结果汇总。中间任何一步出错,最终结果就是错的——但光看输出你根本不知道是哪一步出了问题。

LangSmith 把这个过程变得可视化。它像 AI 应用的"黑匣子",记录每次执行的完整信息。

实际怎么用

在你的代码中加两行配置:

import os

# 设置环境变量
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-langsmith-api-key"
os.environ["LANGCHAIN_PROJECT"] = "my-rag-project"

# 然后正常运行你的 LangChain 代码
# 所有调用记录会自动上传到 LangSmith

在 LangSmith 的 Web 界面中,你能看到每次请求的完整调用链:

  • 每一步的输入和输出内容
  • 每一步的耗时
  • Token 消耗量
  • 错误信息和堆栈

我自己用 LangSmith 调过一个 RAG 系统的提示词。通过对比不同版本的检索结果和最终回答,把准确率从 72% 提升到 89%。没有 LangSmith,这个优化过程基本靠猜。

五、四个工具如何组合使用

单独看每个工具,解决的是单点问题。但真正的价值在于组合使用。

一个典型的开发流程是这样的:

  1. 用 Templates 拉项目骨架:快速验证想法,不用从零搭项目结构
  2. 用 Libraries 接入组件:对接需要的模型和数据源,不用写胶水代码
  3. 用 LangSmith 做调试:追踪每一步的输入输出,优化提示词和流程
  4. 用 LangServe 做部署:把 Chain 发布为 REST API,供前端调用

这四个工具覆盖了从开发到部署的完整链路:Templates 管项目脚手架,Libraries 管组件集成,LangSmith 管调试监控,LangServe 管 API 部署。

总结

LangChain 的核心模块解决的是 AI 能力的问题,配套工具链解决的是工程化能力的问题。两者缺一不可。光有 AI 能力没有工程化工具,你的代码只能跑在本地笔记本上。光有工程化工具没有 AI 能力,你部署的只是一个空壳。

如果你打算在生产环境用 LangChain,建议把四个工具都摸一遍。不需要精通,但要知道它们分别解决什么问题,什么时候该用哪个。

Alternatives to LangChain Worth Knowing

While LangChain covers a broad range of use cases, several alternatives serve specific needs more effectively:

LlamaIndex — better optimized for retrieval-augmented generation workflows. If your primary use case is RAG, LlamaIndex often provides cleaner abstractions and better defaults.

Haystack — excels at building modular, production-grade pipelines. Particularly strong for document processing and search applications.

Semantic Kernel (Microsoft) — integrates well with the .NET ecosystem and Microsoft's AI services. A natural choice for enterprises already invested in Azure.

Choosing between these frameworks depends on your specific use case, team expertise, and the ecosystem you're building in. LangChain's strength is its breadth; sometimes a focused tool does one thing better.


系列文章