文章目录
- 参考文章
- LangChain框架概述
- LangChain分层结构
- LangChain环境配置
- 简单案例体验
- 方式1:Api key单独文件配置
- 方法2:直接设置Api Key
- LangSmith的添加和使用
参考文章
- 通过类比, 十分钟快速掌握LangChain的架构
- LangChain入门教程,基本案例、调用官方api、中转api、阿里api等
LangChain框架概述
- LangChain是一个专为大型语言模型(LLM)应用开发设计的开源框架,它简化了从开发到部署的整个生命周期。
- 开发:使用 LangChain 的开源构建模块、组件 和 第三方集成 构建您的应用程序。 使用 LangGraph 构建具有一流流式处理和人机协作支持的有状态代理。
- 生产化:使用 LangSmith 检查、监控和评估您的链,以便您可以持续优化并自信地部署。
- 部署:将您的 LangGraph 应用程序转变为生产就绪的 API 和助手,使用 LangGraph Cloud。
- LangChain的核心价值在于它提供了标准化接口,让开发者能够轻松切换不同LLM模型,如OpenAI、HuggingFace等,大大降低了学习成本。
- LangChain最典型的应用是构建智能文档问答系统(RAG架构),通过将本地文档转换为向量存储,实现基于知识的精准回答。另一个常见场景是开发连续对话机器人,利用ChatMessageHistory等记忆组件保存对话上下文。企业级应用中,常结合FastAPI将LangChain服务封装为REST接口,并添加性能监控配置。电商领域则可以利用其混合检索链功能,实现商品的多维度智能搜索。
LangChain分层结构
- LangChain是构建大语言模型应用的工程化解决方案。LangChain自然也符合软件的基本架构。
- 一般软件分层结构包括:方案设计、逻辑层、持久层、内存、运行,可观测平台(日志,指标,追踪)。有关一般软件分层结构的详细介绍参看《代码的“千层蛋糕”:解剖软件系统的分层设计与可观测性》

- LangChain的对标工程结构
LangChain 组件 | 对标的工程结构 | 功能描述 |
---|
Module I/O | Runtime 层 | 负责输入/输出处理,管理数据流的运行时环境(如数据格式转换、异步处理等)。 |
持久化(Persist) | DataConnection | 处理数据存储与持久化逻辑(如向量数据库连接、缓存管理、数据版本控制)。 |
Chain | 逻辑层 | 封装业务逻辑流程,协调多个模块完成特定任务(如问答链、决策流程编排)。 |
Agents | 方案设计 | 定义系统的高层行为策略,决定任务拆解和工具调用的架构设计(如多步骤推理、工具选择)。 |
LangSmith | 可观测平台 | 提供日志记录、链路追踪和性能监控,支持调试与流程优化(如请求追踪、耗时分析)。 |

- LangChain的官方分层框架:

该框架由以下开源库组成: - LangSmith: 开发者可观测平台,可以调试、测试、评估和监控LLM应用程序。
- LangServe: 一个将 LangChain 链部署为 REST API 的包。使得快速搭建生产就绪的 API 变得简单。
- Templates:提供一些开发的模板。
- langchain: 主要的 langchain 包含链、代理和检索策略,构成应用程序的认知架构。所有链、代理和检索策略适用于所有集成的通用策略。
- langchain-community: 包含由 LangChain 社区维护的第三方集成(可以理解为插件库)。
- 合作伙伴库(例如 langchain-openai、langchain-anthropic 等):一些集成已进一步拆分为自己的轻量级库,仅依赖于 langchain-core。
- LangGraph: 通过将步骤建模为图中的边和节点,构建强大且有状态的多参与者应用程序。与LangChain无缝集成,但也可以单独使用。
- langchain-core: 包含不同组件的基本抽象以及将它们组合在一起的方法。 核心组件的接口,如大型语言模型、向量存储、检索器等在此定义。 此处未定义任何第三方集成。 依赖项故意保持非常轻量级。
LangChain环境配置
- Anaconda学习环境配置,直接安装Anaconda,创建好虚拟环境就可以,不用管cuda和cudnn的事情。
- Jupyter Notebook安装
- 进入虚拟环境安装依赖(截至2025.5.29 langchain最新版为0.3)
pip install --upgrade openai langchain langchain-openai langchain_community asyncio langserve[all]
- OpenAI 中转网站:OpenAI-HK,进入网站,申请API Key
简单案例体验
方式1:Api key单独文件配置

.env
文件配置:OPENAI_API_KEY="hk-xxx"
OPENAI_API_BASE="https://api.openai-hk.com/v1"
main.py
文件内容如下:
from dotenv import load_dotenv
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
load_dotenv()
model = ChatOpenAI(model="gpt-3.5-turbo")
messages = [SystemMessage(content="把下面的语句翻译为英文。"),HumanMessage(content="今天天气怎么样?"),
]
print(model.invoke(messages).content)
方法2:直接设置Api Key
import os
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "hk-xxx"
os.environ["OPENAI_API_BASE"] = "https://api.openai-hk.com/v1"
model = ChatOpenAI(model="gpt-3.5-turbo")
messages = [SystemMessage(content="把下面的语句翻译为英文。"),HumanMessage(content="今天天气怎么样?"),
]
print(model.invoke(messages).content)
LangSmith的添加和使用
- 打开langchain,注册账号登录。


OPENAI_API_KEY="hk-xxx"
OPENAI_API_BASE="https://api.openai-hk.com/v1"
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="lsv2_pt_xx"
LANGSMITH_PROJECT="pr-mundane-sweatsuit-97"
from dotenv import load_dotenv
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
load_dotenv()
model = ChatOpenAI(model="gpt-3.5-turbo")
messages = [SystemMessage(content="把下面的语句翻译为英文。"),HumanMessage(content="今天天气怎么样?"),
]
print(model.invoke(messages).content)
- 可以在langSmith查看对话内容

- 可以在监控面板查看相关详情

- LangSmith具有一定的免费额度(每月包含 5000 个追踪),可以尝试使用LangFuse。